您的位置:首页 > 其它

vi 和vim 的区别

2017-12-05 14:33 381 查看
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。

vim的这些优势主要体现在以下几个方面:
1、多级撤消

我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。

2、易用性

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

3、语法加亮

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

4、可视化操作

就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。

5、对vi的完全兼容

某些情况下,你可以把vim当成vi来使用。

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

vi有3个模式:插入模式、命令模式、低行模式。 

插入模式:在此模式下可以输入字符,按ESC将回到命令模式。 

命令模式:可以移动光标、删除字符等。 

低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

命令行模式 (command mode/一般模式)
  任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。 
  在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
 
文本输入模式 (input mode/编辑模式)
  在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按"ESC"键即可。 

末行模式 (last line mode/指令列命令模式)
  末行模式也称ex转义模式。 
  Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。

 

一、打开文件、保存、关闭文件(vi命令模式下使用) 

vi filename       //打开filename文件 

:w       //保存文件 

:w vpser.net //保存至vpser.net文件 

:q          //退出编辑器,如果文件已修改请使用下面的命令 

:q!        //退出编辑器,且不保存 

:wq         //退出编辑器,且保存文件 

 

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式) 

a      //在当前光标位置的右边添加文本 

i       //在当前光标位置的左边添加文本 

A     //在当前行的末尾位置添加文本 

I      //在当前行的开始处添加文本(非空字符的行首) 

O     //在当前行的上面新建一行 

o     //在当前行的下面新建一行 

R    //替换(覆盖)当前光标位置及后面的若干文本 

J    //合并光标所在行及下一行为一行(依然在命令模式) 

----------------------------------------------------------------------------------------------------------------------------------------------

vim一共有4个模式:
正常模式 (Normal-mode) 
插入模式 (Insert-mode)
命令模式 (Command-mode)
可视模式 (Visual-mode)

 
注意:方向键(上下左右那几个)可以在vim屏幕里跳来跳去。现在知道这个对
体验以下的模式有用。但是,通过方向箭来移动,是一个笨办法。。。讲到正常
模式时会说到更好的方法(我不会现在就告诉你h,j,k,l键分别对应左,下,上,右的:D)


正常模式

正常模式一般用于浏览文件,也包括一些复制、粘贴、删除等操作。这时击键时,
一般的键/键组合会被当成功能键,而不会键入对应的字符。

在这个模式下,我们可能通过键盘在文本中跳来跳去,跳动的范围从小到大是字符、

单词、行、句子、段落和屏幕。

启动vim后默认位于正常模式。不论位于什么模式,按下<Esc>键(有时需要按两下)

都会进入正常模式。



回到顶部


插入模式

在正常模式中按下i, I, a, A等键(后面系列文章会详细介绍),会进入插入模式。

现在只用记住按i键会进行插入模式。插入模式中,击键时会写入相应的字符。



 

回到顶部


命令模式

在正常模式中,按下:(冒号)键,会进入命令模式。在命令模式中可以执行

一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括

设置环境、文件操作、调用某个功能等等。



 

回到顶部


可视模式

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

操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候

会很方便。



 

根据需要灵活快速的切换各种模式非常有用。

回到顶部


配置回到正常模式的快捷键

由于不论在其他什么模式下,按一次或两次<Esc>键都可以回到正常模式,我们

可以想见,<Esc>键会经常用到。由于<Esc>键在标准qwert键盘的左上角,对

于左手小指不灵活的朋友来说,按起来比较不方便(我就是如此),因此在上一篇

中我们通过配置.vimrc把<Esc>映射成了按两下j键。

" 将ESC键映射为两次j键
inoremap jj <Esc>


j键正好在右手食指的基本键位上(一般上面还有个突起),用起来十分方便。

如果只让我保留一个vim设置的话,我会选择保留它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: