1 shell command

1.1 利用grep来查找某个文件夹下的某个文件中所含的字符:

这个命令用于在VM下,查找需要的变量和函数.

grep -nirw 是最经常用的的选项组合 + 后面你要查找的路径 + 你要显示的上下文

-n 显示行号

-i  忽略大小写

-r 搜索整个目录

-w 全字符合

  • grep -nr functionname * //所有目录下所有文件,带行号查找包括functionname 的地方
  • grep -nr function test*     // 所有test开头的目录包括function 的地方
  • grep -nr function test* -C5 // 所有test开头的目录包括function 的地方,并且向上下看5行,这个很有用,就不用进去vm去看了
  • grep -nr ^gst * -C5 //查询gstreamer的相关的函数的时候,往往是gst开头的函数,如果只是查询gst那么很多不是这个开头的相关文件也有

2 VIM command:

2.0 VIM 打开文件的时候自动到某行, VIM [要打开的文件] + [行号]

2.01 复制几行的选择

2.01.1 press "v" 进入VISUAL模式

2.01.2 选择你想V复制的行

2.01.3 press “Y” 屏幕下方会通知你yanked行数

【注意】如果这时候输入‘p’是无效的,因为p是在VISUAL模式下,而你y的时候已经自动退出了VISUAL

2.01.3 press "v" 再次进入VISUAL模式

2.01.3 press "p"这时候可以正确粘贴来了。

2.1 文本选择和编辑

.1   选择一个单词,方便查找: gd ,然后又n进行查找

.2 复制光标所在的单词:yiw

.3''跳转到光标上次停靠的地方, 是两个', 而不是一个"

.4 %跳转到配对的括号去
.5[[跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)
.6    gD跳转到局部变量的定义处

.7    mx设置书签,x只能是a-z的26个字母
.8`x跳转到书签处("`"是1左边的键)
.9>增加缩进,"x>"表示增加以下x行的缩进
.a<减少缩进,"x<"表示减少以下x行的缩进

2.2 基本插件

2.2.1 Ctags 的使用:

2.2.1.1   首先要生成 Tag 的列表

通过下面的命令,在需要构建tag的文件夹下面运行:

ctags -R *

【案】ctags 的版本有很多,有是有有一个emacs的版本,这个版本里面是没有递归查找的,就是没有-R项目,

ctags: skipping arpa: it is not a regular file

ctags --version

如果是如下的版本

ctags (GNU Emacs 23.1)
Copyright (C) 2009 Free Software Foundation, Inc.
This program is distributed under the terms in ETAGS.README

那是不行的,需要更新到Exuberant Ctags

sudo apt-get install exuberant-ctags

2.2.1.2 tag路径设定

:set tags=/home/wooin/vim71/tags

在vim的窗口下(单次),或者 ~/.vimrc 下面加入上面的路径设定。

2.2.1.3 常用的tag的命令

Keyboard command

Action

Ctrl-]

Jump to the tag underneath the cursor

:ts <tag> <RET>

Search for a particular tag

:tn

Go to the next definition for the last tag

:tp

Go to the previous definition for the last tag

:ts

List all of the definitions of the last tag

Ctrl-t

Jump back up in the tag stack

2.2.2 listtab的使用:

:Tlist 打开list

TlistOpen 打开list 焦点切换:

TlistClose

let Tlist_Ctags_Cmd='C:\Progra~1\Ctags\ctags.exe'

http://easwy.com/blog/archives/advanced-vim-skills-taglist-plugin/

http://vim-taglist.sourceforge.net/faq.html

2.2.3 cscope的使用

2.2.3.1 生成数据库

cscope -R 首次生成会自动进入cscope菜单

生成.out 数据库,

如果不想让他进去菜单,可以加 -b 只生成索引就好,不过如果进去菜单操作也比较方便,主要注意Ctrl+D退出就好了。

进入菜单,会自动给出列表和打开你需要的文件。

2.2.3.2  打开曾经生成的数据库

cscope add D:\src\myproject\cscope.out
cscope D:\src\myproject\cscope.out

直接在代码树的根目录下输入上述命令,就可以打开cscope原来设定的数据库。

2.2.3.3 加入C以外的文件

Cscope缺省只解析C文件(.c和.h)、lex文件(.l)和yacc文件(.y),虽然它也可以支持C++以及Java,但它在扫描目录时会跳过C++及Java后缀的文件。

如果你希望cscope解析C++或Java文件,需要把这些文件的名字和路径保存在一个名为cscope.files的文件。

当cscope发现在当前目录中存在cscope.files时,就会为cscope.files中列出的所有文件生成索引数据库。

通常我们使用find来生成cscope.files文件,仍以vim 7.0的源代码为例:

cd ~/src/vim70 
find . –type f > cscope.files
cscope -bq

这条命令把~src/vim70目录下的所有普通文件都加入了cscope.files,这样,cscope会解析该目录下的每一个文件。上面的cscope命令并没有使用”-R“参数递归查找子目录,因为在cscope.files中已经包含了子目录中的文件。
注意:find命令输出的文件以相对路径表示,所以cscope.out的索引也相对于当前路径。如果你要在其它路径中使用当前的cscope.out,需要使用下面介绍的-P选项。

2.2.3.3 Cscope 常用参数

-R: 在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件时,不搜索/usr/include目录
-i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用”–“,表示由标准输入获得文件列表。
-Idir: 在-I选项指出的目录中查找头文件
-u: 扫描所有文件,重新生成交叉索引文件
-C: 在搜索时忽略大小写
-Ppath: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。

2.3 VIM  的基本配置

2.3.1 VIM配置文件

掌握vim 的配置文件,是丰富vim高级应用的 基本能力之一。最好的学习办法就是能够抄袭,没错,抄袭牛人的配置文件,然后搞懂他们的用法。
vim ~/.vimrc

2.3.2 VIM配置文件的基本设定选项

2.3.2.1 set tags
设置tags的默认路径,前面我们有提到tags的插件使用,这里可以配置到vim的环境里面,就不要每次都去设置,同时可以把一个已经生成的tags分享到各个项目里面去,不用每次生成。
set tags=/home//huangsy/
2.3.2.2 noremap 
noremap的使用是vim的各项自动快键键设定的基本之一。
设定自动补全,
 78 :inoremap ( ()<ESC>i
 79 :inoremap ) <C-R>=ClosePair(')')<CR>

2.2 基本替换命令

2.2.1 全文字符替换
%s/v310/v200/gc
解释如下:
%s/【被替换的字符,这里是V310】v310/【这里写替换的字符,这里是v200】v200/g【全文】c【每次替换需要确认】

3 文件查找命令:

1 利用find来查找文件

find . -type f -iname "*.[chS]" | xargs etags -a

==============================================================================

ref:

1

http://www.eguidedog.net/linux-tutorial/05-grep.php

2

http://blog.csdn.net/namecyf/article/details/7787479

3 配置vim环境

http://jingyan.baidu.com/article/7e440953cdeb1f2fc1e2ef7c.html

4 Cscope的使用(领略Vim + Cscope的强大魅力)

http://blog.csdn.net/dengxiayehu/article/details/6330200

5 vi/vim使用进阶: 程序员的利器 – cscope

http://easwy.com/blog/archives/advanced-vim-skills-cscope/

[Editor][001][vim]VIM的辅助工具们相关推荐

  1. 《深入分析GCC 》——第2章 GCC源代码分析工具2.1 vim+ctags代码阅读工具

    本节书摘来自华章出版社<深入分析GCC >一书中的第1章,第2.1节,作者 王亚刚 ,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2章 GCC源代码分析工 ...

  2. 关于出现Not an editor command: Bundle ‘**/*.vim‘的解决方案【转】

    关于出现Not an editor command: Bundle '**/*.vim'的解决方案[转] 参考文章: (1)关于出现Not an editor command: Bundle '**/ ...

  3. 【网络游戏§绿色DOTA2魔笛V1.001 官方最新版§DOTA游戏辅助工具§】

    [网络游戏§绿色DOTA2魔笛V1.001 官方最新版§DOTA游戏辅助工具§] 软件大小:11.53MB 软件语言:简体中文 软件授权:免费软件 更新时间:2013-06-19 01:27:40 应 ...

  4. 2021-05-10 打造自己的vim c/c++开发工具

    文章目录 打造自己的vim c/c++开发工具 0. Ubuntu 1. 需要的必备神器 2. 安装 3. .vimrc 内容如下 4. .zshrc 配置 5. vim 技巧 打造自己的vim c/ ...

  5. PHP辅助工具安装-phpMyAdmin和论坛

    PHP辅助工具安装-phpMyAdmin和论坛 phpMyAdmin安装 1.解压 2.复制 3.重命名 4.编辑 5.验证 论坛安装 1.解压Discuz_7.2_FULL_SC_UTF8.zip ...

  6. Hadoop辅助工具——Flume、Sqoop

    前言 在一个完整的离线大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集.结果数据导出.任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体 ...

  7. .net的辅助工具列表

    .net的辅助工具列表: Code generation NVelocity CodeSmith X-Code .NET XGoF - NMatrix / DEVerest Compilation e ...

  8. Unity - Timeline 自定义剪辑,轨道,混合轨道,Inspector属性显示(使用Default Playables辅助工具)

    Timeline中,可以通过脚本扩展自定义的剪辑,轨道,混合轨道,Inspector属性显示器. 我这里参考了官方的 Default Playables的一个节点扩展方式,它也提供了一个辅助工具,非常 ...

  9. Java服务端和客户端开发辅助工具Utils

    包括了各种工具类.辅助类.管理类等 Awesome_API: https://github.com/marktony/Awesome_API/blob/master/Chinese.md 收集中国国内 ...

  10. Android开发辅助工具类 Utils

    包括了各种工具类.辅助类.管理类等    都可以 在Git  里找到代码 来研究,深入 Awesome_API: https://github.com/marktony/Awesome_API/blo ...

最新文章

  1. java操作mongodb基础(查询 排序 输出list)
  2. 批量替换文本中字符代码-python3
  3. Spring Boot 2.x基础教程:使用 ECharts 绘制各种华丽的数据图表
  4. Node.js- sublime搭建node的编译环境
  5. 配置 postCSS 自动添加 css 的兼容前缀||打包样式表中的图片和字体文件||打包处理 js 文件中的高级语法
  6. 快速接入 GitHub、QQ 第三方登录方式
  7. php申请系统,PHP+MYSQL的文章管理系统(一)_php
  8. 初探PostgreSql
  9. css 点击效果_使用CSS实现逼真的水波纹点击效果
  10. 广西移动计算机面试题,广西移动笔试经验分享
  11. 你必须具有权限才能读取此对象_为啥手机APP要获取权限?这些权限不能随便同意...
  12. VMware centos7配置以及SecureCRT连接
  13. MTP管理才能发展专家
  14. 关于:在 Office 2021 中自定义模板
  15. 计算机rapter 流程图,Raptor设计程序流程图并运行的具体操作步骤
  16. 麒麟KY-RTI分布仿真技术:第一章 简介
  17. Python实现商场管理系统
  18. macOS Monterey 怎么升级?macOS 12升级教程
  19. 谷歌2018年IO大会
  20. 安卓手机做电脑摄像头(USB连接1080P 60FPS低延迟非常稳定)

热门文章

  1. 磁盘分区20191017
  2. Swift4.0 从相册中获取图片和拍照
  3. 【Day09】JavaScript 为什么要区分微任务和宏任务
  4. 【Python】表白程序
  5. windows系统托盘tray
  6. css技巧中placeholder的颜色
  7. Minecraft Forge:如何下载,安装和使用Forge
  8. HTTP状态保持(cookie、session)
  9. Flask-SQLALchemy 连接数据库
  10. Celery多个定时任务使用RabbitMQ,Queue冲突解决