作为一名经常和终端打交道的开发者,Vim 曾是我最“望而却步”的工具——刚打开时一片漆黑,敲键盘没反应,甚至不知道怎么退出,一度以为它是“反人类”的存在。但当我真正花时间摸清它的逻辑后,才发现它的高效与便捷,尤其是在远程服务器操作、快速编辑代码时,Vim 能让操作效率翻倍。
这篇博客不堆砌复杂命令,只分享日常高频的 Vim 用法,适合刚接触 Vim 的同学,也适合想快速回顾核心操作的开发者,看完就能上手实操,告别“打开Vim就懵圈”的尴尬。
一、为什么要学Vim?
现在有VS Code、WebStorm 等可视化编辑器,为什么还要学 Vim?其实 Vim 的核心优势,恰恰是可视化编辑器无法替代的:
- 跨平台无门槛:几乎所有 Linux、Unix 系统都默认自带 Vim,远程登录服务器时,没有可视化编辑器,Vim 就是唯一的选择(总不能远程用 VS Code 吧?)。
- 纯键盘操作,效率拉满:不用频繁切换鼠标和键盘,熟练后编辑、修改、跳转的速度远超鼠标操作,尤其适合大文件编辑、代码修改。
- 轻量且强大:占用资源极少,启动速度飞快,同时支持插件扩展,可自定义配置,既能满足简单的文本编辑,也能胜任复杂的代码开发。
- 提升开发逼格:当别人还在鼠标点来点去时,用Vim在键盘行云流水操作终端,仪式感直接拉满(当然,实用才是核心)。
一句话总结:Vim 不是“过时的工具”,而是「终端操作的必备技能」,花少量时间入门,能节省长期的操作成本。
二、Vim 核心基础:先搞懂3个模式(重中之重)
Vim 最核心的逻辑的是「模式切换」——不同模式下,键盘的功能完全不同。Vim 的一切操作,都基于模式。
1. 正常模式(Normal Mode):默认模式
打开 Vim 后,默认进入的就是正常模式,也是我们最常用的模式,主要用于「移动光标、执行操作」(比如复制、删除、替换)。
核心特点:不能直接输入文字,敲键盘都是“命令”,比如按 h 不是输入h,而是向左移动光标。
2. 插入模式(Insert Mode):输入文字
当我们需要输入文字时,需要从正常模式切换到插入模式,切换方式很简单:在正常模式下,按 i(insert 的缩写),此时左下角会显示 -- INSERT --,就可以正常输入文字了。
退出插入模式:按 Esc 键,回到正常模式(这是最常用的操作,一定要记牢)。
3. 命令行模式(Command Mode):执行高级命令
在正常模式下,按 :(冒号),就会进入命令行模式,左下角会出现 :,可以输入各种高级命令(比如保存、退出、查找、替换等)。
常用命令:
:w:保存当前文件(write):q:退出 Vim(quit):wq:保存并退出:q!:强制退出,不保存修改(慎用)/关键词:在文件中查找关键词(按n下一个,N上一个)
易错点:打开 Vim 后直接敲键盘没反应,就是因为在正常模式下,没有切换到插入模式;退出时不知道按 Esc 回到正常模式,再输入 :q,导致卡壳。
三、必记高频命令
不用死记硬背所有命令,先掌握这些高频操作,日常编辑、修改文件完全够用,剩下的可以用到时再查。所有命令都默认在「正常模式」下执行。
1. 光标移动(最常用,告别方向键)
Vim 的光标移动不用方向键,用键盘字母键,熟练后比方向键快很多:
h:向左移动光标j:向下移动光标k:向上移动光标l:向右移动光标gg:跳转到文件开头G:跳转到文件结尾nG:跳转到第 n 行(比如10G就是跳转到第10行)w:跳转到下一个单词的开头b:跳转到上一个单词的开头
2. 文本编辑(复制、删除、替换)
- 复制:
yy(复制当前行);nyy(复制当前行及以下 n 行,比如3yy复制3行) - 粘贴:
p(粘贴到光标下方);P(粘贴到光标上方) - 删除:
dd(删除当前行);ndd(删除当前行及以下 n 行);x(删除光标所在位置的字符) - 撤销/重做:
u(撤销上一步操作);Ctrl + r(重做撤销的操作) - 替换:
r(替换光标所在的单个字符,按r后再按要替换的字符);:%s/旧内容/新内容/g(全局替换,比如:%s/hello/world/g把所有hello换成world)
3. 插入模式快速切换(提升效率)
除了 i 进入插入模式,还有几个更便捷的切换方式,按需使用:
i:在光标所在位置插入I:在当前行的开头插入a:在光标所在位置的后面插入A:在当前行的结尾插入o:在当前行的下方新建一行并插入O:在当前行的上方新建一行并插入
四、总结
Vim 不是一个“一蹴而就”的工具,它的门槛在于「模式切换」和「命令记忆」,但只要掌握了3个核心模式和高频命令,就能快速上手,满足日常终端编辑需求。
对于开发者来说,Vim 是一个“越用越香”的工具——刚开始可能觉得麻烦,但熟练后,会发现它能节省大量的操作时间,尤其是在远程服务器操作时,Vim 绝对是一个得力助手。