【发布时间】:2013-03-23 00:17:08
【问题描述】:
我想知道是否可以在 Vim 中定义一个宏来让您执行以下操作。假设你有一个类定义
class CRectangle {
int x;
int y;
_
};
其中 _ 指定当前光标位置。
运行宏应该会自动生成
class CRectangle {
int x;
int y;
public:
CRectangle (int x, int y);
~CRectangle ();
};
CRectangle::(int x, int y) {
this->x = x;
this->y = y;
}
我一直在考虑这个问题,但没有得到任何结果。 也许创建构造函数定义有点过分。 至少获得构造函数声明是否可行?
====
正如 sftrabbit 指出的那样,生成类似的东西可能更可取
CRectangle::(int _x, int _y) : x(_x), y(_y) {}
【问题讨论】:
-
您不希望它使用成员初始化列表吗?无论如何,我毫不怀疑这是可能的——这就是我们正在谈论的 vim。我只是不确定它真的那么有用。
-
恐怕我以前没有听说过成员初始化列表。感谢您指出。
-
最好使用 sn-ps 来完成该任务。例如,我强烈推荐UltiSnips。请务必查看截屏视频,了解您可以用它做的所有令人惊叹的事情。
-
我一直在使用 snipMate。我不知道 UltiSnips 支持变量的正则表达式。非常感谢。
-
包括语法错误? scnr