`
yanlijun250
  • 浏览: 750978 次
文章分类
社区版块
存档分类
最新评论

vim宏录制

 
阅读更多

看陈皓大哥的博客(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的宏,可以使一些原本很无聊的工作要简单很多




宏录制太强大了,可以为我们完成很多重复性的劳动,此文有待补充

分享到:
评论

相关推荐

    learn-vim:vim基本学习

    Vim 基本功(Learn Vim...目录复制粘贴删除合并查找块操作缩进格式化窗口分屏标签页书签Vim宏录制Vim重复操作命令撤销重做位置跳转代码折叠Vim可视化模式编辑模式删除操作移动光标调整缩进复制寄存器自动补全输入非常用

    Hacking Vim

    qx (开始录制宏至寄存器x,x可以为任何字母,但是最常见的是q) command1 … q (结束录制) @x (引用宏) @@ (重复上次宏使用) 2.15读写文件或命令内容 :r filename (读入文件内容) :m,nw filename (将m~n行内容写入...

    Vim是什么?「Vim what?」-crx插件

    从动作开始,从编辑和遍历的基础开始,直到录制用于复杂功能的宏。 备忘单是一个很棒的工具。 该插件已数字化:http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html(谢谢Jon)此插件是开源的,并且...

    入门学习Linux常用必会60个命令实例详解...

    :split或new 打开一个新窗口,光标停在顶层的窗口上 ...按q键加任意字母开始录制,再按q键结束录制(这意味着vim中的宏不可嵌套),使用的时候@加宏名,比如qa。。。q录制名为a的宏,@a使用这个宏。

    Vim what?-crx插件

    从动作开始,从编辑和遍历的基础开始,直到录制用于复杂功能的宏。 备忘单是一个很棒的工具。 此插件已数字化:http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html(谢谢Jon)现在,您可以为那些...

    Sublime Text v2.0.1

    Sublime Text 2是一个轻量、简洁、高效、...支持 VIM 模式支持宏,宏是什么,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。更新非常勤快,几乎每周都会有一个新版本杀出来等等......

    Sublime Text 3083 炫彩版

    Sublime Text 的特色功能: 良好的扩展功能,官方称之为安装包(Package)。 右边没有滚动条,取而代之的是代码...支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。 更新非常勤快

    国产优秀文本编辑器everedit

    简洁方便的宏录制,录制出来的宏就是简单的VBS脚本,易读易改 GUI插件支持,脚本之外的又一大选择,满足您的各种需求 用户自定义工具 丰富的状态栏,可以直接点击进行部分常用项的更改 标准文本拖放支持 可编程高...

    Sublime.Text.3.Build.3008.Ubuntu.64bit 免序列号简体中文破解补丁

    Sublime Text 是一个轻量、简洁、高效、...支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。 更新非常勤快 【此为Ubuntu64bit的破解补丁,其他系统版本的请找我其他上传资源】

    Sublime.Text.3.Build.3008.OSX 免序列号简体中文破解补丁

    Sublime Text 是一个轻量、简洁、高效、跨平台的...支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。 更新非常勤快 【此为OSX的破解补丁,其他系统版本的请找我其他上传资源】

    Sublime.Text.3.Build.3008.Ubuntu.32bit 免序列号简体中文破解补丁

    Sublime Text 是一个轻量、简洁、高效、...支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。 更新非常勤快 【此为Ubuntu32bit的破解补丁,其他系统版本的请找我其他上传资源】

    Sublime Text 3.1.1 代码编辑工具(免费版)

    sublime text 3是款专业强大的代码编辑软件。sublime text 3使用简单,操作方便,为用户...8、支持宏,宏是什么,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。 安装包附带注册码。

    Sublime Text(高级文本编辑器) v3.2.1 Build 3208.zip

    Sublime Text是一款专业好用的...支持宏,宏是什么,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。 更新非常勤快,几乎每周都会有一个新版本杀出来 等等...... Sublime Text截图

    常用VI命令和VI使用技巧

    常用VI命令和VI使用技巧(如录制和播放宏的方法、替换技巧、vim颜色设置、Tab页的使用技巧等)

    SublimeText3180 For Mac

    Sublime Text 支持多种编程语言的语法高亮、拥有优秀的代码自动完成功能,还拥有代码片段(Snippet )的功能,可以将常用的...支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。

    Sublime Text 2

    支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。  Sublime Text 2还具有良好的扩展能力和完全开放的用户自定义配置与神奇实用的编辑状态恢复功能。支持强大的多行选择和...

    MobaXterm最新版本安全下载

    1、支持录制和回放键盘宏 2、支持同时往多个终端发同一命令 3、支持多终端分屏显示,支持全屏 4、支持自定义本地的HOME目录,这样vi,git等配置可以存放在该目录 5、MobaXterm 20支持将终端上的文字复制/保存为RTF...

    Sublime Text 2.0.1 正式版

    作为一个前端,有一款好的开发利器是必不可少的,editplus、notepad++都是不错的工具,体积轻巧,启动...8.支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。 9.更新非常勤快

    Sublime Text2.1 可添加windows8

    8.支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。 9.更新非常勤快 主要快捷键列表: Ctrl+L 选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+Shift+K ...

Global site tag (gtag.js) - Google Analytics