3

我喜欢与 vim 相关的一些插件,并且我将它们中的大多数安装为 git 子模块(clang_complete、cvim、fugitive、NerdTree、pathogen、snipMate、supertab、taglist)但是有两个基本功能我无法使用。IE

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;
}

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

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

4

2 回答 2

3

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

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

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

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

再说一遍:Vim 不是 IDE。

于 2012-11-11T20:44:40.187 回答
0

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

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

于 2012-11-11T21:28:40.043 回答