vim - Vim 从声明中生成函数定义
问题描述
我正在学习使用 vim,但我认为.cpp
从文件中的声明生成文件中的函数定义很不方便.h
。
例如,如果我在 中声明一个函数void print(const vector<int>& arr);
,A.h
我必须打开A.cpp
并键入以下内容:
void print(const vector<int>& arr) {
}
(或者使用yy
复制声明行,然后删除;
和添加{}
......)当一些派生类需要覆盖基类中的函数时,这可能是一项繁重的工作......
有没有方便的插件或命令来帮助我处理它?
解决方案
我的lh-cpp 插件提供这个功能已经有一段时间了。
继续函数声明,输入:GOTOIMPL
et voilà!. 它要么将光标移动到函数定义(从其声明中),要么如果不存在,则生成一个空外壳来定义该函数。
注意:我目前正在改进该功能以支持任何类型的函数声明。要支持模板功能,您必须使用gotoimpl_with_libclang
分支和支持插件vim-clang(在V2Upgrade
分支中)。
在这个精确的时刻,姐妹命令不能像预期的那样与使用初始化列表定义的构造函数一起工作,这对 命令:MOVETOIMPL
有副作用。意味着将内联定义更改为声明加上 文件中的单独定义。:Constructor
:MOVETOIMPL
.cpp
注意:lh-cpp 是一个复杂的插件,它提供了很多东西并且有很多依赖项。关于覆盖,它提供了一个:Override
命令让我们选择要覆盖的功能——这个功能需要我当前的工作分支 lh-cpp 和 vim-clang。
推荐阅读
- python - pywintypes.com_error:(-2147221008,'CoInitialize 尚未被调用。',无,无)
- ruby-on-rails - 为什么在尝试获取嵌套 JSON 属性时出现“没有将字符串隐式转换为整数”?
- php - 如何优化 api 性能
- python - 使用 Python 从 URL 导入数据(到 pandas 数据框)?
- python - 转换日期时间以允许减法
- django - MOD_WSGI Apache2 您无权访问此资源
- matlab - 在 MATLAB 中在 [-2,7] 上绘制函数符号
- c# - ListView 的句柄 (x:Name) 在后面的代码中为空。Intellisense 在编码时“看到”句柄
- java - 数组继续在拦截器中添加相同的值
- javascript - 'this' 在函数中未定义