下面是 **Vim 编辑器** 最常用、最实用的快捷键和操作案例(适用于 Vim 8.x / 9.x / Neovim 主流版本,2025–2026 年日常开发场景): ### 1. 最核心的 5 个快捷键(几乎每个人每天都会用到) | 功能 | 快捷键 | 说明 | |----------------|--------------|-------------------------------------------| | **进入插入模式** | `i` | 在光标前插入 | | **退出插入模式** | `Esc` 或 `Ctrl + [` | 回到普通模式(最重要键!) | | **保存并退出** | `:wq` + Enter 或 `ZZ` | 写盘 + 退出(最常用组合) | | **强制退出不保存** | `:q!` 或 `ZQ` | 放弃所有更改直接退出 | | **撤销** | `u` | 撤销上一次操作(可多次按) | ### 2. 常用操作分类速查表(按使用频率排序) #### 移动光标(Normal 模式下最常用) | 功能 | 快捷键 | 说明 / 常用组合示例 | |--------------------------|---------------------|------------------------------------------| | 上下左右 | `h j k l` | 基础移动(取代方向键) | | 单词首/尾 | `w / b` 或 `e` | 向前/向后跳单词,`W B E` 按词组跳 | | 行首/行尾 | `0` / `$` | `^` 跳到行首第一个非空字符 | | 页首/页尾/中间 | `gg` / `G` / `M` | 文件首行 / 末行 / 屏幕中间 | | 跳到第 N 行 | `:42` + Enter 或 `42G` | 直接跳到第 42 行 | | 跳到匹配的括号 | `%` | 光标在括号上按 % 跳到匹配的另一半 | #### 编辑 / 删除 / 复制 / 粘贴 | 功能 | 快捷键 | 说明 / 案例 | |--------------------------|-------------------------|------------------------------------------| | 删除当前字符 | `x` | 类似 Delete | | 删除整行 | `dd` | 最常用删行 | | 删除到行尾 | `D` 或 `d$` | 从光标处删到行尾 | | 删除一个单词 | `dw` 或 `diw` | `diw` 删除光标所在整个单词 | | 复制整行 | `yy` | 复制当前行 | | 粘贴 | `p` / `P` | p 在光标后粘贴,P 在光标前 | | 改写(删除+进入插入) | `cw` / `ciw` / `ci"` | 改写单词 / 改写引号内内容 | | 撤销 / 重做 | `u` / `Ctrl + r` | 撤销上一步 / 恢复被撤销的操作 | | 重复上一次操作 | `.` | 最强大键!改一个地方后用 . 快速改其他地方 | #### 查找 & 替换 | 功能 | 快捷键 | 说明 | |--------------------------|-------------------------|------------------------------------------| | 向下查找 | `/pattern` + Enter | 查找 pattern,按 n 下一个,N 上一个 | | 向上查找 | `?pattern` + Enter | 同上,反方向 | | 替换当前行 | `:s/old/new/g` | 当前行内全部替换 old → new | | 替换整个文件 | `:%s/old/new/g` | 全文件替换(最常用) | | 替换并确认 | `:%s/old/new/gc` | 每次替换前询问(c = confirm) | #### 文件 & 窗口操作 | 功能 | 快捷键 | 说明 | |--------------------------|-------------------------|------------------------------------------| | 保存 | `:w` | 只保存不退出 | | 另存为 | `:saveas newfile` | — | | 关闭当前窗口 | `:q` 或 `Ctrl + w q` | 有修改会提示 | | 强制关闭 | `:q!` | — | | 水平 / 垂直分屏 | `:sp` / `:vsp` | 水平 / 垂直拆分窗口 | | 切换窗口 | `Ctrl + w` + `h/j/k/l` | 或 `Ctrl + w w` 循环切换 | | 打开新文件 | `:e filename` | — | ### 3. 实用操作案例(直接能用) **案例1:快速修改配置文件并保存退出** ```bash vim /etc/nginx/nginx.conf # 修改内容... :wq ← 保存退出 # 或直接按 ZZ(大写!) ``` **案例2:删除 10 行** 光标移到要删的第一行 → `10dd` **案例3:把第 50–55 行移动到第 120 行后面** 1. `50G` 跳到第 50 行 2. `5dd` 剪切 5 行(50–54) 3. `120G` 跳到 120 行 4. `p` 粘贴 **案例4:把所有 "http://" 替换成 "https://"** ``` :%s#http://#https://#g ``` **案例5:把当前光标所在单词全部替换为新词** ``` :%s/\/newword/g ``` (`\< \>` 限制整词匹配) **案例6:快速在文件末尾追加内容** ``` G ← 跳到最后一行 o ← 在下一行插入 # 输入内容... Esc :wq ``` ### 4. 推荐写到 ~/.vimrc 的几行常用设置(可选) ```vim set number " 显示行号 set relativenumber " 相对行号(超好用) set cursorline " 高亮当前行 set ignorecase " 搜索忽略大小写 set smartcase " 智能大小写(有大写时不忽略) set tabstop=4 " Tab 显示为 4 空格 set shiftwidth=4 set expandtab " Tab 自动转空格 set clipboard=unnamed " 与系统剪贴板共享(很多发行版需要 +clipboard 编译) ``` Vim 的学习曲线陡峭,但掌握核心 30–40 个键后,效率会远超 nano。 建议先跑一次 `vimtutor`(终端输入这个命令),花 30 分钟走完教程,基本就能上手了。