改进的跳转到定义功能

9
当我们在vim中使用ctags并想要跳转到特定变量或函数的定义时,按ctrl + ],当我们想要返回时按ctrl + T
当我们想要自动完成变量名称时,我们按下ctrl + N,从一个小紫色窗口中选择正确的单词。
是否可能改进“转到定义”功能,以便我们不会跳转到文档中,而只会出现带有函数或变量定义的小窗口?
谢谢。

你是否在寻找 :set completeopt+=preview - Randy Morris
@RandyMorris 我试过了,但是我没有感觉到这个选项在我按下 ctrl + ] 时对 go to definition 有任何影响。 - xralf
尝试使用 Ctrl-W 然后是 },而不是 Ctrl-] - Randy Morris
@RandyMorris 这将打开另一个拆分窗口,而不是 romainis 回答中的小气球。 - xralf
控制台 Vim 中不支持气球。 - Randy Morris
@RandyMorris 通过气球,我指的是在自动完成时键入“ctrl+N”时出现的同一个窗口。 - xralf
1个回答

2
你想要一种查看函数签名而不需要跳转到其定义的方法吗?
我知道两个插件可以提供这个功能:
- EchoFunc - Tag Signature Balloons
上次我试过 EchoFunc,它对于 JavaScript 并没有起作用,至少对我来说是这样的,但是它在我测试的几个 PHP 文件中表现良好。我没有尝试另一个插件,因为它只适用于 GVim,而我几乎和 GUI 版本一样经常使用 CLI 版本。
但你也可以使用 TagList 和/或 TagBar:这两个非常有用的插件基于 ctags 提供了很好的代码导航。如果你按下,它们都会显示光标下标记的签名。

谢谢,这个方案看起来不错,但我只使用CLI版本的vim,并且大部分时间都在使用Python、C和Javascript。当我将光标移动到函数调用上方时,它应该显示整个函数定义(如果函数不太大的话)。但是你建议的脚本看起来很好,如果没有更好的选择,我会研究它们的。 - xralf
如果您使用标签来浏览代码,那么您会发现Vim维基上有一个很好的页面值得一看。特别是其中的“如何预览标签?”部分。 - romainl
@romaini 我想在同一个窗口中看到预览,就像在按下ctrl+N时自动完成时出现的窗口一样。它在CLI vim中运行,并且在你开始输入时很快消失。 - xralf
很抱歉,我不知道在自动完成上下文之外显示弹出菜单的方法:我所知道的所有显示签名的工具都使用命令行中的消息或带有小预览窗口,除了“气球”插件。在我看来,显示函数签名最有效的方法是TagList/TagBar中的<Space>技巧或Randy Morris指示的内置<C-w>} - romainl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接