提起 vi/vim,很多刚接触的朋友会觉得它门槛高、命令多,恨不得把所有快捷键都背下来。其实大可不必。这类编辑器的核心,恰恰在于“用熟才入门”——你不需要记住全部,但必须搞清楚三件最基础也最重要的事:当前处于什么模式、如何安全退出、以及怎样操作才不会丢失内容。 简单来说,vi 和 vim 的精髓不是
Linux vi/vim编辑器基础操作与快捷键教程
时间:2026-07-07
浏览:485
文章目录
提起 vi/vim,很多刚接触的朋友会觉得它门槛高、命令多,恨不得把所有快捷键都背下来。其实大可不必。这类编辑器的核心,恰恰在于“用熟才入门”——你不需要记住全部,但必须搞清楚三件最基础也最重要的事:当前处于什么模式、如何安全退出、以及怎样操作才不会丢失内容。

简单来说,vi 和 vim 的精髓不是“学完”,而是“用会”。
怎么判断自己卡在哪种模式?
屏幕下方通常就是答案。如果什么提示都没有,那你大概率正处于命令模式——要么是刚打开文件,要么是刚刚按过 ESC 键。如果看到了 -- INSERT -- 或者 -- REPLACE --,那说明你正在输入或替换文本。而最底下一行如果出现了以冒号 : 开头的输入框,恭喜,你已经进入了底线命令模式。
新手最容易遇到的麻烦是什么?想输入文字,却误按了 i 以外的字母(比如不小心按到 l,结果光标只是向右移了一格);或者想保存退出,却发现自己还在插入模式里,于是敲出来的 :wq 全都变成了屏幕上的普通字符。记住这个万能逃生键:无论情况多混乱,连按两次 ESC,几乎总能让你回到安全的命令模式。
保存和退出老是报错?先看这三条
关于保存和退出,其实就几个核心命令,但顺序和组合很重要:
:w—— 只保存,不退出。:q—— 只退出,不保存(但如果文件被修改过,它会拒绝退出,提醒你先保存)。:q!—— 强制退出,并且丢弃所有未保存的修改。当你改乱了想从头再来时,这个命令很管用。:wq和ZZ—— 这两个效果一样,都是保存并退出。但ZZ更快,因为它不需要进入底线命令模式,在普通命令模式下直接按就行。
如果遇到类似 E37: No write since last change (add ! to override) 这样的报错,别紧张。它只是在友好地提醒你:“文件有改动但还没保存,确定要退出吗?如果确定,就在命令后面加个感叹号吧。” 所以,:q! 本身是安全的,它就是用来应对这种情况的。
光标移动和文本操作别靠方向键
在终端或者远程服务器上,方向键有时会失灵,但 vi/vim 的原生移动命令永远可靠。掌握下面这几个,效率就能提升一大截:
- 行内跳转:
0(数字零)跳到行首,$跳到行尾。 - 全文跳转:
gg到文件开头,G到文件末尾。想去特定行?比如第55行,直接输入55G。 - 文本操作:
dd删除整行,yy复制整行,p粘贴到下一行。还有x删除光标后的一个字符,X删除光标前的一个字符(注意大小写区别)。
可别小看 dd 加 p 这个组合。它本质上就是剪切粘贴,而且比依赖系统剪贴板的方式更快、更稳定,尤其是在没有图形界面的服务器环境里,这个优势非常明显。
搜索和替换不是一次性动作
查找文本用 /关键词(向下搜索),然后按 n 找下一个,按 N 找上一个。用 关键词 则是向上搜索。
替换操作则在底线命令模式下进行,有几个常用的格式:
:s/旧文本/新文本/—— 替换当前行第一个匹配项。:s/旧文本/新文本/g—— 替换当前行所有匹配项(g代表全局)。:%s/旧文本/新文本/g—— 替换全文所有匹配项(%代表从第一行到最后一行)。:%s/旧文本/新文本/gc—— 每次替换前都让你确认(c代表确认)。
这里有两个常见的坑:一是用了 :s/old/new 却忘了加 g,结果只替换了当前行的第一处;二是想替换全文却漏掉了开头的 %,只在当前行操作了半天。稳妥起见,在执行替换前,可以先用 /旧文本 搜索一下,确认目标内容确实存在。
说到底,vi/vim 真正的难点不在于记住多少命令,而在于培养一种“模式意识”。每次敲键盘前,先下意识地问自己三个问题:我现在能直接输入文字吗?是不是得先按 ESC 回到命令模式?退出前,该做的保存都执行了吗?养成这种判断习惯,远比死记硬背快捷键更能提升你的操作效率。
实用工具推荐
绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
选择画质和输出格式,预览压缩前后的大小。