## 基本移动命令 | 命令 | 描述 | | ------ | -------------------------- | | `h` | 向左移动 | | `j` | 向下移动 | | `k` | 向上移动 | | `l` | 向右移动 | | `w` | 移动到下一个单词开头 | | `b` | 移动到上一个单词开头 | | `e` | 移动到当前单词末尾 | | `0` | 移动到行首 | | `^` | 移动到行首第一个非空白字符 | | `$` | 移动到行尾 | | `gg` | 移动到文件开头 | | `G` | 移动到文件末尾 | | `:[n]` | 移动到第 n 行 | ## 插入模式 | 命令 | 描述 | | ---- | -------------------------- | | `i` | 在光标前插入 | | `a` | 在光标后插入 | | `I` | 在行首插入 | | `A` | 在行尾插入 | | `o` | 在当前行下方新建一行并插入 | | `O` | 在当前行上方新建一行并插入 | ## 编辑命令 | 命令 | 描述 | | -------- | -------------------- | | `x` | 删除当前字符 | | `dd` | 删除当前行 | | `dw` | 删除到下一个单词开头 | | `d$` | 删除到行尾 | | `d^` | 删除到行首 | | `yy` | 复制当前行 | | `p` | 粘贴 | | `u` | 撤销 | | `Ctrl+r` | 重做 | | `.` | 重复上一次修改 | ## 搜索与替换 | 命令 | 描述 | | ---------------- | ------------------- | | `/pattern` | 向前搜索 pattern | | `?pattern` | 向后搜索 pattern | | `n` | 下一个匹配项 | | `N` | 上一个匹配项 | | `:%s/old/new/g` | 全局替换 old 为 new | | `:%s/old/new/gc` | 全局替换,每次确认 | ## 可视模式 | 命令 | 描述 | | -------- | ---------------- | | `v` | 进入字符可视模式 | | `V` | 进入行可视模式 | | `Ctrl+v` | 进入块可视模式 | ## 窗口管理 | 命令 | 描述 | | ------------- | -------------- | | `:sp [file]` | 水平分割窗口 | | `:vsp [file]` | 垂直分割窗口 | | `Ctrl+w h` | 移动到左侧窗口 | | `Ctrl+w j` | 移动到下方窗口 | | `Ctrl+w k` | 移动到上方窗口 | | `Ctrl+w l` | 移动到右侧窗口 | | `Ctrl+w c` | 关闭当前窗口 | | `Ctrl+w o` | 只保留当前窗口 | ## 标签页 | 命令 | 描述 | | ---------------- | -------------- | | `:tabnew [file]` | 新建标签页 | | `gt` | 下一个标签页 | | `gT` | 上一个标签页 | | `:tabclose` | 关闭当前标签页 | ## 文件操作 | 命令 | 描述 | | --------- | -------------- | | `:e file` | 打开文件 | | `:w` | 保存文件 | | `:w file` | 另存为 file | | `:q` | 退出 | | `:q!` | 强制退出不保存 | | `:wq` | 保存并退出 | | `:x` | 保存并退出 | ## 其他实用命令 | 命令 | 描述 | | ----------------- | --------------------------------- | | `*` | 搜索当前光标下的单词 | | `#` | 反向搜索当前光标下的单词 | | `:%!command` | 将当前缓冲区内容通过 command 过滤 | | `:r!command` | 将 command 的输出插入到当前位置 | | `:set nu` | 显示行号 | | `:set nonu` | 隐藏行号 | | `:set hlsearch` | 高亮搜索结果 | | `:set nohlsearch` | 取消高亮搜索结果 |