(Vim) 复合命令、重复、回撤

一键双雕——复合命令

很多Vim的单键命令都可以被看成两个或多个其他命令的组合。下面是类似的一些例子,它们有什么共同点呢?

复合命令 等效的长命令
C c$
S ^c
I ^i
A $a
o A<CR>
O ko
s cl

当我们输入ko命令时,想想自己在干嘛,然后要意识到我们可以把它换成O命令。

这些命令的共同点是,它们全都会从普通模式切换到插入模式。这会对.命令有怎样的影响??当我们足够熟练时,我们在执行一些常规的插入任务完全不用进行插入模式就可以用.命令快速重复之前操作。

s命令把两个操作合并为一个:它先删除光标下的字符,然后进入插入模式。f{char}命令让Vim查找下一处指定字符出现的位置,如果找到了,就把光标移到那里(参见:h f)。当我们输入f+时,光标会直接移到下一个+号所在的位置。使用;命令会重复查找上次f命令所查找的字符。这样可以实现快速的查找与替换。

执行、重复、回退

在面对重复性工作时,我们需要让移动动作和修改都能够重复,这样就达到了最佳的编辑模式。Vim会记住我们的操作,并使最常用的快捷键触手可及,以方便我们重复执行它们。

除了.命令,有些命令能以其他的方式重复。@:可以用来重复任意Ex命令;我们也可以输入&命令来重复上次的:substitute命令(它本身就是一条Ex命令)。

这样操作起来确实很爽,但是一不小心摁错或者多摁有可能导致很糟糕的情况。所以当我们不小心做过头时,知道回退会很有帮助。

可重复的操作及如何回退

目的 操作 重复 回退
做出一个修改 {edit} . u
在行内查找下一个指定字符 f{char}/t{char} ; ,
在行内查找上一个指定字符 F{char}/T{char} ; ,
在文档中寻找下一处匹配项 /pattern<CR> n N
在文档中寻找上一处匹配项 ?pattern<CR> n N
执行替换 :s/target/replacement & u
执行一系列修改 qx{changes}q @x u
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,761评论 9 468
  • Vim几句话介绍Vim是Unix系统上的文本编辑软件(你该不会不知道什么是文本编辑软件吧!),在windows上也...
    何必遠方阅读 8,409评论 0 3
  • 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令...
    im蚂蚁阅读 30,922评论 3 48
  • 曾经在思科的工厂测试系统`KlemTest` (`SUSE`命令行模式)中使用`VI`/`VIM`超过2年半,现在...
    戈多在地狱阅读 5,832评论 1 13
  • 11.3
    远子85阅读 1,046评论 0 0