使用vim时,
我经常shift-*
我的函数调用转到函数。如果我知道函数在我的光标上方,但下面有很多函数,我该如何在反向移动?
答案 0 :(得分:4)
*
将对光标下的单词进行前向搜索。在那里,您可以按n
以获取该单词的下一个实例,也可以按N
获取该单词的上一个实例。
要回答向后搜索的问题,您可以使用#
对当前单词进行反向搜索。从那里开始,按n
将获得下一个实例,而N
将反向反向并向前搜索下一个实例。
要执行您真正想要做的事情,即跳转到函数定义,请考虑使用ctags
。如果使用ctags
或etags
等实用程序为项目创建标记,则可以使用 ctrl - ] 跳转到a的定义光标下的功能。如果它在同一个文件中(考虑到你正在进行搜索以获得这种功能,应该适用于你当前的情况),我认为它甚至可以在某种程度上工作,即使没有设置标签文件。
如果您也有兴趣找到调用函数的位置(至少在c
中),那么另一个名为cscope
的实用程序可以提供帮助。与ctags一样,您需要使用cscope实用程序构建cscope.out
文件。一旦你这样做,你可以使用vim的cscope钩子。要使用cscope获取函数调用列表,可以使用它调用它(注意 CTRL - R ):
:cs find c <C-R>=expand("<cword>")
总是写出一些东西,所以我把它放在我的.vimrc中,以便可以调用它g[
:
nnoremap g[ :cs find c <C-R>=expand("<cword>")<CR><CR>