- Linux 从入门到项目实践(超值版)
- 聚慕课教育研发中心
- 1365字
- 2021-03-25 21:08:45
4.6 文本编辑工具Vim
Vim编辑器是由vi发展演变而来的文本编辑器,它是一个基于文本界面的编辑工具,使用简单且功能强大。在Linux系统中的编写文档需要依靠Vim文本编辑器来实现。
4.6.1 Vim编辑器简介
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P89_6332.jpg?sign=1738954517-oPuqjnxXh6CluQaR4gMNWtEvSO00F0dg-0-305264aeecbbf9efe9259076b15bef8c)
Vim是vi improved的缩写,从字母本身也可以看出Vim是改进型的vi。Vim编辑器是UNIX系统最初的编辑器,是一种开源的vi编辑器而且加入了许多扩展的特性,它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。
Vim是一个程序开发工具,而不只是一个正文编辑器,因为Vim中增加了许多附加功能,例如字符串模式搜索、运行Linux命令或其他程序、进行多个文件的编辑等,所以许多Linux的程序开发人员也喜欢使用Vim编辑器。
4.6.2 Vim工作模式
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P89_6338.jpg?sign=1738954517-xsnD2xbp1ClmvYK7P9qJSsXY1nv7b7hw-0-2023cf57cc3e5cdf4bef5f09950fe0eb)
Vim的工作模式有多种,但常用的工作模式主要有命令模式、输入模式和编辑模式3种。命令模式可以通过输入特定的指令实现该功能;输入模式可以实现基本的光标移动和快捷键操作;编辑模式可以实现文本的编辑功能。这3种模式可以随意切换,如图4-28所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P90_6347.jpg?sign=1738954517-WniZAZi810t0XlrDdyyAV8YoZ4HqcwK3-0-6f24ac32b727676c98be50b4577f9b9f)
图4-28 Vim三种工作模式
1.命令模式
使用Vim编辑文件时,默认处于命令模式。在此模式下,可使用方向键(上、下、左、右键)或k、j、h、i移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。在CentOS7系统中Vim处于命令模式的状态示意,如图4-29所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P90_6361.jpg?sign=1738954517-AIPYmKKwTveeZhtqTF8iBk0IS3mzL7Za-0-3af81de9917da56978ed7e297e708127)
图4-29 Vim处于命令模式
2.输入模式
在输入模式下,Vim可以对文件执行写操作。使Vim进行输入模式的方式是在命令模式状态下输入i、I、a、A、o、O等插入命令,当编辑文件完成后按Esc键即可返回命令模式。
各指令的具体功能如表4-30所示。
表4-30 插入命令及功能
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T90_29124.jpg?sign=1738954517-1G5YcjTU2tD5XU3JIZ3hknmEvII5R4Tv-0-4d141dc5cb65d14ad7ffeeeb0381b6d5)
Vim处于输入模式状态下的示意图如图4-30所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P91_6465.jpg?sign=1738954517-k7UPJOP5gbe9PwCDuDwZLD0TrhGBhElR-0-eb67b6fc1960d1ee50e0ec175465c91e)
图4-30 Vim处于输入模式
3.编辑模式
编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。使Vim切换到编辑模式的方法是在命令模式状态下按“:”键,Vim窗口的左下方出现一个“:”符号,此时可以输入相关指令进行操作。Vim进入编辑模式后的状态图,如图4-31所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P91_6492.jpg?sign=1738954517-McCS6oDVbZEvlcJt3smdKW4mapm8KaVP-0-c4e1fabe79fe988708ceb425e4ed8c1e)
图4-31 Vim处于编辑模式
4.6.3 Vim的基本操作
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P92_6605.jpg?sign=1738954517-gkWxEvYBz2xp0WQ8nSNhV5hV2Z7sBqku-0-57866a18328fd5b2639e1072bd127e98)
1.打开文件
Vim打开文件使用命令如下:
[abcd@localhost ~]$ vim 文件
刚打开文件时Vim处于命令模式,此时文件的下方会显示文件的一些信息,包括文件的总行数、字符数以及当前光标所在的位置等,此时可以使用插入命令进入输入模式对文件进行编辑。例如打开dog文件,如图4-32所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P92_6532.jpg?sign=1738954517-XF7RSMK8UqPCkRilplZKfKhBRNTiQvH4-0-8271dde881a2eeba69597d09d521c60d)
图4-32 打开dog文件
2.编辑文本
Vim编辑文本包括查找、替换、删除与复制操作。
(1)查找文本。当文档很长时,可以通过查找功能快速定位要查找的内容,在Vim中通过在输入模式下输入“/”关键词,实现自上往下的查找功能。Vim查找目标文本的快捷键如表4-31所示。
表4-31 Vim查找目标文本快捷键
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T92_29127.jpg?sign=1738954517-6b7iS9DvK3HbL3o2CsXIowsEPfHE8tcJ-0-52e55e17be6c2e3580ab09d5142dba35)
注意:要查找的字符串是严格区分大小写的;如果在字符串中出现特殊符号,则需要加上转义字符“\”;如果在文件中并没有找到所要查找的字符串,则在文件底部会出现“Pattern not found”提示。
(2)替换文本。在输入模式下,输入“:”进入命令模式完成替换命令。Vim替换文本的快捷键如表4-32所示。
表4-32 Vim替换文本快捷键
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T93_29133.jpg?sign=1738954517-98O4U4lZnIPLdTxEL8RYSHd5w85UuEK3-0-8b825a2e91e9c3ff348c90ab7bfb83d6)
(3)删除与复制。Vim删除与复制快捷键如表4-33所示。
表4-33 Vim删除与复制快捷键
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T93_29134.jpg?sign=1738954517-RtenkJ40dBTPPRx25wWvSsqO8nHNUmEr-0-5177f7a5354455432a70d2423f2faaab)
注意:被删除的内容并没有真正删除,而是都放在了剪贴板中。将光标移动到指定位置处,按下p键,就可以将刚才删除的内容又粘贴到此处。
3.保存和退出
Vim的保存和退出是在编辑模式中进行的,可以通过输入特定的指令实现保存与退出功能。Vim常用的保存与退出指令如表4-34所示。
表4-34 Vim常用保存与退出指令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T93_29132.jpg?sign=1738954517-8Re3nHgSlp5eC4kLPmgLTDjFoPObmBva-0-0523b4d741f9c49dbf4285dcfef7c4fb)