vi 是 Linux/Unix 系统中内置的经典文本编辑器,全终端无图形界面,无需额外安装,轻量且高效,是运维、开发操作 Linux 服务器的必备工具;vim 是 vi 的增强版(Visual Improved),兼容所有 vi 操作,新增语法高亮、代码补全、行号显示等功能,实际使用中vi命令常被系统软链到vim。
本文从核心模式(vi 的灵魂)、基础操作、高级技巧、常用配置四个维度详解,覆盖日常使用 90% 以上场景。
一、vi 的三大核心模式
vi 的所有操作都围绕三种模式展开,模式间的快速切换是基础,默认打开 vi 进入「命令模式」。
1. 命令模式(Normal Mode)
- 核心作用:控制光标移动、删除 / 复制 / 粘贴内容、模式切换、执行快捷命令。
- 进入方式:vi 打开文件默认进入;其他模式下按Esc 键(部分终端按
Ctrl+[)返回。 - 关键特征:终端无输入提示,输入的字符会被解析为操作命令,而非文本内容。
2. 插入模式(Insert Mode)
- 核心作用:编辑 / 输入文本内容,与普通记事本的编辑逻辑一致。
- 进入方式:命令模式下按i/a/o/I/A/O等快捷键(最常用
i)。 - 关键特征:终端左下角显示
-- INSERT --,输入的字符会直接作为文本插入。
3. 末行模式(Last Line Mode)
- 核心作用:执行保存、退出、查找替换、行号显示、文件跳转等高级命令,命令以
:开头。 - 进入方式:命令模式下按
:/?中的任意一个(最常用:)。 - 关键特征:终端底部出现输入行,输入的字符会显示在该行,按 Enter 执行命令,按 Esc 返回命令模式。
模式切换速记:命令模式 ←(Esc) 插入模式 →(:/?) 末行模式
二、基础操作(必学)
1. 打开 / 新建文件
在 Linux 终端执行以下命令,直接进入 vi 的命令模式:
# 打开已存在的文件,文件路径可绝对/相对
vi /home/test.txt
# 新建文件(文件不存在则创建,存在则打开)
vi newfile.sh
# 打开文件并跳转到指定行(如第 10 行),适合编辑大文件
vi +10 /etc/profile
# 打开文件并跳转到最后一行
vi + /var/log/messages
2. 命令模式:光标移动(高效核心)
光标移动是命令模式最常用操作,推荐用键盘方向键 / 字母键(部分纯 vi 环境字母键更兼容),支持单字符 / 整行 / 整屏多级移动,大幅提升编辑效率。
| 操作键 | 功能描述 | 常用程度 |
|---|

