Linux vi怎么用?
- Linux
- 2025-06-03
- 6
Linux中Vi编辑器的使用详解
Vi(Visual improved)是Linux系统中最经典、最强大的文本编辑器之一,由Bill Joy于1976年开发,作为系统管理员和开发者的必备工具,Vi以其高效的操作模式和广泛的兼容性(几乎所有Unix/Linux系统预装)成为编辑配置文件、脚本和代码的首选,下面将全面解析Vi的使用方法,从基础操作到进阶技巧。
Vi编辑器的核心概念
Vi有三种工作模式,理解模式切换是高效使用的关键:
- 命令模式(Normal Mode)
启动Vi后的默认模式,用于执行复制、删除、搜索等命令(不可直接输入文本)。
- 插入模式(Insert Mode)
按特定键(如 i)进入,可自由编辑文本(屏幕底部显示 -- INSERT --)。
- 末行模式(Ex Mode)
在命令模式下按 进入,用于保存文件、退出、搜索替换等操作。
基础操作指南
启动与退出
# 打开文件(不存在则新建) vi filename.txt # 退出操作(在命令模式下) :q # 退出(无修改时) :q! # 强制退出不保存 :wq 或 :x # 保存并退出
模式切换
| 按键 | 功能 |
|---|---|
| i | 光标前插入 |
| a | 光标后插入 |
| o | 当前行下方插入新行 |
| O | 当前行上方插入新行 |
| ESC | 返回命令模式 |
光标移动(命令模式下)
| 按键 | 功能 |
|---|---|
| h j k l | 左/下/上/右移动 |
| 0 | 行首 |
| 行尾 | |
| gg | 文件第一行 |
| G | 文件最后一行 |
| Ctrl + f | 向下翻页 |
| Ctrl + b | 向上翻页 |
文本编辑
| 命令 | 功能 |
|---|---|
| x | 删除光标处字符 |
| dw | 删除一个单词 |
| dd | 删除整行 |
| yy | 复制当前行 |
| p | 粘贴到光标后 |
| u | 撤销操作 |
| Ctrl + r | 重做操作 |
搜索与替换
# 命令模式下 /pattern # 向下搜索 "pattern" ?pattern # 向上搜索 :noh # 取消高亮显示 # 末行模式下 :%s/old/new/g # 全局替换所有 "old" 为 "new" :12,18s/old/new/ # 替换12-18行的内容
文件操作
:w # 保存文件 :w newfile.txt # 另存为新文件 :e filename.txt # 打开其他文件 :set nu # 显示行号 :set nonu # 隐藏行号
进阶技巧
-
分屏操作

-
宏录制

- qa 开始录制宏(保存到寄存器 a)
- 执行操作(如删除行、插入文本)
- q 停止录制
- @a 回放宏
-
批量注释
:起始行,结束行 s/^/#/ # 添加行首注释(如 :2,10 s/^/#/) :起始行,结束行 s/^#// # 取消注释 - 误入其他模式?
连续按 ESC 返回命令模式。
- 文件只读无法保存?
用 :w !sudo tee % 强制保存(需sudo权限)。
- 显示乱码?
检查编码::set fileencoding,转换格式 :e ++enc=utf-8。
- 恢复崩溃文件
重启后执行 vi -r filename 恢复未保存内容。
- 掌握高频命令(i、ESC、:wq、dd、yy/p)。
- 练习使用方向键替代鼠标(h/j/k/l)。
- 查阅Vim内置教程:终端输入 vimtutor(30分钟入门)。
- Vim官方文档
- Linux Man Pages (man vi)
- 《Practical Vim》 by Drew Neil(书籍)
常见问题解决
高效学习建议
Vi的学习曲线陡峭但回报巨大,熟练后编辑效率远超图形工具,推荐安装增强版 Vim(Vi IMproved)以支持语法高亮、插件等功能:
sudo apt install vim # Debian/Ubuntu sudo yum install vim # CentOS/RHEL
参考资料
原创声明:本文基于Vi/Vim通用操作规范及实践经验整理,适用于大多数Linux发行版(CentOS, Ubuntu, Debian等),文中命令已通过Bash 5.0及Vim 8.2验证。
