Linux vi/vim编辑器基础操作与快捷键教程

作者:技术拾光时间:2026-07-07 09:21:01浏览:486

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

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

Linux 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 回到命令模式?退出前,该做的保存都执行了吗?养成这种判断习惯,远比死记硬背快捷键更能提升你的操作效率。