看陈皓大哥的博客(http://coolshell.cn/),学习VIM,宏录制的神奇在我脑海中挥之不去,不禁感叹VIM的强大。
示例如下:
宏录制:qa
操作序列q
,@a
,@@
-
qa
把你的操作记录在寄存器a。
-
于是
@a
会replay被录制的宏。
-
@@
是一个快捷键用来replay最新录制的宏。
示例
在一个只有一行且这一行只有“1”的文本中,键入如下命令:
-
qaYp<C-a>q
→
-
qa
开始录制
-
Yp
复制行.
-
<C-a>
增加1.
-
q
停止录制.
-
@a
→ 在1下面写下 2
-
@@
→ 在2 正面写下3
-
现在做
100@@
会创建新的100行,并把数据增加到 103.
-
所有这几个命令里面,唯独不理解Ctrl + a 是什么意思,虽然可以很容易的猜到,我还是google了一下,原来在VIM中Ctrl + a 和Ctrl + x也是有作用的啊,就是将数字+1、-1。
于是我模仿上面的宏录制,来实现一个{1, 3, 5, 7, 9, 11 ……}这样的数据列表。
1.输入1, (1,“,”号,“ ”空格——为了编码规范)
2.输入qa( 开始录制)
3.yyp(复制当前行,粘贴到下一行)
4.2,Ctrl + a (先输入2,再按下Ctrl + a)
5.q (按q结束录制)
6.N@@(该命令用以replay宏, N,代表要重复几次)
7.选中刚刚产生的数据,按J(将所有行连接成一行)
讲的是可以将宏录制到不同的寄存器中,qa(中的a是指a号寄存器,也可以是b,c神马的,而使用的时候也是制定寄存器5@a,5@@是指使用最近录制的宏)
在编辑某个文件的时候,可能会出现需要对某种特定的操作进行许多次的情况,以编辑下面的文件为例:
;=====================================================================================
;This is a sample configuration file when upgrading XXX using InstallShield.
;Author: ini_always
;Date: 8/24/2011
;Last modified: 9/20/2011
;Note: Install script does NOT verify whether the configuration file is in a "WELL"
;format, a WRONG format may lead to installation failure.
;If more information is needed, please check the document for details.
;=====================================================================================
这是一个ini类型的配置文件,可以看到每一行的最前面有一个逗号,现在如果需要将每行前面的逗号去掉,怎么办?在第一行行首按x,然后按j,然后按x...这样重复下去?确实,我最开始也是这样的,但如果这个文件有100行要这样修改呢?或者1000行?
好吧,少废话,进入正题。所谓宏,在vim里面是指某种特定顺序的一系列操作,我们可以录制自己的操作序列,然后重复这个序列多次,以简化某种重复的操作。vim宏有录制和播放的过程,录制就是你教给vim该怎么操作,播放就是vim照着你教的进行自动操作。因此,对于上面的文件处理,首先要进行宏录制:
1.把光标定位在第一行;
2.在normal模式下输入qa(当然也可以输入qb, qc, etc,这里的a, b, c是指寄存器名称,vim会把录制好的宏放在这个寄存器中)(PS:如果不知道什么是vim的寄存器,请自行放狗搜之);
3.正常情况下,vim的命令行会显示“开始录制”的字样,这时候,把光标定位到第一个字符(按0或者|),再按x删除,按j跳到下一行;
4.normal模式下输入q,结束宏录制。
好了,经过以上步骤,我们定义了一个存储在寄存器a中的宏,它的操作序列是:0->x->j,也就是跳到行首,删除,跳到下一行。
现在,第一行已经删除了行首的逗号,而且光标也已经在第二行,现在,在normal模式下输入@a,以播放我们刚录制好的存在寄存器a中的宏。于是,第二行行首的逗号也被删除,光标停在了第三行。
这也不简单啊?你肯定会这样想,要删除100行,我还得输入100个@a,我还不如手动删除呢。呵呵,vim早就想到了,输入7@a,好了,剩下的7行全部搞定了。(PS:在命令前面加数字,就是代表要执行这个命令多少次)
当然,这个例子很简单,但也很典型。利用好vim的宏,可以使一些原本很无聊的工作要简单很多
宏录制太强大了,可以为我们完成很多重复性的劳动,此文有待补充
分享到:
相关推荐
Vim 基本功(Learn Vim...目录复制粘贴删除合并查找块操作缩进格式化窗口分屏标签页书签Vim宏录制Vim重复操作命令撤销重做位置跳转代码折叠Vim可视化模式编辑模式删除操作移动光标调整缩进复制寄存器自动补全输入非常用
3. **宏录制与播放**: `qq`开始录制宏,执行一系列操作后,`q`停止录制。`@q`播放宏。 4. **分屏编辑**: `:sp 文件名`或`:vs 文件名`在当前窗口下方或右侧打开新的文件。 5. **折叠代码**: `zo`展开折叠,`zO`关闭...
8. **宏录制与播放**:`qq`开始录制宏,完成一系列操作后,`q`结束录制。`@q`播放宏,`@@`重复上一次播放。 9. **块选择与操作**:在可视模式下,按`V`选择整行,然后按`I`或`A`可以在每行开头或结尾插入文本。 10...
vim支持语法高亮、代码补全、多窗口编辑、宏录制等功能,使得文本编辑体验更加现代化。 **三、vim的基本模式** vim有三种主要模式:命令模式、插入模式和底行模式。 1. **命令模式**:在此模式下,用户可以移动光标...
Vim是Bill Joy的Vi编辑器的增强版本,它在保留了Vi原有的强大功能的基础上,增加了许多新的特性,如语法高亮、自动缩进、宏录制和播放、多窗口编辑、插件支持等。Vim以其高效、轻量级和高度可定制性而闻名,对于代码...
标签 "Vim Script" 暗示了这个教程将覆盖 Vim 的高级特性,如宏录制与回放、插件开发、自动命令和 Vim 脚本的调试技巧。通过学习这些,你将能够创建自己的插件,进一步定制 Vim,使其更适合你的开发环境。 在 `...
然后逐步深入到更高级的主题,如宏录制、表达式评估、正则表达式使用,以及如何编写自定义函数和脚本,使Vim更加个性化和智能化。 书中详细讲解了Vim的插件系统,如何安装和管理插件,例如使用Vundle或 dein.vim等...
4. **宏录制与播放**:VIM的宏功能允许用户录制一系列操作,并能重复播放,这对于执行重复任务尤其有用。 5. **插件与脚本**:VIM的可扩展性是其一大特色,用户可以安装各种插件以增强功能,编写.vimrc配置文件来...
- **宏录制与播放**: `qq`开始录制,执行一系列操作后,`q`停止录制。`@q`播放宏。 - **多窗口编辑**: 使用`:sp`或`:vs`分屏打开文件,`Ctrl+w+h/j/k/l`在窗口间切换。 - **撤销与重做**: `u`撤销上一步操作,`...
4. **宏录制与播放**:VIM允许你录制一系列操作并保存为宏,然后可以反复播放,这对于重复性的编辑任务非常有用。 5. **插件管理**:VIM可以通过插件系统扩展其功能,如NERDTree用于文件浏览器,Tagbar显示代码标签...
3. **强大的文本操作**:Vim提供了许多强大的文本操作命令,如块选择、搜索替换、宏录制等,极大地提高了文本编辑效率。 4. **扩展性强**:Vim支持各种插件,通过安装插件可以扩展其功能,如语法高亮、代码补全、...
对于开发者,Vim的分屏编辑、宏录制和播放等功能极大地提高了代码编写效率。 在CentOS上,Vim通常可以通过Yum包管理器在线安装,但离线RPM包提供了一种在没有网络连接情况下的解决方案。尽管如此,为了确保系统安全...
Pro Vim还将涵盖高级编辑技巧,如多窗口编辑、宏录制和播放、搜索替换等,帮助用户提升文本处理的效率。 **8. 效率提升** 书中的实践案例和技巧将教导读者如何利用Vim的快捷键和高级特性,减少手指在键盘上的移动,...
此外,vim的宏录制和播放功能能让你自动化重复性的编辑任务,大大提高工作效率。 vim的插件系统是其强大之处,通过安装不同插件,vim可以扩展为代码编辑器、项目管理工具甚至简单的IDE。例如,NERDTree插件提供了一...
3. **宏录制与播放**:Vim 7.3支持宏的录制和播放,用户可以记录一系列操作并重复执行,这对于处理大量重复性工作非常有用。 4. **多窗口编辑**:用户可以在一个Vim会话中打开多个文件,通过分屏显示和切换,可以...
5. **宏录制与回放**:Vim可以录制用户的一系列操作,并将其保存为宏,然后重复播放宏,这对于处理大量重复性工作非常有用。 6. **高可配置性**:通过.vimrc配置文件,用户可以根据个人喜好和工作需求自定义Vim的...
Notepad++的Vim插件不仅提供了基本的Vim操作,如移动光标、插入/替换模式、文本对象选择和多行编辑,还可能包括Vim的高级特性,如宏录制和播放、正则表达式搜索替换以及可视模式等。 总的来说,通过在Notepad++中...
1. 宏录制:`qq`开始录制,执行一系列操作后,`q`停止录制。 2. 宏回放:`@q`播放宏,`@@`重复上次宏播放。 七、插件与配置 1. 安装插件:Vim支持许多插件,如Vundle或NeoBundle,用于管理其他插件。 2. 配置:...
3. **宏录制与播放**:Vim允许用户录制一系列操作并保存为宏,之后可以重复播放宏以快速执行相同的操作。 4. **插件系统**:Vim的可扩展性非常强,用户可以通过安装插件来增加功能,例如语法高亮、自动补全、代码...
8. **宏录制与回放** - `qq`开始录制宏,执行一系列操作后,`q`停止录制。 - `@q`回放宏,`@`后面跟宏的编号。 9. **缩进与取消缩进** - `>>`向右缩进当前行,`>n>`缩进n行。 - `向左缩进当前行,`缩进n行。 ...