如何配置我的vim以帮助我找到术语的定义?

时间:2011-05-17 08:48:02

标签: vim

例如,当我遇到:

funcMiracle (argMagic);

我想按下一个按钮,然后我立即跳转到funcMiracle的定义,无论它是否在当前文件中。

2 个答案:

答案 0 :(得分:3)

在您的计算机上安装 exuberant ctags 。然后,从命令行,在项目根目录中:

ctags -R 

按下Vim中的ctrl-[,然后跳转到符号的定义。跳跃后,ctrl-T会将你带回原来的地方。

答案 1 :(得分:2)

<强>更新

我读了你的评论:

  

问题是,虽然它可以帮助我在项目中找到任何函数,但它不会自动找到我可能从头文件链接的外部函数,例如,stdio.h中fgets()的定义

看看

  • C - [ C-I for include file search
  • C - [ d for for definition lookup
  • Shift-K 打开光标下标识符的手册页(例如fgets:)

使用man.vim script,您还可以在Vim缓冲区内召唤联机帮助页,以便轻松复制/粘贴,突出显示,与helptags等交叉引用。键: Leader-K

再次,:he ^[^I等是更多帮助/细节的好指针


外部项目的标签

您可以使用ctags为外部项目(例如,linux标头)生成标签,如前所示(如下所示)。然后让Vim知道你的标签在哪里:

:se tags+=/usr/src/linux/tags

请注意 += :Vim可以同时处理多个代码文件


标准方法

  1. 安装(如果还没有),ctags
  2. :!ctags %(或递归整个文件夹等:!ctags -R %:h:!ctags **/*.c等)
  3. 使用标签( C - ] 或Ctrl-MouseButton,请参阅:help tags以获取完整参考资料)
  4. 如果有的话,可以在makefile中集成标记的构建。丰富的ctags是高度可配置的;我经常使用

    ctags --exclude=packagedir -R --c++-kinds=+p --fields=+iaS --extra=+q
    

    用于C ++,但它支持许多开箱即用的语言,零配置。