上一篇
vi是命令行文本编辑器,启动后默认普通模式(移动光标/执行命令);按
i进入插入模式编辑文本;按
ESC返回普通模式;输入
:进入命令行模式,
wq保存退出,
q!不保存退出。
vi 编辑器核心概念
vi(Visual Editor)是 Unix/Linux 系统的标准文本编辑器,基于模式化设计:


- 命令模式(默认模式)
启动 vi 后自动进入,可执行复制、删除、搜索等操作(不可直接输入文本)。 - 插入模式
按特定键(如i/a)进入,可自由编辑文本。 - 末行模式
在命令模式下按 进入,用于保存、退出或执行高级命令。
基础操作指南
启动与退出
- 启动文件:
vi filename(文件不存在则新建) - 保存并退出:
:wq+ Enter(保存退出)
:x+ Enter(等效 :wq) - 不保存退出:
:q!+ Enter(强制退出) - 仅保存:
:w+ Enter
模式切换
- 命令模式 → 插入模式:
i(光标前插入)
a(光标后插入)
o(下一行插入) - 插入模式 → 命令模式:按
Esc键 - 命令模式 → 末行模式:按
文本编辑(命令模式下)
- 删除:
x(删除光标处字符)
dd(删除整行)
5dd(删除5行) - 复制粘贴:
yy(复制当前行)
p(粘贴到光标后) - 撤销/重做:
u(撤销)
Ctrl + r(重做)
光标移动(命令模式下)
- 方向键:
h(左)、j(下)、k(上)、l(右) - 行首/行尾:
0(行首)、(行尾) - 跳转行号:
:50+ Enter(跳至第50行) - 屏幕导航:
Ctrl + f(下一页)、Ctrl + b(上一页)
搜索与替换
- 搜索:
命令模式下按 ,输入关键词后按 Enter(如/hello)
n(下一个匹配项)、N(上一个) - 替换(末行模式):
:%s/old/new/g(全文替换)
:10,20s/old/new/g(替换10-20行)
实用进阶技巧
- 显示行号:
:set number(启用)
:set nonumber(关闭) - 分屏编辑:
:sp filename(水平分屏)
:vsp filename(垂直分屏)
Ctrl + w + 方向键(切换窗口) - 执行外部命令:
:!ls(运行ls后返回编辑器) - 自动补全:
插入模式下按Ctrl + n(补全单词)
新手常见问题解决
- 误触大写锁定:
按Esc返回命令模式,再按a或i重试。 - 无法退出:
连续按Esc确保回到命令模式,再输入:q!。 - 编辑只读文件:
用sudo vi filename启动,保存时用:w !sudo tee %。
注意事项
- 强制退出风险:
:q!会丢失未保存的修改。 - 替代方案建议:现代系统通常预装 vim(Vi IMproved),支持语法高亮和鼠标操作(命令兼容 vi)。
- 练习推荐:使用
vimtutor命令启动交互式教程(约30分钟掌握基础)。
引用说明: 基于 Unix/Linux 标准文档(IEEE Std 1003.1)及 Vim 官方手册(
vimdoc.sourceforge.net),操作验证环境为 Bash 5.x + Vim 9.0,历史背景参考 Bill Joy 1976 年发布的原始 vi 设计论文。

