Appearance
Vim 编辑器极简生存与进阶指南
定位:拒绝繁琐的花哨配置与数以百计的偏门快捷键。本指南只沉淀在 Linux 生产环境中修改配置文件、查看日志时最高频、最实用、50年不落伍的 Vim 生存技能。
1. 核心底座:三大模式流转
Vim 的设计哲学是“让双手不离主键盘区”。理解并熟练切换以下三大模式是所有操作的基石:
i / a / o (进入编辑)
┌──────────────────────────────────────────────┐
│ │
▼ │
编辑模式 (Insert) <─────────────────────────── 命令模式 (Normal) ───────────────────────────> 末行模式 (Command-line)
Esc (退回命令模式) ▲ : / ? (进入末行)
│ 按 Enter 执行后返回
└────────────────────────────┘- 命令模式 (Normal Mode):
- 特点:刚打开文件时的默认模式。任何敲击都被视为快捷键指令(如移动、复制、删除),此时无法直接打字。
- 保命键:无论处于什么状态,连按两下
Esc键都能安全退回到命令模式。
- 编辑模式 (Insert Mode):
- 特点:用于真正的文本录入。屏幕左下角会显示
-- INSERT --。
- 特点:用于真正的文本录入。屏幕左下角会显示
- 末行模式 (Command-line Mode):
- 特点:在命令模式下输入
:触发,光标停留在屏幕最后一行。用于执行保存、退出、查找、替换和设置环境。
- 特点:在命令模式下输入
2. 极简生存:开门四件事
当你被困在 Vim 里不知道如何退出时,请保持冷静,按 Esc 确保进入命令模式,然后使用以下指令:
2.1 打开文件
bash
vim app.conf # 打开或新建文件
vim +10 app.conf # 打开文件并直接跳转到第 10 行 (排查错误神技)2.2 进入编辑 (命令模式下)
i:在当前光标所在位置前开始插入文本 (最常用)。a:在当前光标所在位置后开始追加文本。o:在当前光标所在行的下方新开一行,并进入编辑模式 (修改配置极方便)。
2.3 退出与保存 (末行模式下)
:w:保存当前修改。:q:退出(若文件未修改)。:wq:保存并退出 (日常工作高频组合)。:q!:强制退出,不保存任何修改 (改错配置时的救命稻草)。
3. 高效移动与文本编辑 (命令模式)
在命令模式下,善用以下快捷键,可以成倍提升你在服务器上的配置文件修改效率。
3.1 快速光标移动
G:直接跳转到文件的最后一行 (翻阅日志尾部必备)。gg:直接跳转到文件的第一行。0(数字零):跳转到当前行的行首。$:跳转到当前行的行尾。Ctrl + f:向下翻一页;Ctrl + b:向上翻一页。
3.2 复制、粘贴与删除
dd:删除 (剪切) 当前行。Ndd:删除当前行开始的 N 行 (如3dd表示删除 3 行)。yy:复制当前行。Nyy:复制当前行开始的 N 行。p(小写):在当前光标所在行的下方粘贴。P(大写):在当前光标所在行的上方粘贴。x:删除当前光标所在的单个字符。
3.3 撤销与反撤销
u:撤销 (Undo) 上一步错误操作 (Windows 下的 Ctrl+Z)。Ctrl + r:反撤销 (Redo),恢复刚才撤销的内容。
4. 文本检索与全量替换 (末行模式)
排查复杂配置文件(如 Nginx、Docker Compose)时,快速定位关键字的能力至关重要。
4.1 关键词检索
在命令模式下,按下 / 或 ? 进入末行模式:
/keyword:向文件尾部搜索关键字。?keyword:向文件头部搜索关键字。- 切换匹配项:按
n跳转到下一个匹配项,按N跳转到上一个匹配项。
4.2 文本替换
在末行模式(输入 :)下执行:
:s/old/new/:替换当前行第一个匹配的old为new。:s/old/new/g:替换当前行所有匹配的old为new。:%s/old/new/g:全量替换,将整篇文档中所有的old替换为new(慎用)。
4.3 辅助显示设置
:set nu:显示行号 (Number)。:set nonu:隐藏行号。
5. 生产环境防踩坑守则
- 临时
.swp文件冲突问题:- 现象:当异常断开连接(如终端关闭)后重新打开文件,Vim 会弹出警告提示存在
.filename.swp。 - 原因:Vim 会自动生成临时交换文件以防数据丢失。
- 应对:若确定之前的修改不需要或已恢复,先退出 Vim,然后在终端执行
rm -f .filename.swp彻底清理隐藏的交换文件,否则每次打开都会弹窗。
- 现象:当异常断开连接(如终端关闭)后重新打开文件,Vim 会弹出警告提示存在
- 复制错位/格式杂乱问题:
- 现象:从外部复制一段带有缩进的代码/配置,粘贴到 Vim 的编辑模式时,排版全变乱了。
- 原因:Vim 的自动缩进机制误将粘贴的内容识别为手动输入。
- 应对:粘贴前,在末行模式输入
:set paste开启粘贴模式,然后再进入编辑模式粘贴,即可完美保持原格式。粘贴完成后输入:set nopaste恢复。
6. 外部优质资源参考
- 菜鸟教程 - Vim 手册:最经典的中文基础教程,适合碎片化阅读。
- Bilibili - 30分钟学会Vim:视频演示模式切换与实操,比看文字更直观。
- Vim Adventures:通过在线游戏闯关的方式,肌肉记忆 Vim 的核心快捷键。
Generated by Ark Gardener based on user workflow.
