![Linux 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/734/32463734/b_32463734.jpg)
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=1739365153-uRw9d3BReB5tyPiiNyRVc4xPpn04FOBk-0-9432becabcca49bc643b469bb0512dac)
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=1739365153-twVTMaza97ea0zmVCoo1trgHaixTsmET-0-56ceb4331fc60ce08e5051226d83340d)
Vim的工作模式有多种,但常用的工作模式主要有命令模式、输入模式和编辑模式3种。命令模式可以通过输入特定的指令实现该功能;输入模式可以实现基本的光标移动和快捷键操作;编辑模式可以实现文本的编辑功能。这3种模式可以随意切换,如图4-28所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P90_6347.jpg?sign=1739365153-rkwWEQLh5ZVSev7zU3FsvHypGdSuVkix-0-27c3ac6346cf3d59c2a1100a16cbbccc)
图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=1739365153-iQoeV5V6Jx1MpkdGvI5ydQA3USGnJIvN-0-3b157551b12a751a93e0059a6dab1bd4)
图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=1739365153-PGZBiWH0iJ0OpV1slMjiWmkA0d3hI02d-0-16c45fcc568788d3ff8cd3d1c2334e69)
Vim处于输入模式状态下的示意图如图4-30所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P91_6465.jpg?sign=1739365153-h6Jj6eHcvPyf4a9ZaKsuv28Bxk05M2nX-0-d57ab0a416a72b54f43b3c758d0fc135)
图4-30 Vim处于输入模式
3.编辑模式
编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。使Vim切换到编辑模式的方法是在命令模式状态下按“:”键,Vim窗口的左下方出现一个“:”符号,此时可以输入相关指令进行操作。Vim进入编辑模式后的状态图,如图4-31所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P91_6492.jpg?sign=1739365153-6B76PYanFjyYVJQriqv1a8UX1EyLl73h-0-35835dd9f7b4781309f5d663f8e65d14)
图4-31 Vim处于编辑模式
4.6.3 Vim的基本操作
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P92_6605.jpg?sign=1739365153-a9RiuEnQwmoqCvurAvIS3TqgU1VF14gq-0-da9f3a3b9179e5dff599f457606ea15a)
1.打开文件
Vim打开文件使用命令如下:
[abcd@localhost ~]$ vim 文件
刚打开文件时Vim处于命令模式,此时文件的下方会显示文件的一些信息,包括文件的总行数、字符数以及当前光标所在的位置等,此时可以使用插入命令进入输入模式对文件进行编辑。例如打开dog文件,如图4-32所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P92_6532.jpg?sign=1739365153-InnYiV01osZx3gSjOZ8KDBeIZETWieH2-0-cd8edc588a30034ea92305b624e4fda0)
图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=1739365153-3vT61d3mn8UVM9FI0lhiSfe6rru0NG2N-0-77f4244cbacddb62130d94ac8c714e4e)
注意:要查找的字符串是严格区分大小写的;如果在字符串中出现特殊符号,则需要加上转义字符“\”;如果在文件中并没有找到所要查找的字符串,则在文件底部会出现“Pattern not found”提示。
(2)替换文本。在输入模式下,输入“:”进入命令模式完成替换命令。Vim替换文本的快捷键如表4-32所示。
表4-32 Vim替换文本快捷键
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T93_29133.jpg?sign=1739365153-7X0hMGKY37ZEb5GXOU409eNtILcoVfl8-0-2477896805e12b6ff2833489a752d0f7)
(3)删除与复制。Vim删除与复制快捷键如表4-33所示。
表4-33 Vim删除与复制快捷键
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T93_29134.jpg?sign=1739365153-vEvY0jhfE3vXLERS66pCSTyipqerqR0J-0-e9ab9fb28b6a49d1b8ea38c4e0d383a0)
注意:被删除的内容并没有真正删除,而是都放在了剪贴板中。将光标移动到指定位置处,按下p键,就可以将刚才删除的内容又粘贴到此处。
3.保存和退出
Vim的保存和退出是在编辑模式中进行的,可以通过输入特定的指令实现保存与退出功能。Vim常用的保存与退出指令如表4-34所示。
表4-34 Vim常用保存与退出指令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T93_29132.jpg?sign=1739365153-FnFoX9U9jvrOfezHvjcty7QKuwpdDnZr-0-0755dd00fef86e00762b575e080747bb)