可组合性是 VIM 最强大的理念

个人认为 VIM 中各种指令的可组合性,是 VIM 保持经久不衰的最深层次的源泉,是实现各种高效操作的基石。

使用过 VIM 的人都知道,可以使用简短的 VIM 快捷键完成一些相对复杂的操作。以个人经常使用的快捷键 ciw 为例,ciw 并不是一个完整独立的命令,而是由 ciw 这 3 个命令组合起来,其中 c 为 Change 即修改,i 为 Inner 即内部,w 为 Word 即单词,整个命令组合并直译过来,即为“修改内部的单词”,实际上的效果是修改当前光标选中的单词。正是因为这些原子命令的可组合性,允许这些命令可以有机地结合,实现 1+1 > 2 的效果。一旦这种可组合性的特性让使用者产生印象,便会给人一种这样的隐喻:「组合中的指令是可以替换的」,使用者可能会通过自己的想法,在可组合的规则内自由的尝试其他的组合。例如将 ciw 中的 c 替换为 ddiw 这个指令即代表删除当前光标所在的单词,如果替换为 yyiw 即代表复制当前光标所在的单词。VIM 在这样用户的自由地实践中,通常会诞生一些连作者都未曾设想的操作,这使得 VIM 在用户的使用「迭代」中迸发出惊人的生产力。

可组合性不仅仅是 VIM 中最强大的理念,同时也是软件领域最为强大的武器。

  1. 编程语言只提供少量的关键词及对应的约束规则,使用有限的元件「组合」出可运行的程序。
  2. UNIX 中通过管道(pipe)将功能不同的程序组合成一个整体实现复杂的数据操作。
  3. 互联网中使用不同的通信协议或者 API 将不同的软件和服务组合起来,实现更加复杂的互动结构。
Subscribe to IGAOZP
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.