说真的,我至今还记得第一次在Linux终端里敲下“vi somefile.txt”时,那种手足无措、血压飙升的感觉。光标像块石头一样焊在屏幕左上角,我疯狂地按键盘,得到的只有系统“哔哔”的抗议声。当时真想摔键盘,心里只有一个念头:“这破编辑器,到底是谁发明的?!”
几乎所有教程都一上来就甩给你一张巨长的命令表,从“i”插入讲到“:wq”保存退出。这没错,但顺序错了。我的建议是,忘掉所有高级操作,就记三个“保命符”:
在这个阶段,你的目标不是“用好”vi,而是“能用”vi完成最简单的编辑:打开文件,打几个字,保存关闭。反复练习,直到肌肉形成记忆。这个过程大概会花掉你一到两个下午,期间你会无数次想放弃。相信我,挺过去,海阔天空。
强迫自己别用方向键!就用 h(左)、j(下)、k(上)、l(右)。一开始别扭得像用脚打字,但一旦习惯,你的手就再也不用离开键盘核心区了,那种行云流水的感觉,是任何图形编辑器都给不了的。
当你不再需要思考“怎么保存”的时候,就可以开始探索vi真正的力量了。这时,vi对你来说不再是一个蹩脚的打字机,而是一把手术刀。
核心思维是:“动词 + 名词”的组合技。
举个例子:dw 是“删除一个单词”,y$ 是“复制从光标到行尾的内容”,c3w 就是“修改接下来的三个单词”。这种组合逻辑一旦打通,你会发现很多命令根本不用“背”,是“猜”出来的。
这个阶段,我强烈建议你给自己找点“麻烦”。比如,故意写一段格式混乱的配置文本,然后只用vi命令去格式化它(删除空行、调整缩进、批量替换)。痛苦吗?痛苦就对了。但做完之后,你对文本的“控制感”会飙升。
到了这一步,vi已经长在你手上了。你开始不满足于内置的功能,想要更极致的效率。这里有两个方向:
比如宏录制(q 开始录,再按 q 结束,用 @ 播放)。面对需要重复几十次的枯燥操作,一个宏能让你在同事目瞪口呆的表情中优雅完成。
再比如窗口分割(:sp 横向分,:vsp 纵向分),同时对照编辑两个文件,那种全局掌控感,简直不要太爽。
这才是真正的“高手乐园”。插件系统让你可以把它打造成专属的IDE:语法补全、目录树、模糊查找、集成终端……几乎所有现代编辑器的功能,它都能通过插件实现,而且全程键盘可控。
配置Vim的过程本身,就是对你自己工作流的一次深度思考和定制。我的.vimrc配置文件改了不下百次,每一次优化,都感觉自己的工具又锋利了一分。
学习vi不像学一门新语言,它更像是在学习一种“心法”。初期是反人性的,因为它剥夺了你熟悉的鼠标和菜单,强迫你用最“原始”的方式与文本对话。
但当你熬过那个临界点,你会发现,不是你“在使用”编辑器,而是你的“想法”直接流淌成了文本。那种思维和操作之间毫无迟滞的流畅感,才是vi带给一个程序员,最奢侈的礼物。
所以,别怕一开始的笨拙。每一个vi高手,都曾是对着屏幕骂过街的新手。这条路我走过,虽然磕绊,但值得。
参与讨论
第一次进vi的时候真的想砸键盘,esc按烂了都没退出成功 😭
这玩意儿真反人类,但用顺手后居然有点上头,现在写代码离了它还不行
为啥非得记hjkl啊?方向键不香吗?求问这样做的实际好处是啥?
前几天配服务器只能用vi,硬着头皮搞了一晚上,现在总算能活着保存文件了,泪目
说的对,宏功能太神了,上次批量处理日志只用了30秒,同事都看傻了