首页 > 解决方案 > Vim 从声明中生成函数定义

问题描述

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

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

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

}

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

有没有方便的插件或命令来帮助我处理它?

标签: vimvim-plugin

解决方案


我的lh-cpp 插件提供这个功能已经有一段时间了。

继续函数声明,输入:GOTOIMPL et voilà!. 它要么将光标移动到函数定义(从其声明中),要么如果不存在,则生成一个空外壳来定义该函数。

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

在这个精确的时刻,姐妹命令不能像预期的那样与使用初始化列表定义的构造函数一起工作,这对 命令:MOVETOIMPL有副作用。意味着将内联定义更改为声明加上 文件中的单独定义。:Constructor:MOVETOIMPL.cpp

注意:lh-cpp 是一个复杂的插件,它提供了很多东西并且有很多依赖项。关于覆盖,它提供了一个:Override 命令让我们选择要覆盖的功能——这个功能需要我当前的工作分支 lh-cpp 和 vim-clang。


推荐阅读