Vi 编辑器与 Vim 编辑器的定义及区别
1. 什么是 Vi 和 Vim?
- Vi(Visual Editor)
- 是 Unix/Linux 系统中经典的命令行文本编辑器,设计简洁,几乎所有 Linux 发行版都预装。
- 特点:轻量级、模式化编辑(命令模式、插入模式)、适合快速编辑配置文件或代码。
- Vim(Vi IMproved)
- 是 Vi 的增强版本,在 Vi 的基础上添加了语法高亮、插件支持、多级撤销等现代功能。
- 特点:功能丰富、可扩展性强,适合开发者或需要高效编辑的场景。
2. Vi 和 Vim 的核心区别
特性 | Vi | Vim |
---|---|---|
语法高亮 | 不支持 | 支持(根据文件类型自动着色) |
多级撤销 | 仅支持单次撤销(按 u ) | 支持无限次撤销(u 和 Ctrl + r ) |
插件/脚本支持 | 不支持 | 支持插件和自定义脚本(Vimscript) |
用户界面 | 基础界面,无行号、状态栏 | 支持行号、分屏、状态栏等 |
兼容性 | 所有 Unix/Linux 系统预装 | 需手动安装(如 apt install vim ) |
分屏操作 | 不支持 | 支持垂直/水平分屏(:vsp 和 :sp ) |
跨平台支持 | 仅限 Unix/Linux | 支持 Windows、macOS、Linux |
3. 如何使用 Vi/Vim?
基本操作步骤(Vi 和 Vim 通用)
-
启动编辑器:
vi 文件名 # 使用 Vi vim 文件名 # 使用 Vim
-
模式切换:
- 命令模式:默认模式,按
Esc
返回。 - 插入模式:按
i
(插入)或a
(追加)开始编辑文本。 - 底行模式:在命令模式下按
:
输入命令(如保存、退出)。
- 命令模式:默认模式,按
-
保存与退出:
- 保存文件:
:w
(底行模式)。 - 保存并退出:
:wq
或:x
。 - 强制退出不保存:
:q!
。
- 保存文件:
4. 必须掌握的核心操作
(1)命令模式下的操作
操作 | 命令 | 说明 |
---|---|---|
移动光标 | h (左)、j (下)、k (上)、l (右) | 方向键替代方案 |
跳转到行首/行尾 | 0 (行首)、$ (行尾) | 快速定位行 |
删除字符/行 | x (删除光标处字符)、dd (删除整行) | 删除操作需在命令模式 |
复制/粘贴 | yy (复制行)、p (粘贴到光标后) | 支持多行复制(如 3yy 复制3行) |
撤销/重做 | u (撤销)、Ctrl + r (重做) | Vim 支持多级撤销,Vi 仅单次 |
搜索文本 | /关键词 (按 n 跳转到下一个结果) | 区分大小写 |
(2)底行模式操作
操作 | 命令 | 说明 |
---|---|---|
替换文本 | :%s/旧内容/新内容/g | 全局替换(g 表示所有匹配项) |
显示行号 | :set number | Vim 支持,Vi 不支持 |
分屏编辑 | :vsp 文件名 (垂直分屏)、:sp 文件名 (水平分屏) | Vim 专属功能 |
文件编码转换 | :set fileencoding=utf-8 | 解决乱码问题 |
5. Vim 的进阶功能(Vi 不具备)
(1)分屏操作
- 垂直分屏:
:vsp 文件名
- 水平分屏:
:sp 文件名
- 切换分屏窗口:
Ctrl + w + 方向键
(2)代码友好功能
- 语法高亮:自动根据文件类型着色(如
.py
、.sh
)。 - 自动缩进:
:set autoindent
。 - 代码补全:按
Ctrl + n
或Ctrl + p
补全单词。
(3)插件管理
-
安装插件管理器(如 Vim-plug):
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
-
常用插件:
- NERDTree:文件目录树。
- YouCompleteMe:代码自动补全。
- vim-airline:状态栏美化。
6. 实战示例
场景 1:编辑配置文件(如 Nginx)
-
打开文件:
vim /etc/nginx/nginx.conf
-
跳转到第 30 行:输入
:30
。 -
进入插入模式:按
i
,修改配置。 -
保存并退出:按
Esc
,输入:wq
。
场景 2:批量替换文本
-
全局替换所有 “foo” 为 “bar”:
:%s/foo/bar/g
7. 注意事项
- Vi 的局限性:
- 不支持多级撤销和语法高亮,建议优先使用 Vim。
- 退出卡住:
- 确保按
Esc
回到命令模式,再输入:q!
强制退出。
- 确保按
- 推荐配置:
- 创建
~/.vimrc
文件自定义 Vim 行为(如设置行号、缩进)。
- 创建
- 替代工具:
- 新手可选 Nano(简单易用),开发者推荐 VSCode(图形界面)。
总结
- Vi:轻量级,适合快速编辑配置文件。
- Vim:功能全面,适合编程和复杂操作。
- 核心操作:模式切换、光标移动、保存退出、搜索替换。
- 进阶技巧:分屏、插件、脚本(Vim 专属)。