vim 二 · 重复

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

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

移动命令

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

操作命令

  • .,重复上一次操作,主要用来重复组合命令,毕竟组合命令按键比较多呀。
  • daw..,删除三个单词,比 dawdawdaw 短多了,当然还有更短的 3daw,但 . 的好处在于你不用一开始就考虑好删几个单词,只用一直 . 到不需要删为止。
  • A;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 二 · 重复)