Vim 转到标准库方法/函数定义
Vim go to std library method/function definition
我喜欢一些与 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功能在(非常强大的)文本编辑器中可用,至少不费吹灰之力。
-
Vim相当于"Go to Declaration",
<C-]>
或:tag foo<cr>
依赖于由exuberant-ctags或一些兼容程序针对您的代码库和任何标准库生成的一个或多个tags
的可用性。因为 Vim 没有为任何语言提供这样的tags
文件,所以你必须自己生成一个并告诉 Vim 在哪里可以找到它。甚至还有一个程序,hdrtag
,专门为此编写,不过我从未使用过它。 -
我想我已经看到一些自动完成插件在弹出菜单中显示该方法的签名,其他一些(PHP,Python)打开一个小的"预览"窗口。这是你能得到的。如果您有最新的
tags
文件,还有<C-w>}
。
再说一遍:Vim 不是 IDE。
确保 ctags 在生成索引时可以找到 std lib 中的源代码,您应该没问题。
默认情况下,这些索引工具仅在当前目录(及其子文件夹)中添加代码, 因此,您需要手动告诉他该代码在您的系统上安装的位置。
- 不同翻译单元中不可重载的非内联函数定义
- Visual Studio中的函数声明和函数定义问题
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 具有enable_if外部类原型的模板类构造函数定义
- 类的前向声明之后的类成员函数定义,在类声明之前
- 为函数定义符号不明确的指针参数
- C++模板专用化 - 无法匹配函数定义
- 错误:在第 6 行'{'标记之前,此处不允许使用函数定义
- 找不到 #define 的函数定义
- 根据类型特征更改函数定义?
- 将抽象基类中的所有纯虚函数定义为 varaidaic 模板
- 命名空间更改函数定义
- "Type&"与C++函数定义中的"Type*"
- C++:为什么允许在另一个函数中声明函数,而不允许在函数定义中声明?
- 如何从 C++ 中的现有模板函数定义新函数
- 私有在函数定义/实现的返回值范围内是什么意思 (c++)?
- 越界成员函数定义是否需要一个完全限定的类名,直到全局范围
- 为什么c++允许成员函数定义中实例的私有成员访问
- Qt基类函数定义
- C++函数定义中参数列表后面额外一对括号的含义