Linux常用命令(三)使用vi编辑器

时间:2021-10-14 17:01:26

 Linux常用命令(三)使用vi编辑器


1vi编辑器的工作模式


 ■  命令模式:启动vi编辑器后默认进入命令模式。该模式中主要完成光标移动、字符串查找,以及删                           除、复制、粘贴文件内容等相关操作


 ■  输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或者添加新的内                           容。处于输入模式时,vi编辑器的最后一行会出现

                    “―INSERT--”的状态提示信息。


 ■  末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换                       等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符。

 

        切换三种模式:从命令模式输入冒号“:”可以进入末行模式,按“ESC”键则退回到命令模式。从命令模式按aio键可以进入输入模式。按“ESC”键退回到命令模式。


2、命令模式中的基本操作


1)、模式切换

  a   在当前光标位置之后插入内容

  A   在光标所在行的末尾(行尾)插入内容

  i   在当前光标位置之前插入内容

  I   在光标所在行的开头(行首)插入内容

  o   在光标所在行的后面插入一个新行

  O   在光标所在行的前边插入一个新行


2)、移动光标

 ■  光标的方向移动:直接使用键盘中的四个方向键“↑、↓、←、→”移动。


 ■  翻页移动:

  使用Page  Down键或Ctrl+F组合键向下翻动一整页内容

  使用Page Up键或Ctrl+B组合键向上翻动一整页内容

  其中 Page Down键和Page Up键同样适用于vi的输入模式


 ■  行内的快速跳转。

     Home键或^键、数字0键,将光标跳转到行首。

     End键或$键将光标跳转到行尾。

     同样Home键和End键也适用于vi的输入模式


 ■  行间的快速跳转

     使用按键命令1G或者gg可跳转到文件的第1

     使用按键命令G可跳转到文件的最后一行。

     使用按键命令#G可跳转到文件中的第#行(其中“#”号具体数字替换)


        切换到末行模式并执行“:set  nu”命令可以显示行号,执行“:set  nonu”命令可以取消显示行号。

:set nu
:set nonu


3)、复制、粘贴和删除


 ■  删除操作

        使用x键或Del键删除光标处的单个字符

        使用按键命令dd删除当前光标所在行,使用#dd的形式删除从光标处开始的#行内容(其                           中“#号用具体数字替换)。

        使用按键命令d^删除当前光标之前到行首的所有字符

        使用按键命令d$删除当前光标处到行尾的所有字符


 ■  复制:使用按键命令yy复制当前行整行的内容到剪贴板,使用#yy复制从光标处开始的#行内容(其                    中“#号用具体数字替换)。复制的内容需要粘贴后才能使用。


 ■  粘贴:前一次被删除或复制的内容将会被保存在剪切板缓冲器中,按p键即可将缓冲区中的内容粘                     贴到光标位置之后,按P键则会粘贴到光标位置之前


4)、查找文件内容

        在命令模式中按/键后可以输入指定的字符串,从当前光标处开始向后进行查找(如果按?键则向前查找)。完成查找后可以按nN键在不同的查找对象中进行选择。例如查找bin,输入“/bin”按Enter键之后将查找出文件中的“bin”字符,并提高亮度显示,按n向下查找,按N向上查找。

:/bin


5)、撤销编辑及保存退出

        u键撤销一次操作,U键用于取消对当前所做的所有编辑。

        在命令行模式中按ZZ可以保存退出。


3、末行模式中的基本操作


1)、保存文件及退出vi编辑器

 ■  保存文件。对文件内容进行修改后并确认以后,执行“:w”命令进行保存

:w


 ■  如果需要另存为的话需要制定新的文件名,必要时还可以指定文件路径。例如:

:w  /root/houfile


 ■  退出编辑器。可以执行“:q”命令。若文件内容已经修改却没有保存,仅用“:q”命令将无法成         功退出,这时需要使用“:q!”命令强行退出(不保存,退出)

:q!


 ■  保存并退出。“:wq“或“:x”,与在命令行模式中使用ZZ命令效果一样。

:wq


2)、打开新文件或读入其他文件内容

 

  打开新文件进行编辑。执行“:文件名字”形式的命令即可编辑新文件。例如:

:e  ~/install.log

        直接打开当前用户的宿主目录中的install.log文件进行编辑。

 ■  在当前文件中读入其他文件的内容。执行“:文件名字”形式的末行命令可以读入其他文件中         的内容,并将其复制到当前光标所在的位置。

    例如:

:r  /etc/passwd

  把/etc/passwd 文件中的内容复制到当前文件中来。


3)、替换文件内容

末行命令格式如下:

:  [替换的范围]  sub/旧的内容/新的内容[/g]


        sub可以简写为s。替换范围是可选部分,默认时只对当前行内容进行替换,一般可以表示为以下两种形式。

  %:在整个文件内容中进行查找并替换。

  nm:在指定行数范围内的文件内容中进行查找并替换。

  最末尾的“/g”部分也是可选内容,表示对替换范围内每一行的所有匹配结果都进行替换,省                略“/g”时将只替换每行中的第一个匹配结果。

    例如,替换5~10行中的bin替换为abc

:5,10   s/bin/abc/g


    再举例替换文件中所有的a替换为b

:%  s/a/b/g


本文出自 “侯良金” 博客,请务必保留此出处http://houliangjin.blog.51cto.com/13112910/1962928