每种工具都有它的设计理念,在接触Vim的前後,我们会接触大量的相关知识。
有几个观念与原则能帮助我们贯穿各个Vim的模式与命令操作,分别是:
底下我们分别详述这四点。
日常的程序开发中,开发者花费大量时间浏览专案里的档案与相关程序,并在需要时透过滑鼠移动游标,移动游标以输入新程序的频率则相对比较低。Vim针对这种情况进行了优化,设计出了普通模式(Normal Mode)。此模式提供了许多命令,帮助我们有效将游标移动到目标位置,滚动页面、搜寻文件等辅助阅读与寻找的命令主要也都在此模式使用。
想像一下自己是一只正在寻找猎物的老鹰。此时此刻正在天空翱翔,与此同时,我们保持开放的视野,俯瞰大地。一旦发现并锁定目标,躯体便向下飞行至大地,一击必杀,精准且不失优雅。同样的,在普通模式里面,我们先使用命令将游标移动至要修改的位置,之後我们进行相关操作。进入插入模式输入一段新文字、使用c
、d
等相关命令修改、删除内容,或是r
命令进行替换,视需要而定。
在《Practical Vim》一书里,作者使用画家作画来比喻这些过程,画家花时间构思整体画作的布局、光线、色彩,而後或使用铅笔素描、或涂上特制的颜料、或用泼的、或用刻刀、或用其它工具,没有说一定会使用画笔。休息时,画笔不会放在画布上,这点与Vim的操作是相同的。
普通模式就是没有对画布进行操作时的自然状态,在此状态中我们放松地阅读,想法与灵感在此阶段自然浮现。而後选定目标,使用对应的方法修改画布,实现想法。
在Unix哲学里,「Do one thing well」是被奉为圭臬的原则。Unix的shell提供各命令解决不同问题,Vim的各个模式与命令分别处理不同职责的操作,完美体现此原则。
各别的shell命令能够被pipe语法组合起来,处理更大的任务与需求。同样的,在Vim 里面我们可以组合各个命令,处理不同情境。
举个例子,当我们要删除底下a
到g
的文字,用单个命令是做不到的。
这时我们可以组合f
(find)与d
(delete)两个命令。
Vim 里面有f
${目标字元}
命令,用於搜寻(find)目标字元,并将游标移至找到的第一个字元上。ㄌ
普通模式下,当我们对图文字使用f
、g
(find g
),游标就会移动同一行的g
上面。
f
(find)与 d
(delete)两个命令接着,回到行首。我们在fg
命令的前面加上d
命令,也就是输入d
、f
、g
,就会删除a
到g
的字。结果如下图所示。
很直觉地达成需求,是不是很方便呢?Vim有各种组合小功能解决大问题的方式,无法也不用急着一次学完。掌握心法,触类旁通,是精通Vim的不二法门。
>>: [VSCodeVim] Vim的思维、哲学与解决问题之道 (二)
前言 该系列是为了让看过Vue官方文件或学过Vue但是却不知道怎麽下手去重构现在有的网站而去规画的系...
花了一点时间,把 Debian 10.10 下载与安装,我选择 Gnome 桌面环境,原因是在 Fe...
今天我们要实作 Signaling server 的部分: 建立文件 # 进入要放专案的路径 ❯ c...
连假是真的懒,今天继续做点简单的东西。 主要是悬浮视窗的几个按钮,我想做成平常能自动收起,触碰画面时...
在工具列中的工具选项,找到插件管理器 点下去後跳出一个视窗 在这里就可以引入你想引入的插件啦 这边有...