Linux开源工具技巧我用 Linux

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

2017-10-17  本文已影响73人  王诗翔

一键双雕——复合命令

很多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
上一篇 下一篇

猜你喜欢

热点阅读