首页 理论教育 学会用vi编辑文件命令-实用LinuxShell编程

学会用vi编辑文件命令-实用LinuxShell编程

时间:2023-11-18 理论教育 版权反馈
【摘要】:下面简单介绍一下字符界面的编辑器vi和vim。它们是Linux的常用编辑器,很多Linux发行版都默认安装了vi和vim。如果不是产生新文件,而是修改一个已有的文件,看看如何使用vi。运行vitest.txt,打开文件test.txt,这时处在命令模式,先移动光标,找到需要修改的地方。表2-3 保存文件和退出vi的命令如果不是经常使用vi,这比较难记。图2-8 vi对文件搜索替换的总结本节介绍了vi的常用操作,但实际上,vi的操作远不止这些。图2-9 vi的三种模式

学会用vi编辑文件命令-实用LinuxShell编程

nedit、gedit、emacs和xemacs都是Linux下常用的文本编辑器。但对某一种Linux发行版而言,这几种编辑器不一定都安装了。例如,试着运行nedit test.txt就知道nedit是否已经安装。在编辑文本方面,可以认为它们相当于Windows下的记事本,但论功能,这几种编辑器远比记事本强大,这里不详细讨论它们。

上面提到的几种编辑器是图形界面的编辑器,可以方便地进行全屏编辑。下面简单介绍一下字符界面的编辑器vi和vim。它们是Linux的常用编辑器,很多Linux发行版都默认安装了vi和vim。vi和vim命令繁多,但是如果熟练掌握并使用灵活之后将会大大提高工作效率。vi是visual interface的缩写,vim是vi improved的意思,即增强版的vi。一般地,vi就够用,如果想使用代码加亮的话可以选择vim。现在,有的Linux系统的vi就是vim。接下来的内容,不讨论vi与vim的区别,只涉及它们的基本操作。

vi有3个模式:命令模式(command mode)、插入模式(insert mode)和底行模式(last line mode)。下面使用vi产生新文件test.txt,内容如下,只有两行:

978-7-111-48202-4-Chapter02-161.jpg

运行vitest.txt,进入命令模式,如图2-4所示。

978-7-111-48202-4-Chapter02-162.jpg

图2-4 vi的命令模式

这时,准备输入第一行内容,先输入“#”,发现键盘似乎不听从指挥。因为刚进入vi后,vi处在命令模式,按〈I〉键,进入插入模式,则可以输入上面两行的内容。然后按键盘左上角的〈Esc〉键,回到命令模式,再按〈:〉键,进入底行模式,输入wq,然后按回车键,即可存盘退出,如图2-5所示。

978-7-111-48202-4-Chapter02-163.jpg

图2-5 进入vi底行模式输入wq存盘退出

存盘退出后,查看一下文件的内容,可知,用vi编辑成功:

978-7-111-48202-4-Chapter02-164.jpg

有时把vi简化成两个模式,就是将底行模式也算入命令模式。保存文件和退出vi的命令见表2-3。

如果不是产生新文件,而是修改一个已有的文件,看看如何使用vi。运行vitest.txt,打开文件test.txt,这时处在命令模式,先移动光标,找到需要修改的地方。按相应的键,光标移动方向如下:

〈h〉键向左、〈j〉键向下、〈k〉键向上、〈l〉键向右;空格键向右、〈Backspace〉键向左、〈Enter〉键移动到下一行首、〈-〉键移动到上一行首。

表2-3 保存文件和退出vi的命令

978-7-111-48202-4-Chapter02-165.jpg

如果不是经常使用vi,这比较难记。如果为了快速学会移动光标,只要先记住:使用键盘的上下左右方向键即可移动光标。

移动了光标、找到了需要修改的地方之后,可以修改文件。修改,包括删除字符或者行,还包括插入字符或者行。

删除字符或行、恢复删除(在命令模式下使用)的常用操作见表2-4。

插入文本或行(在命令模式下使用)的常用操作见表2-5。在vi命令模式下,执行表中的操作后将进入插入模式,按〈Esc〉键可退出插入模式回到命令模式。

表2-4 vi常用的删除与恢复删除操作

978-7-111-48202-4-Chapter02-166.jpg(www.xing528.com)

表2-5 vi插入文本或行的操作

978-7-111-48202-4-Chapter02-167.jpg

下面修改文件test.txt,把第二行改为echo"Westudybash."。运行vi test.txt,用方向键将光标移到第二行的字符I,按6次〈x〉键,可以把Ilike删除,按〈i〉键,进入插入模式,输入Westudy,按键盘左上角的〈Esc〉键,再按一下〈:〉键,输入wq回车,存盘退出。查看一下文件的内容,可知,用vi编辑成功:

978-7-111-48202-4-Chapter02-168.jpg

用vi编辑test.txt时,在删除字符之后,可以试着按大写的〈U〉键,或者小写的〈u〉键,撤销刚才的删除。还可以试着按大写的〈O〉键,或者小写的〈o〉键,插入新行。

了解前面的内容后,就可以用命令vi创建新文件和修改老文件了。

vi还有模式匹配及查找替换功能。下面介绍一个字符串替换的例子。有一个包含两行内容的文件如下:

978-7-111-48202-4-Chapter02-169.jpg

假设要将book换为magazine。运行vi blue.txt,输入“:s/book/magazine”,按回车键,那么第一个book被改为magazine,如图2-6所示。s是substitute(替换)的意思,第一个斜杠后面是被替换的内容,第二个斜杠后面是新的内容。

978-7-111-48202-4-Chapter02-170.jpg

图2-6 用vi对文件进行内容替换操作

再输入“:wq”,存盘退出,文件的内容被修改了:

978-7-111-48202-4-Chapter02-171.jpg

可见,第一行的第二个book没有变,第二行的book也没有变。先将文件内容还原,如果希望全文的book都变为magazine的话,输入“:1,$s/book/magazine/g”,如图2-7所示,按回车键替换完成后,如图2-8所示。其中,1表示第一行,$表示最末一行,标志g是global的意思,表示对一行从头至尾全部搜索替换,而不是只替换第一个匹配。

978-7-111-48202-4-Chapter02-172.jpg

图2-7 用vi对文件的全部内容搜索替换

图2-8的底行是对本次搜索替换的总结。再输入“:wq”,存盘退出,搜索替换全部完成。

978-7-111-48202-4-Chapter02-173.jpg

图2-8 vi对文件搜索替换的总结

本节介绍了vi的常用操作,但实际上,vi的操作远不止这些。vi功能较强,如果详细地讲解它的话,可以单独写一章。学习和使用vi的时候,要弄清楚当前处在什么模式,进入相应的模式(或者先回到相应的模式),再做相应的操作。发现某操作不起作用时,要确认一下当前处在什么模式,这是vi的初学者容易忽视之处。进入vi、退出vi、三种模式如何转换等,如图2-9所示,该图可以帮助读者学习vi。

978-7-111-48202-4-Chapter02-174.jpg

图2-9 vi的三种模式

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈