您的位置:首页 > 其它

[Editor][001][vim]VIM的辅助工具们

2016-02-25 14:23 246 查看

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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: