Calvin's Tech Space

成于坚忍,毁于浮躁

   :: 首页 :: 联系 :: 聚合  :: 管理

接下来, 我们要将文本的偶数行修改为: This is another test。 由于所有的偶数行都要进行同样的操作, 因此我们把这个操作录制下来, 然后重复播放若干遍, 就能很快地完成这项工作了。

首先, 按几下 ESC 确认处在 Normal 模式下, 再按下 gg 跳到第一行, 准备开始操作。 我们首先按下 q 键, 然后再按一个其它字母, 将这个宏录制到该字母对应的寄存器下。 例如我们这里使用 m 寄存器, 则按 qm。 此时 VIM 状态栏出现“recording”字样, 表明已经进入了录制状态。

然后, 我们把第二行的 a 修改为 another。 首先按 j 进入第二行, 然后按 $ 跳到行末, 再按两下 b 往前跳两个单词, 此时光标停在字母 a 上。 然后我们按下 caw 键删除 a 并进入插入状态, 然后输入 another , 按 ESC 回到 Normal 状态, 按 j 进入下一行, 整个操作步骤就完成了。 最后, 我们再按一下 q, 结束该宏的录制。

接下来我们播放这个宏, 完成整个操作步骤。 在键盘上输入 1000@m, 表示将 m 寄存器里的宏播放 1000 次, 马上可以看到, 文章中所有偶数行的 a 都变成了 another

*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test

解说: 虽然我们指定播放 1000 次, 但事实上, 执行到第 6 次的时候, 光标挪到了屏幕最下方, 于是执行过程就自动停止了。 因此, 在批量操作的时候, 我们可以指定足够大的数字, 而不用担心出现问题。

另外, 修改 a 的时候, 我们跳到行末后再使用 b 命令以单词为单位跳转, 而没使用 h 一个字母一个字母往回挪, 我们使用 caw 修改整个单词, 而不使用 s 命令删除单个字母并进入 Insert 模式。 这些细节可以保证录制得到的宏更具有一般性。

转自http://edyfox.codecarver.org/html/vim_edit_tips.html

如何保存宏?

posted on 2011-06-09 16:33 calvin 阅读(754) 评论(0)  编辑  收藏 所属分类: VIM

只有注册用户登录后才能发表评论。


网站导航: