Vim 从声明生成函数定义

Vim generate function definition from the declaration

我正在学习使用 vim,但我认为从 .h 文件中的声明生成 .cpp 文件中的函数定义很不方便。

例如,如果我在 A.h 中声明一个函数 void print(const vector<int>& arr);,我必须打开 A.cpp 并输入以下内容:

void print(const vector<int>& arr) {

}

(或使用yy复制声明行,然后删除;并添加{}...) 当一些派生 classes 需要重写基础 class 中的函数时,这可能是一项繁重的工作...

有什么方便的插件或者命令可以帮我处理吗?

我的 lh-cpp plugin 提供此功能已经有一段时间了。

继续函数声明,键入 :GOTOIMPL et voilà!。它要么将光标移动到一个函数定义(从它的声明),要么如果 none 存在,它生成一个空的 shell 来定义该函数。

注意:我目前正在改进该功能以支持任何类型的函数声明。要支持模板函数,您必须使用 gotoimpl_with_libclang branch and the support plugin vim-clang(在 V2Upgrade 分支中)。

此时姊妹命令 :MOVETOIMPL 不能像预期的那样使用初始化列表定义的构造函数,这对 :Constructor 命令有副作用。 :MOVETOIMPL 通常用于将内联定义更改为声明加上 .cpp 文件中的单独定义。

注意:lh-cpp 是一个复杂的插件,它提供了很多东西并且有很多依赖项。关于覆盖,它提供了一个:Override命令让我们select我们想要覆盖哪个函数——这个特性需要我当前的lh-cpp工作分支和vim-叮当声。