我刚刚在我的Vim(或者更确切地说是gVim)中安装了Ctags(以帮助c++开发),并希望找到您最喜欢的命令,宏,快捷方式,提示……
分享你最好的武器库。对于Vim开发中的c++,您还推荐哪些Vim附加组件?
编辑你还会用什么附加组件来配合Ctags?
你用什么版本的gVim和标签?有区别吗?
你如何提高你的编程经验,无论是大项目还是小项目?
我刚刚在我的Vim(或者更确切地说是gVim)中安装了Ctags(以帮助c++开发),并希望找到您最喜欢的命令,宏,快捷方式,提示……
分享你最好的武器库。对于Vim开发中的c++,您还推荐哪些Vim附加组件?
编辑你还会用什么附加组件来配合Ctags?
你用什么版本的gVim和标签?有区别吗?
你如何提高你的编程经验,无论是大项目还是小项目?
当前回答
我发现标签列表插件是必备的。它在一个单独的窗口中列出它所知道的所有标签(您已打开的文件),并使它非常容易导航较大的文件。
我主要在Python开发中使用它,但它只适合C/ c++。
其他回答
Ctrl+] -进入定义 Ctrl+T -从定义返回。 Ctrl+W Ctrl+] -以水平分割的方式打开定义
在vimrc中添加这些行 地图< C: \ >:标签分割< CR >: exec(“标签”.expand(“< cword >”))< CR > 地图< -)>:垂直地震剖面< CR >: exec(“标签”.expand(“< cword >”))< CR >
Ctrl+\ -在新选项卡中打开定义 Alt+] -以垂直分割的方式打开定义
标签生成完成后。您可以使用以下键标记进入和标记出函数:
Ctrl+鼠标左键-转到定义 Ctrl+鼠标右键-从定义跳回
上面SetCscope()函数的另一个迭代。这将设置cscope预路径以获取匹配,而不位于“cscope. conf”所在的目录。”是:
function s:FindFile(file)
let curdir = getcwd()
let found = curdir
while !filereadable(a:file) && found != "/"
cd ..
let found = getcwd()
endwhile
execute "cd " . curdir
return found
endfunction
if has('cscope')
let $CSCOPE_DIR=s:FindFile("cscope.out")
let $CSCOPE_DB=$CSCOPE_DIR."/cscope.out"
if filereadable($CSCOPE_DB)
cscope add $CSCOPE_DB $CSCOPE_DIR
endif
command -nargs=0 Cscope !cscope -ub -R &
endif
我已经调整我的vim插件两年了,以支持足够大的c++项目。你可以看一下。
他们使用ctags和cscsopx。
http://www.vim.org/scripts/script.php?script_id=1638 http://www.vim.org/scripts/script.php?script_id=2507
同一名称的多个定义
<C-w>g<C-]>以拆分方式打开定义,但也可以执行:tjump,它可以进入定义,如果有几个定义,则为您提供一个定义列表供您选择。
您可以将目录添加到您的ctags查找。例如,我有一个为Qt4构建的ctags索引,并在我的.vimrc中有这个:
set tags+=/usr/local/share/ctags/qt4