Vim 转到标准库方法/函数定义

Vim go to std library method/function definition

本文关键字:函数 定义 方法 标准 Vim      更新时间:2023-10-16

我喜欢一些与 vim 相关的插件,我已经将它们中的大多数安装为 git 子模块(clang_complete、cvim、fugitive、NerdTree、病原体、snipMate、supertab、taglist) 但是,有两个基本功能我无法工作。

即1)示例->如果我编译以下示例

// basic file operations
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ofstream myfile;
myfile.open ("example.txt");
myfile << "Writing this to a file.n";
myfile.close();
return 0;
}

例如,我不知道如何从标准库中跳转到函数打开,即"myfile.open"。如果我去将代码粘贴到视觉工作室并单击转到定义,它会直接将我带到那个地方。我已经读到这可以用 ctag 完成,但是我问自己自动完成是否已经工作,即当我输入"myfile"时。我看到 clang 给我的一大堆方法,所以我想这应该是从 vim 跳转到类似于 (ctrl + ]) 的定义的其他更好方法,它应该开箱即用。

2)在Visual Studio/.net中,每当我键入点时。我看到了方法,当我向下滚动该方法时,它提供了简短的描述,这种方法在做什么。 有没有办法在 vim 中启用类似的东西。据我所知,这应该是 std 库的属性,但我在 std 中看不到任何这样的东西。

我认为您将 Vim 与 IDE 混淆了。

你不能指望任何IDE功能在(非常强大的)文本编辑器中可用,至少不费吹灰之力。

  1. Vim相当于"Go to Declaration",<C-]>:tag foo<cr>依赖于由exuberant-ctags或一些兼容程序针对您的代码库和任何标准库生成的一个或多个tags的可用性。因为 Vim 没有为任何语言提供这样的tags文件,所以你必须自己生成一个并告诉 Vim 在哪里可以找到它。甚至还有一个程序,hdrtag,专门为此编写,不过我从未使用过它。

  2. 我想我已经看到一些自动完成插件在弹出菜单中显示该方法的签名,其他一些(PHP,Python)打开一个小的"预览"窗口。这是你能得到的。如果您有最新的tags文件,还有<C-w>}

再说一遍:Vim 不是 IDE。

确保 ctags 在生成索引时可以找到 std lib 中的源代码,您应该没问题。

默认情况下,这些索引工具仅在当前目录(及其子文件夹)中添加代码, 因此,您需要手动告诉他该代码在您的系统上安装的位置。