一、Vim 文本编辑器简介
Vim 文本编辑器是由 vi 演变而来的增强型文本编辑器,以其使用便捷、功能强大的特点,成为了 Linux 众多发行版的默认文本编辑器。
1. Vi 编辑器
vi
(Visual Editor)是 Linux 与 Unix 系统中最基本的文本编辑器,类似于 Windows 系统中的记事本(Notepad)。
2. Vi 与 Vim 编辑器的区别
Vim
(Vi Improved)是 vi 编辑器的升级版,具有更多实用功能,使用体验更佳。vi 的大部分命令在 Vim 中均可兼容使用。
3. Vim 的四种工作模式
Vim 编辑器包含以下四种模式:
- 命令模式(Command Mode):默认进入模式,可进行光标移动、复制、粘贴、删除等操作。
- 编辑模式(Insert Mode):可对文件内容进行直接编辑。
- 末行模式(Last Line Mode):用于执行查找、替换、保存、退出等命令。
- 可视化模式(Visual Mode):用于选中多行或多列内容,进行块操作。
四种模式之间可通过特定按键切换,掌握模式切换是高效使用 Vim 的关键。
二、Vim 使用详解
1. 使用 Vim 打开文件
vim 文件名
例如:
vim 1.txt
若文件不存在,将自动创建一个新文件。保存并退出后,文件会正式生成。
2. 保存文件并退出
- 按两次
ESC
回到命令模式; - 输入
:wq
并回车,保存并退出。
3. 不保存退出
- 回到命令模式;
- 输入
:q!
强制退出,不保存更改。
4. 命令模式常用操作
4.1 进入命令模式
- Vim 启动后默认进入命令模式;
- 若处于其他模式,按
ESC
键两次返回命令模式。
4.2 光标移动操作
操作 | 快捷键 |
---|---|
移动至文件首行 | gg |
移动至文件末行 | G |
向上翻页 | Ctrl + b 或 PgUp |
向下翻页 | Ctrl + f 或 PgDn |
向上翻半屏 | Ctrl + u |
向下翻半屏 | Ctrl + d |
定位到第 N 行 | N + G 如 150G |
小技巧:快速定位到错误或关键代码段非常有用!
4.3 复制操作
- 复制当前行:
yy
- 向下复制 N 行:
Nyy
例如:5yy
- 粘贴:
p
(在当前行下方粘贴)或P
(上方粘贴)
4.4 删除/剪切操作
- 删除当前行:
dd
- 删除 N 行:
Ndd
例如3dd
- 删除光标处到行尾:
D
注意:
dd
实为剪切命令,若不粘贴即等同于删除。
4.5 撤销与恢复操作
- 撤销:
u
(Undo) - 恢复:
Ctrl + r
(Redo)
5. 末行模式操作(Last Line Mode)
5.1 进入与退出方式
- 进入:按
:
或/
(查找) - 退出:按
ESC
或连按ESC
两次 或 删除输入内容
5.2 常用命令一览
功能 | 命令 |
---|---|
保存 | :w |
另存为 | :w 路径 如 :w /root/text.txt |
退出 | :q |
保存并退出 | :wq |
强制退出(不保存) | :q! |
查找关键词 | /关键词 |
替换当前行第一个匹配项 | :s/旧/新/ |
替换当前行所有匹配项 | :s/旧/新/g |
替换全文每行第一个匹配项 | :%s/旧/新/ |
替换全文所有匹配项 | :%s/旧/新/g |
显示行号 | :set nu |
取消行号 | :set nonu |
5.3 粘贴模式(解决缩进错乱)
- 启用粘贴模式:
:set paste
- 关闭粘贴模式:
:set nopaste
粘贴外部代码时推荐启用
paste
模式,避免自动缩进造成格式混乱。
6. 编辑模式操作
6.1 进入编辑模式
i
:在光标前插入(Insert)a
:在光标后插入(Append)
需在命令模式下使用。
6.2 退出编辑模式
- 直接按
ESC
回到命令模式
7. 可视化模式(Visual Mode)
7.1 如何进入
模式 | 快捷键 |
---|---|
可视块 | Ctrl + v |
可视行 | V |
可视字符 | v |
- 使用方向键选择范围,按
y
复制,p
粘贴,按ESC
退出可视模式。
7.2 多行注释(添加 #
)
ESC
返回命令模式,输入gg
到第一行- 按
Ctrl + v
进入可视块 - 使用方向键选择多行
- 按
Shift + i
输入#
- 连按两次
ESC
,完成注释
7.3 多行去除注释(删除 #
)
ESC → gg
Ctrl + v
进入可视块- 选择多行
- 按
Delete
键删除#
8. Vim 编辑器实用功能
8.1 代码语法高亮(Syntax Highlight)
- 开启高亮:
:syntax on
- 关闭高亮:
:syntax off
示例:
vim index.php
输入以下内容:
<?php
echo 'hello world';
?>
8.2 异常退出处理
异常退出可能生成 .swp
交换文件,常见原因如终端断开、电源中断等。
- 解决方法:
- 在 Vim 中按
D
删除交换文件; - 或在终端中使用:
rm .文件名.swp
- 在 Vim 中按
每个异常文件命名格式为
.原文件名.swp
。
8.3 正常退出 Vim 总结:
操作 | 命令 |
---|---|
保存退出 | :wq |
不保存退出 | :q! |
保存 | :w |