从新手到高手的vi学习路径

5 人参与

说真的,我至今还记得第一次在Linux终端里敲下“vi somefile.txt”时,那种手足无措、血压飙升的感觉。光标像块石头一样焊在屏幕左上角,我疯狂地按键盘,得到的只有系统“哔哔”的抗议声。当时真想摔键盘,心里只有一个念头:“这破编辑器,到底是谁发明的?!”

新手村:别急着背命令,先活下来

几乎所有教程都一上来就甩给你一张巨长的命令表,从“i”插入讲到“:wq”保存退出。这没错,但顺序错了。我的建议是,忘掉所有高级操作,就记三个“保命符”:

  • i:按一下,进入“能打字”模式。这是你从“抓狂模式”切换到“人类模式”的唯一通道。
  • ESC:无论你觉得自己迷失在哪个次元,狂按它,回到安全区(命令模式)。
  • :wq:q!:前者是“保存并滚蛋”,后者是“老子不玩了,放弃所有修改”。你的工作成果能否保住,就靠它俩了。

在这个阶段,你的目标不是“用好”vi,而是“能用”vi完成最简单的编辑:打开文件,打几个字,保存关闭。反复练习,直到肌肉形成记忆。这个过程大概会花掉你一到两个下午,期间你会无数次想放弃。相信我,挺过去,海阔天空。

一个让你效率翻倍的小窍门

强迫自己别用方向键!就用 h(左)、j(下)、k(上)、l(右)。一开始别扭得像用脚打字,但一旦习惯,你的手就再也不用离开键盘核心区了,那种行云流水的感觉,是任何图形编辑器都给不了的。

进阶之路:从“移动光标”到“操纵文本”

当你不再需要思考“怎么保存”的时候,就可以开始探索vi真正的力量了。这时,vi对你来说不再是一个蹩脚的打字机,而是一把手术刀。

核心思维是:“动词 + 名词”的组合技

  • “动词”:你想做什么?删除(d)、复制(y)、修改(c)。
  • “名词”:你对什么操作?一个单词(w)、到行尾($)、整行(啥也不加)。

举个例子:dw 是“删除一个单词”,y$ 是“复制从光标到行尾的内容”,c3w 就是“修改接下来的三个单词”。这种组合逻辑一旦打通,你会发现很多命令根本不用“背”,是“猜”出来的。

这个阶段,我强烈建议你给自己找点“麻烦”。比如,故意写一段格式混乱的配置文本,然后只用vi命令去格式化它(删除空行、调整缩进、批量替换)。痛苦吗?痛苦就对了。但做完之后,你对文本的“控制感”会飙升。

高手领域:让vi成为你思维的延伸

到了这一步,vi已经长在你手上了。你开始不满足于内置的功能,想要更极致的效率。这里有两个方向:

1. 挖掘原生vi的“黑暗魔法”

比如宏录制(q 开始录,再按 q 结束,用 @ 播放)。面对需要重复几十次的枯燥操作,一个宏能让你在同事目瞪口呆的表情中优雅完成。

再比如窗口分割(:sp 横向分,:vsp 纵向分),同时对照编辑两个文件,那种全局掌控感,简直不要太爽。

2. 拥抱它的现代子孙:Vim 或 Neovim

这才是真正的“高手乐园”。插件系统让你可以把它打造成专属的IDE:语法补全、目录树、模糊查找、集成终端……几乎所有现代编辑器的功能,它都能通过插件实现,而且全程键盘可控。

配置Vim的过程本身,就是对你自己工作流的一次深度思考和定制。我的.vimrc配置文件改了不下百次,每一次优化,都感觉自己的工具又锋利了一分。

最后,心态最重要

学习vi不像学一门新语言,它更像是在学习一种“心法”。初期是反人性的,因为它剥夺了你熟悉的鼠标和菜单,强迫你用最“原始”的方式与文本对话。

但当你熬过那个临界点,你会发现,不是你“在使用”编辑器,而是你的“想法”直接流淌成了文本。那种思维和操作之间毫无迟滞的流畅感,才是vi带给一个程序员,最奢侈的礼物。

所以,别怕一开始的笨拙。每一个vi高手,都曾是对着屏幕骂过街的新手。这条路我走过,虽然磕绊,但值得。

参与讨论

5 条评论
  • 月影涟漪

    第一次进vi的时候真的想砸键盘,esc按烂了都没退出成功 😭

  • 天涯漫步

    这玩意儿真反人类,但用顺手后居然有点上头,现在写代码离了它还不行

  • LostInStarlight

    为啥非得记hjkl啊?方向键不香吗?求问这样做的实际好处是啥?

  • 赛博神谕

    前几天配服务器只能用vi,硬着头皮搞了一晚上,现在总算能活着保存文件了,泪目

  • 花见小町

    说的对,宏功能太神了,上次批量处理日志只用了30秒,同事都看傻了