每日一Vim(23)宏---Record、Play
写这篇文章的时候想到了读高中那会儿买的第一个电子产品,某某高复读机,话说是为了学英语,呵呵,你懂的,其实是为了好玩。当时差不多花了300担,父母在子女的教育方面可是毫不手软,想想如果那时开始接触计算机互联网相关的东西了,买的就是一台电脑,我离那“一万小时定律”就要早几年完成了...言归正传。
今天要说的其实就和这个复读机相关,复读机在按下复读的按钮后,就开机录制需要复读的内容,再按一下录制完成,接下来就可以播放了。Vim中也有与之惊人相似的操作,如果想重复某个操作,就可以用**宏**来完成,还记得以前讲过的一个命令吗:.
就是这个**点**可以重复执行最后一次操作,但是这个.
的功能比较弱,没法组合使用,如下代码,想在每行末加上分号";":
int a = 1
int b = 2
int c = a+b
print a
print b
print c
如果是用.
来实现的话,首先在第一行执行$a;
,然后重复5次执行j$.
,这样算下来你要敲击的键总数在15次之多,但是我们用Record/Play的话,即使是100行代码,按键也不会超过10次。命令闪亮登场:q
,就是这个q,它的威力很猛。接下来就详细介绍如何操作q
来实现上述需求。
- normal 模式下输入
q
启动recoding,q后面跟任意a-z的小写字母比如m
,这个字母就是宏的名字,接下来你要执行的操作就会记录在这个宏中。 - 执行我们的任务:“行末加分号”,命令是:
$a;<Esc>j$
,这条命令意思就是:移动行尾插入分号,退到normal模式,光标移动到下一行的末尾。 - 再次输入
q
,表示录制结束 - 录制结束后我们就可以play了,输入
@m
就会执行宏中的操作,m
是第一步中使用的宏的名称,5@m
表示重复执行5次。这样,所有行都给加上分号了,真是好使。
再举一例:实现如下效果:从1到100,每行+1。
1
2
3
...
100
命令:首先在第一行插入1,然后光标定位了“1”处,进入normal模式,开始录制:qmyyp<Ctrl>aq
,(解释:yyp
:拷贝一行再粘贴在新的一行,<Ctrl>a
:数字+1)后然执行98@m
,收工。
转载请注明出处,谢谢合作!作者---zhijun
答应推荐一个微信号的:Mac技巧
,主人是70后程序员,主要讲人文科技+mac技巧相关内容。
相关推荐
4. **宏录制与播放**:`:record`命令可以录制一系列操作,`:play`则可以重复这些操作,节省重复劳动的时间。 5. **强大的搜索与替换**:`:grep`命令可以在项目中全局搜索,`:%s/pattern/replacement/g`可以在当前...
- 录制与回放宏:`:record a` 开始录制宏到寄存器a,完成后再用`:play a` 回放。 - 分屏编辑:`:sp filename` 在当前窗口下方打开新文件,`:vs filename` 在右侧打开新文件。 - 插件管理:Vim支持许多插件,如...
通过`:record`命令开始录制,然后执行一系列操作,最后用`:play`命令播放宏,可以大大节省时间。手册会详细讲解这个功能。 除此之外,手册还会涵盖撤销和重做、标签跳转、多窗口编辑、Vim的可视化模式以及Ex命令行...
对于进阶用户,手册会涵盖VIM的宏定义与使用,通过`:record`命令可以录制一系列操作,然后通过`:play`或`@`执行。此外,VIM还支持正则表达式的搜索和替换,如`/pattern`查找模式,`:%s/pattern/replacement/g`全局...
- **宏录制与播放**:`:record a`开始录制宏到寄存器'a',完成后再按'q'停止。`:play a`播放宏。 - **撤销与重做**:在命令模式下,'u'撤销,'U'撤销整行,'.'重复上次操作。 **7. 学习资源** 学习Vi编辑器,可以...
- **宏录制与回放**:`:record a`开始录制宏,`:play a`回放宏,方便重复执行一系列操作。 - **视觉选择**:使用`v`进入可视模式,选择文本块后可进行复制、剪切等操作。 - **语法高亮**:gvim支持多种编程...