5.12. 技巧12——合并与征服——操作符 + 移动 = 动作

未匹配的标注

5.12 技巧12——合并与征服——操作符 + 移动 = 动作

Vim 的强大之处来源于操作符和移动能被结合起来的方式。在本技巧中我们将学习这是怎么工作的,然后考虑它的影响。

操作符 + 移动 = 动作

d{motion} 这个命令能作用于一个单一字符(dl),一个完整的单词(daw),或者是一个完整的段落(dap)。它的范围是由移动来定义的。c{motion}y{motion} 还有其它一些也是这样。总的来说,这些命令都被称为操作符,你可以查阅 h: operator 来找到完整列表。表2 Vim 的操作命令总结了一些更常用的。

表2 Vim 的操作命令

image-20221123160038697

g~gugU 命令包括两次键击。在每个例子中,我们将 g 视为一个修改随后键击行为的前缀。进一步的讨论请见 初识操作符挂起模式

操作符与移动的结合形成了一种语法。第一个规则很简单:一个动作由一个操作符跟着一个移动组成。学习新的移动和操作符,就像学习 Vim 的词汇。如果遵循这个简单的语法规则,随着词汇量的增长就能表达更多的想法。

假如我们已经知道了利用 daw 来删除一个单词,然后知道 gU 命令(见 :h gU ),它也是一个操作符,所以我们可以调用 gUaw 来将当前的单词转为大写。如果我们将词汇扩展到包括作用于一个段落的 ap 移动,就会发现两个新的操作可供使用:dap 用来删除整段,或者 gUap 使整段大写。

Vim 的语法还有另外一个规则:当一个操作符命令被重复调用,它就作用于当前行,所以 dd 删除当前行,而>> 缩进当前行。 gU 命令是一个特例,可以通过运行 gUgU 或者简写 gUU 来使得它作用于当前行。

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

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


暂无话题~