使用 vim 时,
我经常 shift-*
我的函数调用转到函数。如果我知道函数在我的光标上方,但下面有很多函数,我该如何反向移动-*?
最佳答案
*
在普通模式下将向前搜索光标下的单词。从那里,您可以按 n
获取该词的下一个实例,或者您可以按 N
获取该词的前一个实例。
要回答反向搜索的问题,您可以使用#
对当前单词进行反向搜索。从那里,按 n
将启动下一个实例,而 N
将反转并向前搜索下一个实例。
要完成您真正想做的事情,即跳转到函数定义,请考虑使用 ctags
。如果您使用 ctags
或 etags
等实用程序为您的项目创建标签,您可以使用 ctrl-] 来跳转到光标下的函数定义。如果它在同一个文件中(考虑到您正在搜索以获得这种功能,应该适用于您当前的情况),我认为即使不设置标签文件,它也可能在某种程度上起作用。
如果您还对查找调用函数的位置感兴趣(至少在 c
中),还有另一个名为 cscope
的实用程序可以提供帮助。与 ctags 一样,您需要使用 cscope 实用程序构建 cscope.out
文件。完成后,您可以使用 vim 的 cscope Hook 。要使用 cscope 获取对函数的调用列表,您可以使用此调用它(注意是 CTRL-R):
:cs find c <C-R>=expand("<cword>")
一直写出来有点麻烦,所以我把它放在我的 .vimrc 中以便可以调用它 g[
:
nnoremap g[ :cs find c <C-R>=expand("<cword>")<CR><CR>
关于Vim shift * in reverse 移动到函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50102805/