以下是一份 Vim 命令大全,涵盖 编辑模式(Insert Mode)、命令模式(Normal Mode) 和 视图模式(Visual Mode) 的常用操作,适合初学者和进阶用户使用。
🧾 Vim 模式简介
Vim 是一个模式化编辑器,主要有以下几种模式:
| 正常模式(Normal Mode) | 启动 Vim 默认进入此模式 | 可执行移动光标、复制粘贴等操作 |
| 插入模式(Insert Mode) | 按 i, a, o 等键进入 | 可以输入文本内容 |
| 视觉模式(Visual Mode) | 按 v, V, Ctrl + v 进入 | 可以选择文本块进行操作 |
| 命令行模式(Command-line Mode) | 按 : 或 / 进入 | 执行保存、搜索、替换等命令 |
🔧 一、正常模式(Normal Mode)命令
启动 Vim 默认进入此模式。按下 Esc 可从其他模式返回。
🔍 光标移动
| h | 向左移动一个字符 |
| j | 向下移动一行 |
| k | 向上移动一行 |
| l | 向右移动一个字符 |
| w | 移动到下一个单词的开头 |
| b | 移动到上一个单词的开头 |
| e | 移动到当前或下一个单词的结尾 |
| 0 | 移动到当前行的行首 |
| $ | 移动到当前行的行尾 |
| gg | 跳转到文件开头 |
| G | 跳转到文件末尾 |
| nG | 跳转到第 n 行(如 5G 到第 5 行) |
| Ctrl + f | 向下翻页 |
| Ctrl + b | 向上翻页 |
| Ctrl + d | 向下滚动半页 |
| Ctrl + u | 向上滚动半页 |
✏️ 编辑操作
| x | 删除当前字符 |
| X | 删除前一个字符 |
| dw | 删除一个单词 |
| dd | 删除整行 |
| ndd | 删除 n 行(如 3dd 删除 3 行) |
| d$ | 删除从光标位置到行尾 |
| d0 | 删除从光标位置到行首 |
| yy | 复制当前行 |
| nyy | 复制 n 行 |
| yw | 复制一个单词 |
| p | 在光标下方粘贴 |
| P | 在光标上方粘贴 |
| u | 撤销一次修改 |
| Ctrl + r | 重做一次撤销 |
| . | 重复上一次编辑操作 |
⚙️ 文件操作
| :w | 保存文件 |
| :w filename | 另存为 filename |
| :q | 退出(无修改时) |
| :q! | 强制退出且不保存修改 |
| :wq | 保存并退出 |
| :wq! | 强制保存并退出 |
| :e filename | 打开另一个文件 |
| :set number 或 :set nu | 显示行号 |
| :set nonumber 或 :set nonu | 隐藏行号 |
| :set list | 显示隐藏字符(如空格、Tab) |
| :set tabstop=4 | 设置 Tab 宽度为 4 个字符 |
| :set autoindent | 自动缩进 |
| :set paste | 进入粘贴模式(防止自动缩进干扰) |
| :set nopaste | 关闭粘贴模式 |
🔍 搜索与替换
| /pattern | 向后搜索 pattern |
| ?pattern | 向前搜索 pattern |
| n | 查找下一个匹配项 |
| N | 查找上一个匹配项 |
| :%s/old/new/g | 替换整个文件中的 old 为 new |
| :1,10s/old/new/g | 替换第 1~10 行中的 old 为 new |
| :s/old/new/ | 替换当前行第一个匹配项 |
| :s/old/new/g | 替换当前行所有匹配项 |
| :s/old/new/gc | 替换当前行所有匹配项,并确认每个替换 |
✍️ 二、插入模式(Insert Mode)
按以下任意键可进入插入模式,按 Esc 返回正常模式。
| i | 在光标前插入 |
| I | 在行首插入 |
| a | 在光标后插入 |
| A | 在行尾插入 |
| o | 在当前行下方新建一行并插入 |
| O | 在当前行上方新建一行并插入 |
| s | 删除当前字符并进入插入模式 |
| S | 删除当前行并进入插入模式 |
🧮 三、视觉模式(Visual Mode)
按以下任意键进入视觉模式,用于选中文本进行操作。
| v | 字符选择模式(Character-wise Visual Mode) |
| V | 行选择模式(Line-wise Visual Mode) |
| Ctrl + v | 块选择模式(Block-wise Visual Mode) |
| o | 切换光标起始点 |
| > | 向右缩进选中区域 |
| < | 向左缩进选中区域 |
| y | 复制选中内容 |
| d 或 x | 删除选中内容 |
| c | 删除选中内容并进入插入模式 |
| : | 对选中区域执行命令(如 :'<,'>s/old/new/g) |
💡 四、命令行模式(Command-line Mode)
按 : 或 / 或 ? 进入该模式,用于执行命令。
| :w | 保存 |
| :q | 退出 |
| :wq | 保存并退出 |
| :q! | 不保存强制退出 |
| :/pattern | 搜索 pattern 并跳转到第一次出现的位置 |
| :help | 打开帮助文档 |
| :help keyword | 查找关键字的帮助信息 |
| :registers | 查看剪贴板寄存器内容 |
| :map | 查看按键映射 |
| :syntax on/off | 开启/关闭语法高亮 |
| :filetype plugin indent on | 开启智能缩进和插件支持 |
🎨 五、高级技巧(可选)
| 多窗口分屏 | :split(水平)或 :vsplit(垂直) |
| 切换窗口 | Ctrl + w + 方向键 |
| 打开多个文件 | vim file1 file2 |
| 在多个文件之间切换 | :next / :prev / :first / :last |
| 加载插件管理器(如 Plug) | :PlugInstall(需配置 vim-plug) |
| 使用宏录制 | q{a-z} 录制宏,@{a-z} 执行宏 |
| 快速注释代码(结合插件) | 如 NERD Commenter: <leader>cc 注释选中行 |
📄 六、实用示例
示例 1:查找并替换
:%s/foo/bar/g
将全文中所有 foo 替换为 bar
示例 2:显示行号并跳转到第 50 行
:set number
:50
示例 3:多窗口打开两个文件
:split otherfile.txt
示例 4:快速删除 5 行
5dd
📚 总结表格
| 进入插入模式 | i, a, o 等 |
| 返回正常模式 | Esc |
| 删除字符 | x |
| 删除行 | dd |
| 复制行 | yy |
| 粘贴 | p |
| 撤销 | u |
| 重做 | Ctrl + r |
| 保存 | :w |
| 退出 | :q |
| 保存并退出 | :wq |
| 搜索 | /keyword |
| 替换 | :%s/old/new/g |
| 显示行号 | :set number |
| 进入选择模式 | v, V, Ctrl + v |
如果你是新手,可以先掌握以下核心命令:
i # 进入插入模式
Esc # 返回正常模式
:wq # 保存并退出
😡 # 保存并退出(简写)
dd # 删除一行
yy p # 复制粘贴一行
u # 撤销
Ctrl + r # 重做
网硕互联帮助中心






评论前必须登录!
注册