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 | 退出 |
| :! | 强制 |
:wq </保存并退出/>
:q! </不保存并退出/>
移动光标
命令模式下, 移动光标的快捷键如下:
| 命令 | 功能 |
|---|---|
| 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 | 在光标所在行的上一行,粘贴复制的内容; |