javaee论坛

普通会员

225648

帖子

324

回复

338

积分

楼主
发表于 2019-11-03 06:53:33 | 查看: 857 | 回复: 2

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

2、易用性

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

3、语法加亮

        vim可以用不同的颜色来加亮你的代码。

      如下两图对比:

          vimain.c

          vimmain.c

4、可视化操作

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

5、对vi完全兼容

        可以把vim当成vi来使用。

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

二、VI模式1、命令行模式(commandmode/一般模式)

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

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

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

3、末行模式(lastlinemode/指令列命令模式)

        末行模式也称转义模式。 

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

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

三、VIM模式1、正常模式(Normal-mode)

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

2、插入模式(Insert-mode)

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

3、命令模式(Command-mode)

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

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

4、可视模式(Visual-mode)

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

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

四、VI与VIM的常用命令

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

1、模式转换

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

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

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

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

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

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

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

        输入-->正常:

          ESC

    正常-->末行:

          :(英文冒号)

        末行-->正常:

          ESC,ESC

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

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

      :q      退出;

      :q!      不保存退出;

      :w      保存;

      :w!      强行保存;

      :wq      保存退出

      :wq!      强制保存并退出

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

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:填充到当前文件所在光标的后面

 

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)分屏

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

      :ctrl+ww  //切屏

注:该特性当前有效,如果想要永久有效需修改配置文件

 


普通会员

0

帖子

286

回复

296

积分
沙发
发表于 2019-11-22 05:58:56

还是很厉害的

普通会员

0

帖子

218

回复

220

积分
板凳
发表于 2023-10-07 15:04:50

楼主听话,快到碗里来!

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017