4.6. 技巧2——不要重复你自己——减少无关的移动——两个换一个

未匹配的标注

4.6 技巧2——不要重复你自己——减少无关的移动——两个换一个

我们可以说 A 命令将两个动作 ( $a ) 合成为一个键击。不是只有他这样做。许多 Vim 的单键命令都可以看成是两个或多个其他命令的压缩版本。下面这个表显示了其中一些例子,你可以发现他们都有哪些其他的共同点吗?

image-20221112213859633

如果你突然发现自己在运行 ko 或者更糟的 k$a<CR> ,停!想想你正在做什么。然后意识到你可以使用 O</CR> 这个命令作为替代。你发现这些命令共享的其他特性吗?他们都从正常模式切换到插入模式。想一想这个特性并且它可能怎样影响点(.)命令。

消化上述命令

  • C : 删除从光标位置到行尾并且之后 [count]-1的行,并开始插入,c$ 的同义词。
  • s : 删除 [count] 个字符并且开始插入(s 代表 Substitute),cl 的同义词。
  • S : 删除 [count] 行并且开始插入,cc 的同义词。
  • I : 在行的首个非空字符之前插入文本。
  • A : 在行尾追加文本。
  • o : 在光标下插入一个新行并且插入文本。
  • O : 在光标上插入一个新行并插入文本。
  • c{motion}:根据 {motion} 来删除文本并开始插入。$ 是到行尾的动作,所以 c$ 是删除到行尾。 l 是右边的字符,所以 cl 是删除光标下的字符。
  • ^ : 到行的首个非空字符,所以 ^C 是先到行首然后从行首删到行尾,也就是删除该行;^i 就是先移动行首,然后进入插入模式。
  • A<CR> : 根据上面所述,A就是在行尾追加文本(这里没有),然后回车,因此就是在光标下开启一个新行并开始插入模式。
  • k : 光标向上移动一行,所以 ko 是先移动到上一行,然后移动到行尾再回车,因此就是在(原)光标上开始一个新行并插入文本。
  • a : 在光标后添加文本。如果光标在一个空行的第一列,插入从这里开始。所以 o 等价于 A<CR> 而不是 $<CR> ,因为那样就无法进入插入模式,自然也就不能插入新的行了。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~