Linux的vi编辑器常见命令总结

注:本文中的给定模式或者模式等词中模式所指是指的一个词语并无其他意思。例如给定模式查找定位指的是查找到给定词的定位。

三种方式的关系图

命令方式和插入方式之间可以相互转换,命令方式和ex转义方式也可以相互转换。但是插入方式和ex转义方式之间不可以相互转换。

一、进入和退出vi
1.进入vi

直接输入vi 后面加上文件名即可。例如:vi  example.c

2.退出vi(在命令模式下)

:wq    把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到 shell下。

 (其操作过程是,先键入冒号“:”,再键入命令wq。以下命令操作相同。)

:q!     强行退出vi。感叹号(! )告诉vi,无条件退出,丢弃缓冲区内容。

二、插入方式

通过输入vi的插入命令( i )、附加命令( a )、打开命令(o)、替换命令( s )、修改命令( c )或取代命令( r )可以从命令方式进入到输入方式。

由输入方式回到命令方式的办法是按下<Esc>键(通常在键盘的左上角)

三、转义方式

vi和ex编辑器功能是相同的,二者主要区别是用户界面。

在vi 中,命令通常是单个字母,例如a , x , R等。

在ex中,命令是以<Enter>键结束的正文行

为了使用ex转义方式,可输入一个冒号(:)

四、一些文本编辑和操作命令

1.插入命令(insert)

在 i 命令之后输入的内容都插在光标位置之前,光标后的文本相应向右移动。如按下Enter键,就插入新的一行或者换行。

输入 I 命令后在当前行(即光标所在行)的行首插入新增文本,行首是该行的第一个非空白字符。当输入I命令时,光标就移到行首。  

2.附加命令(add)

a  在光标之后插入,光标可在一行的任何位置。

A  在光标所在行的行尾添加文本。

3 .打开命令(open)

o    在光标所在行的下面插入一行。

O    在光标所在行的上面插入一行。

4.文本修改

1)删除字符的命令(键):

    x    删除光标所在的字符

    X    删除光标前面的那个字符

2)删除文本对象的命令(键):

    dd   删除光标所在的整行

    D    从光标位置开始删除到行尾

d<光标移动命令>  从光标位置开始删到由光标移动限定的文本对象的末尾

3)复原命令

  u   如果插入后用u命令,就删除刚插入的正文;如果删除后用它,就相当于又插入刚删除的正文。

  U   把当前行恢复成它被编辑之前的状态,不管你把光标移到该行后对它编辑了多少次。

4)重复命令

  .  重复实现刚才的插入命令或删除命令。

5)取代命令

r命令用随后打入的单个字符取代光标所在的字符

R命令用随后打入的文本取代光标位及其右面的若干字符,每打入一个字符就替代原有的一个字符。

6)替换命令

s(小写)命令用随后打入的正文替换光标所在的字符

S(大写)命令用新打入的正文替换当前行(整行)

5.编辑文件

1)编辑已存文件的最常用方式是:

    $ vi   文件名

2)从某一指定行进入vi。其格式是:  

    $ vi  +行号  文件名

3)从某一指定词进入vi。其格式是:

    $ vi  +/词   文件名

4)编辑多个文件

    可以同时调入多个文件,依次对它们进行编辑。其命令格式是:

      $ vi  文件1  文件2…

   当完成对第一个文件的编辑及存盘(用:w命令)后,输入命令:n就进入第二个文件。 

6.字符串检索

向前检索命令的格式是: /模式〈Enter〉  (命令方式下)

    系统从光标所在行开始向前查找这个模式,找到第一个相匹配的字符串后,光标就停在该模式的第一个字符上。

五、ex命令

1 命令定位

一种办法是指定行号,例如,

      : 20 <Enter>   光标移到第20行的行首。

另一种办法是给定模式,向前或向后查找

      : /this 按回车键

2.w命令

   w(写)命令可把编辑缓冲区中全部或者部分内容写到当前文件或者另外某个文件中。它有以下几种常用形式 :

w文件名——它把所做的修改写回到指定的文件,并显示所写的行数和字符数

w>>文件名——它把缓冲区内容附加到现有文件的末尾,先前文件内容并不被破坏

w!  文件名——它可跳过通常写命令对文件的检查,将缓冲区内容写到系统允许的任何文件上

w  !命令——它将指定的各行写入指定命令中

3.q命令

   q(退出)命令可从vi 中退出来。它有下述五种使用方式:

q——它的功能是退出vi

q!——它的功能是立即从vi 中退出,不保留所做的修改,也不显示任何提示信息

wq文件名——它的功能等价于执行w命令后又执行q命令

wq !文件名——它的功能是忽略执行w命令之前所做的检查

x文件名——如果该文件做过修改,并且尚未写出去,那么这个命令就把缓冲区内容写出去,然后退出vi;否则,只是退出vi。  

猜你喜欢

转载自blog.csdn.net/m0_53345417/article/details/130039319