Vim shift *反向移动到函数调用

时间:2018-04-30 14:39:56

标签: vim

使用vim时,

我经常shift-*我的函数调用转到函数。如果我知道函数在我的光标上方,但下面有很多函数,我该如何在反向移动?

1 个答案:

答案 0 :(得分:4)

普通模式下的

*将对光标下的单词进行前向搜索。在那里,您可以按n以获取该单词的下一个实例,也可以按N获取该单词的上一个实例。

要回答向后搜索的问题,您可以使用#对当前单词进行反向搜索。从那里开始,按n将获得下一个实例,而N将反向反向并向前搜索下一个实例。

要执行您真正想要做的事情,即跳转到函数定义,请考虑使用ctags。如果使用ctagsetags等实用程序为项目创建标记,则可以使用 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>