首页 > 编程笔记

Linux Vim编辑器用法详解

Vim 是 vi improved 的缩写,从字母本身也可以看出 Vim 是改进型的 Vi 文本编辑器。Vim 是一个基于文本界面的编辑工具,使用简单且功能强大,在 Linux 系统中的编写文档需要依靠 Vim 文本编辑器来实现。

Vim 编辑器是 UNIX 系统最初的编辑器,是一种开源的 Vi 编辑器而且加入了许多扩展的特性,它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。

Vim 是一个程序开发工具,而不只是一个正文编辑器,因为 Vim 中增加了许多附加功能,例如字符串模式搜索、运行 Linux 命令或其他程序、进行多个文件的编辑等,所以许多 Linux 的程序开发人员也喜欢使用 Vim 编辑器。

Linux Vim的工作模式

Vim 的工作模式有多种,但常用的工作模式主要有命令模式、输入模式和编辑模式 3 种: 这 3 种模式可以随意切换,如图 1 所示。

Vim三种工作模式
图 1 Vim三种工作模式

1、命令模式

使用 Vim 编辑文件时,默认处于命令模式。在此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。在 CentOS7 系统中 Vim 处于命令模式的状态示意,如图 2 所示。

Vim处于命令模式
图 2 Vim处于命令模式

2、输入模式

在输入模式下,Vim 可以对文件执行写操作。使Vim进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。

各指令的具体功能如表 3 所示。

表 3 插入命令及功能
选 项 功 能
i 在当前光标所在位置插入要输入的文本,光标后的文本相应向右移动
I 在光标所在行的行首插入要输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令
o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a 在当前光标所在位置之后插入随后输入的文本
A 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行 a 命令

Vim 处于输入模式状态下的示意图如图 4 所示。

Vim处于输入模式
图 4 Vim处于输入模式

3、编辑模式

编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,Vim 窗口的左下方出现一个“:”符号,此时可以输入相关指令进行操作。Vim 进入编辑模式后的状态图,如图 5 所示。

Vim处于编辑模式
图 5 Vim处于编辑模式

Linux Vim的基本操作

1、打开文件

Vim 打开文件使用命令如下:

[root@bogon ~]# vim 文件

刚打开文件时 Vim 处于命令模式,此时文件的下方会显示文件的一些信息,包括文件的总行数、字符数以及当前光标所在的位置等,此时可以使用插入命令进入输入模式对文件进行编辑。

例如打开 test 文件:

[root@bogon ~]# vim test

此时,界面会进入 test 文件,如图 6 所示:

vim打开文件
图 6 vim打开文件

2、编辑文本

Vim 编辑文本包括查找、替换、删除与复制操作。

1) 查找文本
当文档很长时,可以通过查找功能快速定位要查找的内容,在 Vim 中通过在输入模式下输入“/”关键词,实现自上往下的查找功能。

Vim 查找目标文本的快捷键如表 7 所示。

表 7 Vim查找目标文本快捷键
快捷键 功 能
/abc 从光标所在位置向前查找字符串 abc
/^abc 查找以 abc 为行首的行
/abc$ 查找以 abc 为行尾的行
?abc 从光标所在为主向后查找字符串 abc
n 向同一方向重复上次的查找指令
N 向相反方向重复上次的查找指定

注意,要查找的字符串是严格区分大小写的;如果在字符串中出现特殊符号,则需要加上转义字符“\”;如果在文件中并没有找到所要查找的字符串,则在文件底部会出现“Pattern not found”提示。


2) 替换文本
在输入模式下,输入“:”进入命令模式完成替换命令。Vim 替换文本的快捷键如表 8 所示。

表 8 Vim替换文本快捷键
快捷键 功 能
r 替换光标所在位置的字符
R 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按 Esc 键结束
:s/a1/a2/g 将当前光标所在行中的所有 a1 用 a2 替换
:n1,n2s/a1/a2/g 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换
:g/a1/a2/g 将文件中所有的 a1 都用 a2 替换

3) 删除与复制
Vim 删除与复制快捷键如表 9 所示。

表 9 Vim删除与复制快捷键
快捷键 功 能
x 删除光标当前的字符
dd 删除光标所在的一整行
ndd 删除 n 行文本
d$ 删除光标至行尾的内容
p 将剪贴板中的内容复制到当前行之后
P 将剪贴板中的内容复制到当前行之前
yy 复制当前行

注意,被删除的内容并没有真正删除,而是都放在了剪贴板中。将光标移动到指定位置处,按下 p 键,就可以将刚才删除的内容又粘贴到此处。

3、保存和退出

Vim 的保存和退出是在编辑模式中进行的,可以通过输入特定的指令实现保存与退出功能。Vim 常用的保存与退出指令如表 10 所示。

表10 Vim常用保存与退出指令
指 令 功 能
:wq 保存并退出 Vim 编辑器
:q! 不保存且强制退出 Vim 编辑器
:w 保存但是不退出 Vim 编辑器
:w! 强制保存文本
:x 保存并退出 Vim 编辑器
:w b.txt 另存为 b.txt 文件
ZZ 直接退出 Vim 编辑器

优秀文章