我刚刚在我的Vim(或者更确切地说是gVim)中安装了Ctags(以帮助c++开发),并希望找到您最喜欢的命令,宏,快捷方式,提示……
分享你最好的武器库。对于Vim开发中的c++,您还推荐哪些Vim附加组件?
编辑你还会用什么附加组件来配合Ctags?
你用什么版本的gVim和标签?有区别吗?
你如何提高你的编程经验,无论是大项目还是小项目?
我刚刚在我的Vim(或者更确切地说是gVim)中安装了Ctags(以帮助c++开发),并希望找到您最喜欢的命令,宏,快捷方式,提示……
分享你最好的武器库。对于Vim开发中的c++,您还推荐哪些Vim附加组件?
编辑你还会用什么附加组件来配合Ctags?
你用什么版本的gVim和标签?有区别吗?
你如何提高你的编程经验,无论是大项目还是小项目?
当前回答
我在自己的一个实验插件中封装了标签操作。
关于在vim中进行c++开发,我已经回答过了:我使用自己的套件和一些其他插件。
其他回答
Ctrl+] -进入定义 Ctrl+T -从定义返回。 Ctrl+W Ctrl+] -以水平分割的方式打开定义
在vimrc中添加这些行 地图< C: \ >:标签分割< CR >: exec(“标签”.expand(“< cword >”))< CR > 地图< -)>:垂直地震剖面< CR >: exec(“标签”.expand(“< cword >”))< CR >
Ctrl+\ -在新选项卡中打开定义 Alt+] -以垂直分割的方式打开定义
标签生成完成后。您可以使用以下键标记进入和标记出函数:
Ctrl+鼠标左键-转到定义 Ctrl+鼠标右键-从定义跳回
在我的。vimrc中总是有一行:
set tags=./tags;/
这将在当前目录中查找“标签”,并沿着树的根向上查找,直到找到一个。IOW,你可以在源树的任何位置而不仅仅是根结点。
我使用最多的命令是C-],它跳转到光标下的函数定义。你可以更经常地使用它来跟踪更多的电话。在那之后,C-o会带你回到一级,C-i会继续深入。
以上所有的……
Code_complete:函数参数完成、代码片段等等。
http://www.vim.org/scripts/script.php?script_id=1764
标记列表。vim:源代码浏览器(支持C/ c++, java, perl, python, tcl, sql, php等)
http://www.vim.org/scripts/script.php?script_id=273
另一个对C开发有用的插件是cscope 正如Ctags允许跳转到定义一样,Cscope也可以跳转到调用函数。
如果您的~/bin/目录中有cscope,请将以下内容添加到.vimrc中,并使用g^]转到调用函数(参见:help cscope)。
if has("cscope")
set csprg=~/bin/cscope
set csto=0
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
endif
差点忘了……就像ctags一样,您必须生成(并定期更新)数据库。我使用以下脚本
select_files > cscope.files
ctags -L cscope.files
ctags -e -L cscope.files
cscope -ub -i cscope.files
其中'select_files'是另一个从Makefile中提取C文件和头文件列表的脚本。这样我只索引项目实际使用的文件。