7.1 vi/vim:纯文本编辑器
Windows下最基本的文本编辑器就是记事本,当然,还有一些功能强大的文本编辑器,例如notepad++、emeditor等,如果与Linux系统相比较,那么你会发现Windows下的记事本对应的就是Linux里的vi命令,而notepad++、emeditor这样的编辑器对应则是vim命令,因此,掌握vi/vim命令是学好Linux的重要的必修课之一,因为这两个命令是管理Linux必不可少的工具。
7.1.1 命令详解
【命令星级】 ★★★★★
【功能说明】
vi是Linux命令行界面下的重要文字编辑器。vim是vi命令的增强版,例如,高亮显示代码、自动缩进等。vim与vi编辑器是兼容的,建议读者多用vim编辑器替代vi编辑器。
【用法格式】
vim [option] [file]
vim [选项] [文件]
【vim的三种模式】
vim分为三种模式:普通模式、编辑模式、命令模式,其作用分别如下。
(1)普通模式
用vim命令打开一个文件后,默认的状态就是普通模式。在这个模式中,不能进行编辑输入操作,但可以按“上下左右”键来移动光标,同时还可以执行一些操作命令进行如删除、复制、粘贴等工作。
(2)编辑模式
在普通模式下不能进行编辑输入操作,只有按下“i,I,o,O,a,A,r,R,s,S”(其中“i”最为常用)等字母进入编辑模式后才可以执行录入文字等编辑操作。确定文件是否处于编辑模式状态有一个重要的特征,那就是在窗口的左下角要有插入的标记“--INSERT--”或“--插入--”,如图7-1所示。
图7-1 vim编辑模式
(3)命令模式
在普通模式下,输入“:”或“/”或“?”时,光标会自动定位在那一行,在这个模式中,可以执行保存、退出、搜索、替换、显示行号等相关操作。
图7-2所示的是vim的三种模式转换示意图。
图7-2 vim的三种模式转换示意图
【选项说明】
表7-1针对vi/vim命令的参数选项进行了说明。
表7-1 vi/vim命令的参数选项及说明
7.1.2 使用范例
范例7-1:进入普通模式。
[root@oldboy ~]# vim oldboy_new.txt
输入“vim文件名”即可直接进入vim窗口。如图7-3所示,左下角会显示这个文件的当前状态。如果是新文件,则会显示[New File],如"oldboy_new.txt"[New File]。
图7-3 vim编辑新文件窗口底部
如果是已存在的文件,则会显示当前文件名、行数、字符数等,如图7-4所示。
[root@oldboy ~]# vim /etc/services
图7-4 vim编辑已有文件窗口底部
范例7-2:进入编辑模式。
在普通模式下,按下i键就可以进入编辑模式,此时可输入任意文本内容。当然还有很多字母也可以实现同样的功能,如“I,o,O,a,A,r,R,s,S”,从图7-5中可以看到,其左下角有个“--INSERT--”,表示可以编辑内容了。
图7-5 vim编辑模式窗口
范例7-3:按[Esc]键切回到普通模式。
编辑完内容后,可按[Esc]键退出编辑模式,进入普通模式,此时,细心的读者可以从图7-6中注意到窗口左下角的“--INSERT--”消失了。
图7-6 vim从编辑模式返回普通模式窗口
范例7-4:使用命令模式保存文件内容,退出vim编辑器。
切回到普通模式后,此时就可以使用命令模式保存文件内容了,如图7-7所示,输入“:wq”(保存退出)或“:wq!”(强制保存退出)后敲下回车键即可保存退出。
图7-7 vim命令模式保存文件窗口底部
7.1.3 通过vim命令打开文件的方法小结
以下列举几种通过vim命令打开文件的方法。
·vim file:打开/新建文件,光标置于第1行行首,file为任意文件名。
·vim file+n:打开文件,光标置于第n行行首,n为自然数。
·vim file+:打开文件,光标置于最后1行行首。
·vim file+/pattern:将光标置于与pattern匹配的第一个字符串处,pattern为任意字符串。
有关vi/vim的命令深入知识(含vim配置及编程开发配置)讲解,可以参考《跟老男孩学Linux运维:Shell编程实战》一书的第16章。