ITPub博客

首页 > Linux操作系统 > Linux操作系统 > vi与vim的区别以及常用命令

vi与vim的区别以及常用命令

原创 Linux操作系统 作者:醋溜包菜 时间:2022-09-21 16:01:20 0 删除 编辑

最近在使用 3A 服务器 ,经常修改配置文件,但是在网上看教程的时候,发现有人使用vi ,也有人使用 vim ,但这两者到底有什么区别呢,下面为大家介绍,如果有需要服务器的,可以后台私信我

一、vi 与 vim 的区别

1 、多级撤消

在 vi编辑器 中,按u 只能撤消上次命令,而在 vim 里可以无限制的撤消。

2 、易用性

vi 编辑器只能运行于 unix 中,而 vim 不仅可以运行于 unix ,还可用于 windows 、 mac 等多操作平台。

3 、语法加亮

vim 可以用不同的颜色来加亮你的代码。
如下两图对比:

vi main.c

    


4 、可视化操作

vim 不仅可以在终端运行,也可以运行于 windows 、 mac os 、 windows 。

5 、对 vi 完全兼容

可以把vim 当成 vi 来使用。

小结:vi 和 vim 都是 Linux 中的编辑器,不同的是 vim 比较高级,可以视为 vi 的升级版本。 vi 使用于文本编辑,但是 vim 更适用于 coding 。

二、VI 模式

1 、命令行模式 ( command mode/ 一般模式)

任何时候,不管用户处于何种模式,只要按一下“ESC” 键,即可使 Vi 进入命令行模式;我们在 shell 环境(提示符为 $ )下输入启动 vi 命令,进入编辑器时,也是处于该模式下。
在该模式下,用户可以输入各种合法的vi 命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的 Vi 命令,则 vi 在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是 Vi 的合法命令, vi 会响铃报警。

2 、文本输入模式 ( input mode/ 编辑模式)

在命令模式下输入插入命令i ( insert )、附加命令 a ( append )、打开命令 o ( open )、修改命令 c ( change )、取代命令 r 或替换命令 s 都可以进入文本输入模式。在该模式下,用户输入的任何字符都被 vi 当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令行模式下,按 ”ESC” 键即可。

3 、末行模式 ( last line mode/ 指令列命令模式)

末行模式也称转义模式。

vi 和 Ex 编辑器的功能是相同的,二者主要区别是用户界面。在 vi 中,命令通常是单个键,例如 i 、 a 、 o 等;而在 Ex 中,命令是以按回车键结束的正文行。 vi 有一个专门的 “ 转义 ” 命令,可访问很多面向行的 Ex 命令。

在命令模式下,用户按“:” 键即可进入末行模式下,此时 vi 会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个 “:” 作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后, vi 自动回到命令模式。

三、VIM 模式

1 、正常模式 (Normal-mode)

启动vim 后默认处于正常模式(即命令行模式)。不论位于什么模式,按下键 ( 有时需要按两下)都会进入正常模式。

2 、插入模式 (Insert-mode)

在正常模式中按下i, a, o, I,A,O 键,会进入插入模式。现在只用记住按 i 键会进行插入模式。在插入模式中,击键时会写入相应的字符。

3 、命令模式 (Command-mode)

在正常模式中,按下: (英文冒号)键,会进入命令模式。

在命令模式中可以执行一些输入并执行一些vim 或插件提供的指令,就像在 shell 里一样。这些指令包括设置环境、文件操作、调用某个功能等等。

4 、可视模式 (Visual-mode)

在正常模式中按下v , V , +v ,可以进入可视模式。

可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。

四、VI 与 VIM 的常用命令

注:由于VI 与 VIM 在命令上几乎相同,所以这里那 VIM 为例。

1 、模式转换

正常–> 输入:以下这几个参数实现的功能都是转为输入模式,只不过转换后的光标所在的位置不同(感兴趣可以试一试,虽然意义不大!)

i :在当前光标所在字符的前面,转为输入模式;

a :在当前光标所在字符的后面,转为输入模式;

o :在当前光标所在行的下方,新建一行,并转为输入模式;

I :在当前光标所在行的行首,转为输入模式;

A :在当前光标所在行的行尾,转为输入模式;

O :在当前光标所在行的上方,新建一行,并转为输入模式;

输入 -- > 正常:

ESC

正常--> 末行 ::( 英文冒号 )

末行--> 正常:

ESC , ESC

 

注意:输入模式和末行模式之间不能直接切换。

2 、关闭文件(末行模式)

:q         退出; :q!         不保存退出; :w         保存; :w!         强行保存; :wq         保存退出 :wq!         强制保存并退出

 

注意:在正常模式下按组合键shift zz 可以保存并退出

3 、移动光标(正常模式)

1 )逐字符移动:

        h: 左;

 

        l: 右;

 

        j: 下;

 

        k: 上;

 

        #h: 移动 # 个字符

2 )以单词为单位移动

        w: 移至下一个单词的词首;

 

        e: 跳至当前或下一个单词的词尾;

 

        b: 跳至当前或前一个单词的词首;

 

        #w: 移动 # 个单词

3 )行内跳转:

        0: 绝对行首;

 

        ^: 行首的第一个非空白字符;

 

        $: 绝对行尾

4 )行间跳转

        #G :跳转至第 # 行;

 

        gg: 第一行;

 

        G :最后一行

5 )末行模式

        .: 表示当前行;

 

        $: 最后一行;

 

        # :第 # 行;

        +#: 向下的 # 行

 

 

4 、翻屏(正常模式)

Ctrl+f: 向下翻一屏;

Ctrl+b: 向上翻一屏;

Ctrl+d: 向下翻半屏;

Ctrl+u: 向上翻半屏

 

5 、复制字符

 1 )正常模式

 

         复制:

 

        yy :复制当前行

        nyy :复制当前行至下面的 n 行

 

         粘贴:

 

        p :粘贴到光标的后面

        P :粘贴到光标的前面

2 )可视模式

 

         复制:

 

        y :复制当前行

        ny :复制当前行至下面的 n 行

 

         粘贴:

        

        p :粘贴到光标的后面

        P :粘贴到光标的前面

 

 

6 、删除字符(正常模式)

x: 删除光标所在处的单个字符;

#x: 删除光标所在处及向后的共 # 个字符;

d$ 或 D: 从当前光标处删除至行尾;

d^: 从当前光标处删除之行首;

dd: 删除当前光标所在行;

#dd: 删除包括当前光标所在行在内的 # 行;

 

注:dd 相当于剪切操作,如果你 dd 之后按 p 或者 P 可以进行粘贴。

7 、替换字符

r :替换单个字符(按完 r 在按你要替换的字符即可)

 

R :替换多个字符(从你要替换的位置开始替换,直至你退出正常模式)

 

8 、撤销编辑操作: u

u :撤消前一次的编辑操作;

 

#u :直接撤消最近 # 次编辑操作;

 

温馨提示:连续u 命令可撤消此前的 n 次编辑操作;

 

9 、将另外一个文件( /path/sunhui.txt )的内容填充在当前文件夹中

  :r   /path/sunhui.txt :填充到当前文件所在光标的后面

1

10 、修改 vim 配置文件

vim   ~/.vimrc :修改当前用户的 vim 配置文件

vim    /etc/vimrc :修改所有用户的 vim 配置文件

例:在当前用户的vim 配置文件中添加显示行数的命令

vim    ~/.vimrc :在末行添加 set nu 即可

 

11 、拓展(末行模式)

1 )显示或取消显示行号

:set    nu            // 显示

:set    number    // 显示

:set    nonu        // 取消

2 )设置语法高亮

:syntax    on    // 开启

:syntax    off    // 关闭

3 )分屏

:vsp xxx.x    // 将两个文件垂直分屏

:ctrl +w w // 切屏

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70022313/viewspace-2915639/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Linux网络配置
请登录后发表评论 登录
全部评论

注册时间:2022-09-21

  • 博文量
    24
  • 访问量
    14642