一、前言¶
文本编辑是Linux系统中的一项关键任务,而Vi和Vim是两个强大的文本编辑器,也是Linux用户和系统管理员的首选。本文将深入研究Vi和Vim,探讨它们的功能、使用方法和高级技巧。
二、什么是Vi和Vim¶
Vi:
- Vi是一个古老而经典的文本编辑器,几乎在每个Linux系统中都可以找到。
- 系统自带,不需要额外安装,没有vim功能多
Vim:
- Vim是Vi的改进版本,它提供了更多的功能和定制选项。
- Vim是Linux社区中最受欢迎的文本编辑器之一,也被广泛用于开发和系统管理。
三、Vi和Vim基本使用¶
3.1 打开文件¶
假设编辑aaa.txt文件
$ vim aaa.txt
说明:如果aaa.txt文件不存在会自动进行创建
3.2 进入编辑模式¶
输入字母i即可编辑文件,下面会显示insert字样

3.3 退出编辑模式¶
按Esc键退出编辑模式
3.4 保存且退出¶
保存且退出分为三种情况:
- :wq 保存退出
- :q! 强制退出不保存
- :wq! 强制退出并保存
3.5 检查¶
使用cat等命令查看修改后的文件
$ cat aaa.txt
3.6 特殊用法¶
3.6.1 同时编辑多个文件¶
使用vim命令可以同时编辑多个文件
$ vim a.txt b.txt
具体操作如下:
- 首先执行上面命令会进入a.txt文件,输入
i进入编辑模式,输入完成内容后,执行:wq保存即可 - 接着输入
:n进入下一个文件b.txt(如果是上一个文件,则需要将小写n替换成大写N) - 最后输入b.txt相关内容后,执行
:wq保存退出即可
四、Vim模式¶
Vim模式主要分为四种:
-
命令模式:通过vi/vim打开文件后进入的模式
-
编辑模式(插入模式):用于编辑,修改文件内容
-
底行模式:保存退出,搜索使用
- 可视块模式: 用于批量编辑
五、Vim快捷键¶
5.1 移动光标类快捷键¶
| Vim快捷键 | Vim快捷键说明 |
|---|---|
| gg | 快速移动到第一行 |
| G | 快速移动到最后一行 |
| xxgg(xx表示行号) | 快速移动到指定xx行 |
| ^ | 光标快速移动到行首 |
| $ | 光标快速移动到行尾 |
5.2 复制删除粘贴替换快捷键¶
| Vim快捷键 | Vim快捷键说明 |
|---|---|
| yy | 复制光标所在行 |
| xxyy(xx表示行号) | 复制xx行(从光标所在行开始算起) |
| dd | 删除光标所在行 |
| dG | 在vim命令进入文件后删除文件全部内容(建议先执行gg到第一行位置) |
| xxdd(xx表示行号) | 删除xx行(从光标所在行开始算起) |
| p | 粘贴复制的内容(从光标的下一行开始粘贴) |
| xxp(xx表示重复粘贴的次数) | 重复粘贴xx次复制的内容(从光标的下一行开始粘贴) |
| :%s/将被替换内容/替换后的具体内容/g | 全局替换自定义内容 |
5.3 查看快捷键¶
| Vim快捷键 | Vim快捷键说明 |
|---|---|
| :set nu | 显示行号 |
| :set nonu | 不显示行号 |
| /查看内容 | 搜索(默认向下查找) |
| n | 继续向下搜索 |
| N | 继续向上搜索 |
| u | 撤销上传修改行为 |
5.4 批量操作快捷键¶
| Vim快捷键 | Vim快捷键说明 |
|---|---|
| 按ctrl + v,选择操作区域,使用d批量删除 | 批量删除内容 |
| 按ctrl + v,选择操作区域,按shift + i (I),进入编辑模式,写入内容后,按Ecs键等待 | 批量修改内容 |