Linux vi、vim 操作命令
本文最后更新于 2026-01-30,文章内容可能已经过时。
vi/vim 是一款基于三种核心模式(命令模式用于导航与编辑操作、插入模式用于文本输入、底行模式用于文件管理与高级指令)的高效终端文本编辑器。熟练掌握模式切换(如 ESC 退出插入、i/a/o 进入插入、: 进入底行)及各模式下的关键命令(如 hjkl 移动、dd/yy/p 操作文本、:wq 保存退出、/ 查找、:%s 替换等),是实现快速精准编辑的核心。虽初学需适应其逻辑,但一旦掌握,即可在无图形界面的 Linux 环境中实现高效、流畅的文本处理,是系统管理与开发者的必备技能。
一、三种基本模式
1. 命令模式(Command Mode)
启动vi/vim后默认进入此模式,用于执行各种编辑命令。
2. 插入模式(Insert Mode)
用于输入文本内容,按ESC可返回命令模式。
3. 底行模式(Command-Line Mode)
用于执行文件操作命令,如保存、退出等。
二、命令模式常用命令
光标移动
| 命令 | 解释 |
|---|---|
| h/j/k/l | 左/下/上/右移动光标 |
| 0(数字零) | 移动到当前行行首 |
| $ | 移动到当前行行尾 |
| gg | 移动到文件第一行 |
| G | 移动到文件最后一行 |
| nG | 移动到第n行(n为数字) |
| w | 向右以单词为单位移动 |
| b | 向左以单词为单位移动 |
| Ctrl + f | 向下翻一页 |
| Ctrl + b | 向上翻一页 |
文本操作
| 命令 | 解释 |
|---|---|
| i | 在光标前插入文本 |
| a | 在光标后插入文本 |
| o | 在当前行下方插入新行并进入插入模式 |
| O | 在当前行上方插入新行并进入插入模式 |
| x | 删除光标所在字符 |
| X | 删除光标前一个字符 |
| dd | 删除当前行 |
| ndd | 删除当前行及向下n行 |
| yy | 复制当前行 |
| nyy | 复制当前行及向下n行 |
| p | 粘贴到光标下方 |
| P | 粘贴到光标上方 |
| u | 撤销上一次操作 |
| Ctrl + r | 重做上一次撤销的操作 |
| r | 替换光标所在处的单个字符 |
| R | 进入替换模式,连续替换字符直到按ESC |
模式切换
| 命令 | 解释 |
|---|---|
| i/a/o | 进入插入模式 |
| : | 进入底行模式 |
| ESC | 从插入模式返回命令模式 |
三、底行模式常用命令
| 命令 | 解释 |
|---|---|
| :w | 保存文件 |
| :q | 退出Vim |
| :q! | 强制退出,不保存修改 |
| :wq | 保存并退出 |
| :wq! | 强制保存并退出 |
| ZZ | 保存并退出(命令模式下直接按) |
| :set nu | 显示行号 |
| :set nonu | 取消显示行号 |
| :n | 跳转到第n行 |
| /text | 向下查找text |
| ?text | 向上查找text |
| n | 查找下一个匹配项 |
| N | 反向查找下一个匹配项 |
| :%s/old/new/g | 全局替换old为new |
| :n1,n2s/old/new/g | 在n1到n2行间替换old为new |
| :w filename | 另存为filename |
四、基本操作流程
- 打开文件:vim filename
- 编辑文本:
- 按i进入插入模式
- 输入文本内容
- 按ESC返回命令模式
- 保存退出:
- 按:进入底行模式
- 输入:wq保存并退出
掌握这些基本命令后,您就可以高效地使用vi/vim进行文本编辑了!
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 软件从业者Hort
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

