Linux系统中经典的两个文档编辑器就是vi和vim了。vim是vi的升级版,两个文件编辑器基础功能和操作一致,在只有vi编辑器的时候,本文中的所有操作均适用。本文以vim为例。
vim对比vi升级了什么?
- 支持更多 Linux 发行版。
- 支持多种编程语言,包括 python、c++、perl 等,并支持代码块折叠和语法高亮。
- 支持通过多种网络协议,如:http、ssh等编辑文件。
- 支持编辑压缩包中的文件。
- 支持分屏编辑多文件。
如何启动?
命令格式:vim 文件名
- 当“文件名”已存在时,为:打开该文件。
- 当“文件名”不存在时,为:以该文件名创建文件,并打开该文件。
当仅输入vim并回车时,打开如下说明界面:
打开test.sh文件时的界面如下:
vim的三种模式:
命令模式: 打开或新建文件后的默认模式,可以通过使用快捷键(以下详述),执行:复制、剪切、粘贴,以及查找和替换等任务。
编辑模式: 在命令模式,通过指定的快捷键(以下详述)进入对应的编辑状态,可以正常输入字符,移动光标,键入内容等。通过按下Esc键可以返回到命令模式。
末行模式: 即仅在最底部的一行进行各种操作。在命令模式,通过键入“:”进入。该模式下可以执行:保存文件、关闭文件、退出vim、运行命令等操作。通过按下Esc键可以返回到命令模式。
以上三种模式可以根据需要进行切换。
如何退出?
在末行模式输入对应命令,可以正常退出vim。命令如下:
命令 | 功能 |
---|---|
:w | 保存 |
:q | 退出 |
:! | 强制 |
:q! | 不保存并强制退出 |
:wq | 保存并退出 |
移动光标
命令模式下, 移动光标的快捷键如下:
命令 | 功能 |
---|---|
h | 向左移一个字母;7h,向左7个字母。 |
j | 向下一行;3j,向下3行。 |
k | 向上一行;5k,向上5行。 |
l | 向右移一个字母;4l,向右4个字母。 |
数字0 | 光标移到行首 |
$ | 光标移到行尾 |
G | 光标移到文件的最后一行;99G,光标移到99行。 |
{ | 光标移到上一段 |
} | 光标移到下一段 |
编辑模式下, 仅可以通过方向键移动光标。
进入编辑模式
在命令模式,按下以下快捷键,可以进入编辑模式,并执行对应功能。
命令 | 功能 |
---|---|
i | 在光标位置插入内容 |
I(大写i) | 在光标所在行行首插入内容 |
a | 在光标之后插入内容 |
A | 在光标所在行末尾插入内容 |
o(小写) | 在光标所在行之下插入一行 |
O(大写) | 在光标所在行之上插入一行 |
删除操作
命令 | 功能 |
---|---|
dd | 删除光标所在的整行内容;2dd, 可以删除从光标所在行开始的两行 |
d$ | 删除从光标所在位置,到行尾的所有内容 |
d^ | 删除从光标所在位置,到行首的所有内容 |
dw | 删除从光标所在位置开始,向后的一个单词。 |
复制和粘贴
命令 | 功能 |
---|---|
yy | 复制光标所在行;5yy,以光标所在行开始为第一行,向下复制5行。 |
p | 在光标所在行的下一行,粘贴复制的内容; |
P | 在光标所在行的上一行,粘贴复制的内容; |