vim 二 · 重复

学会组合只是 vim 入门,虽然是入门也非常博大精深了,像有追求的 vimer 总是在探索更精简的组合命令,探索如何用更少的按键实现某种操作,再把更精简的组合命令练成肌肉记忆。

学会重复命令可以让你的 vim 水平再上一层,学会重复命令才能你再也不想打开别的编辑器(好像仅仅学会组合命令也能达到同样的效果)。

移动命令

  • ;,重复上一次 fFtT 命令
  • ,,逆向重复上一次 fFtT 命令
  • n,重复上一次 /? 搜索命令
  • N,逆向重复上一次 /? 搜索命令

操作命令

  • .,重复上一次操作,主要用来重复组合命令,毕竟组合命令按键比较多呀。
  • daw..,删除三个单词,比 dawdawdaw 短多了,当然还有更短的 3daw,但 . 的好处在于你不用一开始就考虑好删几个单词,只用一直 . 到不需要删为止。
  • A;<esc>j.j.jj.,添加 4 个行尾分号,最后一个分号按两次 j,可以隔一行再添加分号。这是「移动点重复」模式,在「重复执行非常细小的操作,而且重复过程中可能需要随时调整,重复次数也不多」的场景下可以使用这个模式。像这类非常细微的日常重复也被简化到极致,这就是 vim 的进阶玩法。一般情况下你的编辑工作应该是从头到尾都用这个模式完成的。

宏,录制键盘

  • qqngUiwq,第一个 q 用来启动宏录制,第二个 q 是宏的名称,然后是录制的内容,最后用 q 停止录制。录制「搜索下一项然后大写」并储存到名为 q 的宏,宏相当于把移动命令和操作命令放在一起重复执行了,在大型的、确定的、无干扰的情况下使用,比如复杂的排版格式重构。
  • @q 执行一次名为 q 的宏。在录制这个宏之前已经执行过 /abc 命令了,所以在执行时会搜索包含 abc 的单词然后大写。
  • @@,意思是执行上次执行过的宏,也就是 q 宏。这样你就可以按着 @@ 不松来连续多次执行宏了。
  • 99@q99@@,可以加上宏的执行次数,这是执行 99 次。

大招来了。

  • qqqqqngUiw@qq,根据上面的知识可以知道前面三个 q 意思是清空 q 宏,然后正常录制,最后在录制结尾处调用 q 宏,因为这时 q 宏是空的,所以这最后一步无效果,现在结束录制以后 q 宏就有内容了,想想 @q 执行宏会是什么效果。所以递归宏就诞生了,吓得都变成粗体字了。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令...
    im蚂蚁阅读 30,829评论 3 48
  • 最近集中读了几本关于Vim的书,�以《Practical Vim》最为详尽,特重新温习并总结成篇,一来作为复习和练...
    南瓜不胡闹阅读 5,890评论 1 29
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,571评论 9 467
  • #玩卡不卡·每日一抽#每一位都可以通过这张卡片觉察自己: 1、直觉他叫什么名字?安娜 2、他几岁了?30 3、他现...
    我心安住阅读 104评论 0 0