[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/
相关文章推荐
- Can't load IA 32-bit .dll on a AMD 64-bit platform
- 黑马程序员_java08_多线程
- 初学者如何查阅学术资料---以自然语言处理为例,分析cv领域
- 华为机型 cordova-plugin-camera从图库获取报错
- 程序中上下文Context
- HDU 2844 Coins (多重背包)
- iOS 开发中 “Duplicate interface definition for class”问题
- 回测字段
- MySQL创建用户与授权方法
- ORA-00257:archiver error.Connect internal only, until freed
- Spring之——quartz集群的问题及解决方案(基于Spring4.0+quartz2.2.1的集群架构)
- maven学习(下)利用Profile构建不同环境的部署包
- 如何生成随机数
- 怎么让这4个人在17分钟内要过桥
- mybaits in
- 关于iOS多线程,你看我就够了
- nginx 伪静态的设置
- educational codeforces round8 A
- 平台【授权管理】含义及运用
- iOS App集成Apple Pay教程(附示例代码)