如何使用Vim跳转到函数定义?例如,在Visual Assist中,我可以在函数下输入Alt+g,它会打开一个上下文菜单,列出带有定义的文件。
如何在vim中做这样的事情?
如何使用Vim跳转到函数定义?例如,在Visual Assist中,我可以在函数下输入Alt+g,它会打开一个上下文菜单,列出带有定义的文件。
如何在vim中做这样的事情?
当前回答
使用ctags。生成一个标记文件,并使用:tags命令告诉vim它的位置。然后使用Ctrl-]跳转到函数定义
在这个问题中有更多的标签技巧和提示。
其他回答
如果所有内容都包含在一个文件中,则有命令gd(就像在'goto definition'中一样),它将带您到光标下的文件中单词的第一个出现处,这通常是定义。
在生成ctags之后,你还可以在vim中使用以下命令:
:tag <f_name>
以上将带您了解函数定义。
保罗的第二个回答是:是的,ctags(尤其是exuberant-ctags (http://ctags.sourceforge.net/))很棒。我还添加了这个到我的vimrc,所以我可以为整个项目使用一个标签文件:
set tags=tags;/
另一种常用的技术是将函数名放在第一列中。这样就可以通过简单的搜索找到定义。
int
main(int argc, char *argv[])
{
...
}
上面的函数可以在文件中使用/^main或在目录中使用:grep -r '^main' *.c找到。只要代码被正确缩进,标识符只会出现在一行的开头是在函数定义处。
当然,如果你从此不再使用标签,你应该为自己感到羞耻!然而,我发现这个编码标准也是一个有用的补充。
将光标放在程序中的任何变量上时使用gd或gd。
动力局会带你去当地报关。 gD将带您到全局声明。
更多的导航选项可以在这里找到。
使用cscope交叉引用大型项目,例如linux内核。