注册 登录
编程论坛 Linux教室

vim有一条重复执行命令序列的命令是什么

lonmaor 发布于 2012-05-23 08:50, 1312 次点击
记得有一次见过,忘记做笔记了。效果如下:
对于.h文件中的一系列声明
void f1();
void f2();
void f3();
复制到.cpp文件中实现。执行如下步骤:
1.移动到行尾删除分号
2.回车插入成对括号
如下:
程序代码:
void f1()
{
}
void f2();
void f3();

据原文说,接下来将光标移动到f2行,按一个键即可完成以上命令序列。

最后结果如下:
程序代码:
void f1()
{
}
void f2()
{
}
void f3()
{
}


求教
7 回复
#2
草狼2012-05-23 11:19
应该是VIM 宏的功能, 斑竹可以google下看看
#3
zklhp2012-05-23 13:21
emacs很容易实现 呵呵
#4
lonmaor2012-05-23 14:10
回复 2楼 草狼
不是宏,就是某个按键。。
#5
草狼2012-05-23 15:51
回复 4楼 lonmaor
vim 宏的话录制好后也就按两个建
看你描述,我觉得还是好像时宏, 可能他建了个快捷方式,
也可能真有那么一个功能, 坐等那个建出现
#6
pangding2012-05-24 00:30
如果你用的是 A 开始的修改的话(这样就不用移到行尾,在行的任何一个位置都可以),按一下 .(句号) 就行了。它重复的是把行尾的 ; 换成 {\n} 的这个命令。
`.' 用于重复最后一次的修改动作。

一般来说,一个简单的动作,用 . 非常合适(顺带一提,一般和 . 搭配的最多的是 ;。不过你这是 j.j.)。
复杂一些的话,就应该用宏或者执行冒号命令了。

有关宏可以去看 :h q
另外有一个超级牛力是 :g。记得在哪看过,说这是 vim 里最伟大的冒号命令。



[ 本帖最后由 pangding 于 2012-5-24 00:36 编辑 ]
#7
pangding2012-05-24 00:38
回复 3楼 zklhp
emacs 也是用宏呗?不过肯定应该是不能一个键搞定。
#8
lonmaor2012-05-25 09:07
谢谢各位捧场,pangding版的'.'键有点像但还不是。等下次见到那篇文章再来补全吧。
结贴。
1