首页 理论教育 Vi编辑器工作模式与使用方法

Vi编辑器工作模式与使用方法

时间:2023-11-16 理论教育 版权反馈
【摘要】:图3.1编辑器的界面1.Vi的三种工作模式Linux/Unix下的配置文件都是文本文件,Vi常见有3种工作模式:命令模式、编辑模式、底行模式。4dd是删除4行,Vi自动将这4行的内容保存在通用缓冲区中。如果是从当前行到倒数第3行,也可以表示为.,$-2;如果指定的文件已存在,则Vi将给出“File exists”的错误信息。mount /dev/sda1 /mnt命令执行完成后,系统会提醒用户按任意键返回Vi编辑器中继续文本文件的编辑工作。

Vi编辑器工作模式与使用方法

Shell脚本能提高用户操作和管理员进行系统管理效率,一般步骤为:用编辑器编写脚本程序;Shell作为解释程序;非交互地执行脚本。

系统配置文件、Shell脚本文件等都是文本文件,编辑它们时都要使用文本编辑器。

在Linux系统中有多种文本编辑器,其中既有字符界面的(Vi、EMACAS等),也有图形界面的(如“附件”菜单下的“文本编辑器gedit”等),用户可以根据自己的喜好选择使用。

在Shell中输入vi/vim即可打开编辑器,编辑器的界面如图3.1所示。

图3.1 编辑器的界面

1.Vi的三种工作模式

Linux/Unix下的配置文件都是文本文件,Vi常见有3种工作模式:命令模式、编辑模式、底行模式。

1)命令模式

启动Vi默认进入命令模式。此时界面不能编辑,只能接受命令(键入的命令看不到)文件的保存、退出、文本的删除、复制、搜索等操作。

2)编辑模式

命令模式下用i(sert),a(ppend),o,s等均可进入该模式。按【Esc】返回命令模式。

3)底行模式

底行模式实际上也是命令模式的一种,在命令模式下输入冒号进入一个命令行,可显示地输入命令(所以也有些书中认为是两种工作模式)。

3种模式可自由切换,一般切换命令就是操作的英文单词的首字母

2.Vi的启动

启动命令:vi my.txt

如果文件存在,则Vi显示文件内容并等待用户的命令。

如果指定的文件不存在,则Vi将告知用户这是未命名的文件,并进入一个空白的界面。

启动Vi时都是默认处于命令模式。用户必须使用命令切换到文本输入模式才能进行输入编辑,或者可执行删除、复制等编辑命令。

3.Vi的退出

冒号进命令行模式下:

:q!——不存档强制退出。

:w——保存但不退出,w(rite)后可加所要存档的文档名。

:wq——存档后退出。

命令模式下输入,功能与:wq相同。

:x与:wq相同。

命令模式:

ZZ/ZQ:保存/不保存退出。

4.如何编辑

必须从命令模式转入插入模式才能进行输入编辑,可用命令有:

1)新增(append)

a:从光标所在位置后面开始新增资料;

A:从光标所在行最后面的地方开始新增资料。

2)插入(insert)

i:从光标所在位置前面开始插入资料;

I:从光标所在行的第一个非空白字元前面开始插入资料。

3)开始(open)

o:在光标所在行下方新增一列并进入输入模式;

O:在光标所在行上方新增一列并进入输入模式。

5.命令模式下的操作

1)删除

x:删除光标所在字符;

dw删除一个单词;

dd:删除光标所在的行;

u:恢复被删除的文字;

s:删除光标所在字节,并进入输入模式;

d光标键:

左:删除光标前面的字符;

右:删除光标所在的字符;

上:将当前行与上一行删除;(www.xing528.com)

下:当前行与下一行删除;

#表示数字:

#x:删除几个字符,如3x;

#dw:删除几个单词,如3dw表示删除3个单词;

#dd:删除多个行,如3dd 表示删除光标行及光标的下两行;

d$:删除光标到行尾的内容;

nd上、下光标键:

删除当前行的上、下几行文本(包括当前行)

2)文本复制、粘贴

Y:复制命令;

yy:复制整行;

yw:复制光标所在的单词;

nyw:复制包括光标所在的n个单词;

nyy:复制包括当前行在内的n行;

P:粘贴命令;

h、j、k、l:光标移动

nG:移动到底n行行首。

6.通用缓冲区和专用缓冲区

一般情况下,最近一次的抽取、删除、插入和修改的内容都将存放在通用缓冲区中。利用这些缓冲区可以非常方便地实现文本内容的剪切和粘贴。

专用缓冲区的名字采用双引号加单个字母表示,如”a,”b等。

命令模式下输入”ayy,是将当前行的内容复制到专用缓冲区a中。输入”ap,则将专用缓冲区中的内容粘贴到光标位置之后。

对单个文件的编辑,专用缓冲区没有什么优势,在对多个文件编辑时才能体现其优势:从当前文件切换到下一个文件时通用缓冲区的内容会丢失,而专用缓冲区的内容却依然存在。

4dd是删除4行,Vi自动将这4行的内容保存在通用缓冲区中。

8j表示将光标向后移动8行。

p表示从通用缓冲区中取出内容,粘贴在光标位置后面。由于dd命令以行为单位存放使通用缓冲区的内容,当取出缓冲区的内容时,Vi将它们粘贴在当前行之后。

2yy表示从当前行开始抽取两行到通用缓冲区。再将光标移动到目标行的位置后,输入p复制。

7.字符串的查找、替换

:/string:搜索指定的字符串;

按键【N】:继续进行搜索。

如果写的是斜杠(/):按【N】键会从当前位置向后查找;如果写的是问号(?),按【N】键则从当前位置向前查找。

8.查找且替换

1):%s /SEARCH /REPLACE

把文档中所有SEARCH替换成REPLACE。

2):#,# s /SEARCH /REPLACE /g

#号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE。

3):s /SEARCH /REPLACE /g

把当前光标所在行中的SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示。

9.与当前文件有关的读写操作

1):r file_name

导入文件内容添加到光标所在行后。

2):n1,n5 w file_name

将从第n1行到n5行的内容保存到文件file_name中。

如果是从当前行到倒数第3行,也可以表示为.,$-2;如果指定的文件已存在,则Vi将给出“File exists”的错误信息。

10.Vi操作中执行其他shell命令

用户在编辑文本文件过程中,可以在不退出Vi的情况下执行Shell命令,行命令模式输入:

:!命令

例如:

:!ls –l

:!mount /dev/sda1 /mnt

命令执行完成后,系统会提醒用户按任意键返回Vi编辑器中继续文本文件的编辑工作。

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

我要反馈