vi与vim的区别

author author     2022-08-25     758

关键词:

Vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs 并列成为类Unix系统 用户最喜欢的编辑器。

Vim的第一个版本由Bram Moolenaar 在1991年发布。最初的简称是Vi IMitation ,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码 方式下发行的自由

首先我们看一下文本

第一个vi编辑的内容 

技术分享

第二个我们看下vim的效果


技术分享


Vim 具有6种基本模式和5种派生模式。

1.基本模式

(1)普通模式

在普通模式中,用户可以执行一般的编辑器命令,比如移动光标,删除文本等等。这也是 Vim 启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。

Vim 强大的编辑能力中很大部分是来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令 "dd" 删除当前行,但是第一个 "d" 的后面可以跟另外的移动命令来代替第二个 "d",比如用移动到下一行的 "j" 键就可以删除当前行和下一行。另外还可以指定命令重复次数,"2dd"(重复 "dd" 两次),和 "dj" 的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高 效的进行文本编辑。

在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按 "a"(append/追加)键或者 "i"(insert/插入)键。

(2)插入模式

在这个模式中,大多数按键都会向文本缓冲 中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。

在插入模式中,可以按 ESC 键回到普通模式。

(3)可视模式

这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim 的"文本对象"也能和移动命令一样用在这个模式中。

(4)选择模式

这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim 会用这个字符替换选择的高亮文本块,并且自动进入插入模式。

(5)命令行模式

在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(":" 键),搜索("/" 和 "?" 键)或者过滤命令("!" 键)。在命令执行之后,Vim 返回到命令行模式之前的模式,通常是普通模式。

(6)Ex 模式

这和命令行模式比较相似,在使用 ":visual" 命令离开 Ex 模式前,可以一次执行多条命令。

2. 派生模式

(1)操作符等待模式

这个派生模式指普通模式中,执行一个操作命令后 Vim 等待一个"动作"来完成这个命令。Vim 也支持在操作符等待模式中使用"文本对象"作为动作,包括 "aw" 一个单词(a word)、"as" 一个句子(a sentence)、"ap" 一个段落(a paragraph)等等。

比如,在普通模式下 "d2as" 删除当前和下一个句子。在可视模式下 "apU" 把当前段落所有字母大写。

(2)插入普通模式

这个模式是在插入模式下按下ctrl-o键的时候进入。这个时候暂时进入普通模式,执行完一个命令之后,Vim 返回插入模式

(3)插入可视模式

这个模式是在插入模式下按下ctrl-o键并且开始一个可视选择的时候开始。在可视区域选择取消的时候,Vim 返回插入模式。

(4)插入选择模式

通常这个模式由插入模式下鼠标拖拽或者shift方向键来进入。当选择区域取消的时候,Vim 返回插入模式。

(5) 替换模式

这是一个特殊的插入模式,在这个模式中可以做和插入模式一样的操作,但是每个输入的字符都会覆盖文本缓冲中已经存在的字符。在普通模式下按 "R" 键进入。

其他

Evim

Evim 是一个特殊的GUI 模式用来尽量的表现的和"无模式"编辑器一样。编辑器自动进入并且停留在插入模式,用户只能通过菜单、鼠标和键盘控制键来对文本进行操作。可以在命令行下输入 "evim" 或者 "vim -y" 进入。在 Windows 下,通常也可以点击桌面上 Evim 的图标。

 功能

 概要

Vim 提供了文本形式的大量文档 。并且 Vim 为了能够快速找到问题的解决方案,提供了各种各样的功能。根据 Vim 自己的帮助文件语法,关键字 会被各种各样醒目的颜色表示出来。可以用快捷键 象在浏览器 中那样浏览帮助文件。在GUI 版的Vim中还可以使用鼠标 在 帮助文件中移动。方便用户寻找问题解决方案的功能还不止这些,其中最主要的是 ‘:helpgrep‘ 命令。使用这条命令,用户可以在所有帮助文件中搜索想要察看的内容,用‘:cwindows‘可以在另一个窗口中表示搜索的结果,根据搜索的结果自动在帮 助文件内跳转。使用Vim的帮助功能,更可以在搜索的结果中,继续进行搜索。

程序开发相关功能

Vim 是程序员 为了方便的编写程序而开发的编辑器 。Vim 具有可以让写代码的工作变得轻松愉快的各种各样功能。和集成开发环境 一样,Vim 具有可以配置成在编辑代码源文件之后直接进行编译 的功能。编译 出错的情况下,可以在另一个窗口中显示出错误。根据错误信息,直接跳转到正在编辑的源文件出错位置。代码高亮,文本折叠,上下文关联补完都是对程序员 特别有帮助的功能(参考 ‘:help quickfix‘)

文件比较

可以逐行的对文本文件进行比较。Vim 可以并排显示两个版本的文件,同时以各种各样的颜色来表示有差别部分。改变过、新增的或者是被删除的行会以颜色高亮来强调,没有改变过的部分则会被自动折叠表示。

对于已经在vim中打开的两个缓冲区,分别使用:diffthis 之后将会对这两个缓冲区的内容进行比较,被比较的缓冲区可以是一个尚未存盘的内存中的缓冲区。

在比较两个文件的不同之处时,可以用:diffget和:diffput命令对每一处不同进行双向的同步,也可以在比较不同时对内容进行其它编辑,然后用:diffupdate 对最新内容重新进行比较。

在浏览两个文件的不同之处时,可以用[c和]c两个Normal模式的命令直接跳转到上一个和下一个不同之处。

可以通过diffopt 等选项更精细地控制哪些区别被认为是真正的不同之处,比如可以设置比较时忽略空白字符数量的不同。

Unix 下可以用 vimdiff 命令来使用这个功能。

 脚本语言

Vim 有她自己的脚本语言 ,使用脚本语言写成的 可以实现自动执行复杂的操作。用 -s 选项启动 Vim ,或者直接切换到 所在目录 使用 ‘:source‘ 命令都可以执行 Vim 脚本。Vim 的配置文件就可以作为 Vim 脚本的一个范例,Unix 和Linux 下配置文件名是.vimrc,Windows 下配置文件一般叫做 _vimrc。这个文件在启动 Vim 的时候被自动执行。Vim 脚本语言 可以使用 Vim 命令行 模式的所有命令 ,使用 ‘:normal‘ 命令还可以使用通常模式中的所有命令。Vim 脚本语言具有数字,字符串两种数据类型 。用数字代表布尔类型 ,0代表假,之外的数全代表真。最新的 Vim 7 更提供了列表 、关联数组 等高级数据结构 。Vim 脚本语言也拥有各种比较运算符 和算术运算符 。控制结构实现了 if分支 和 for/while 循环。用户还可以自己定义函数 ,并且可以使用超过100种的预定义函数 。编写成的脚本文件可以在调试模式中进行调试。

不足之处

 

它们都是多模式编辑器 ,不同的是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来使用。


本文出自 “啊凯” 博客,请务必保留此出处http://kaile.blog.51cto.com/12459560/1908111

vi与vim(代码片段)

Vi与Vim区别vi:linux自带的文本编辑器,相当于windows中的记事本。vim相当于window下的notepad++、Editplus,可以视作是vi的高级版本,是一种程序编辑器:可以主动地以字体颜色辨别语法的正确性、支持正则表达式的查找方式、多文本... 查看详情

关于vim编辑器的问答举例

vi与vim编辑器的区别?答:前面多次提到vi和vim但是好多和我一样的人都会想这两个的区别在哪里?早期的Unix的大多使用的是vi编辑器,可以这样理解vim编辑器是vi的升级版,那么vim应该比vi高级很多,没错vi编辑器在编辑文件时... 查看详情

vi和vim的区别

vi和vim区别:vi:visualinterfacevim:viimproved,vim它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。[[email protected]~]# whichvi/bin/vi[[email protected]~]#whichvim/usr/bin/vim模式... 查看详情

作业七

1.vi与vim有什么区别呢,它们之间有什么关系?Vim是从Vi发展出来的一个文本编辑器,可以看作是vi的升级版。Vim的主要功能与原始的Vi完全兼容,与Vi不同的是,vi不会显示颜色,而vim会根据文件内容显示不同颜色,方便阅读和编... 查看详情

vim编辑总结

...工作都无法完成。vim其实是vi的升级版那么vi与vim有什么区别?  vi不显示高亮颜色语法  vim显示高亮颜色语法。  其他功能没有什么区别。所以在linux系统下,使用vi还是vim取决个人习惯。如果在刚装完的Cent 查看详情

vi和vim的区别

它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。vim的这些优势主要体现在以下几个方面:1、多级撤消我们知道在vi里,按u只能撤消上次命令,而在vim里可以无限制... 查看详情

第七章习题答案

第七章练习题答案?1.vi与vim有什么区别呢,它们之间有什么关系?vim是从vi发展出来的一个文本编辑器,可以看作是vi的升级版。vim的主要功能与原始的vi完全兼容,与vi不同的是,vi不会显示颜色,而vim会根据文件内容显示不同颜... 查看详情

vi和vim的区别以及用法

它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。vim的这些优势主要体现在以下几个方面:1、多级撤消我们知道在vi里,按u只能撤消上次命令,而在vim里可以无限制... 查看详情

何时在 vi/vim 中使用 :abbr 与 :map

...字修复到类似脚本的单行代码。地图和缩写之间有真正的区别吗?哪个命令最 查看详情

第七章-vim文本编辑器

...为系统默认的编辑器的。你也许会有疑问,vi与vim有什么区别?可以这样简单理解,vim是vi的升级版。很多linux系统管理员都习惯用vi,那是因为他们接触linux的时候用的就是vi,vim后来才比较流行。所以,无所谓用vi和vim,只要你... 查看详情

快速提高vi/vim使用效率的原则与途径

Vi/Vim是所有Unix/Linux操作系统默认配备的编辑器。因其强大的功能和高效的操作,Vi/Vim也成为众多Unix/Linux用户、管理员必须掌握并熟练使用的编辑工具之一。尤其是在没有图形界面的情况下,更是离不开Vi/Vim。Vi/Vim命令非常多、... 查看详情

vi与vim编辑器使用

vi与vim1.介绍:  vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及linux系统的任何版本,vi编... 查看详情

vim安装与配置

LINUX操作系统VIM的安装和配置VIM的安装VI是LINUX下最老牌的编辑工具,而VIM则是VI的升级版本,LINUX系统必备啊。1.在命令行敲入“vi”后按"tab"键,可以看到目前系统中只安装了vi和vim.tiny。vim是从VI发展而来的一个文本编辑器,功... 查看详情

2018.1.34周2次课

...提到过vi命令,它是Linux中必不可少的工具。vi与vim有什么区别?其实Vim是vi 查看详情

vim文本编辑器(代码片段)

...用比较多的是vim编辑器。你也许会有疑问,vi与vim有什么区别?可以这样简单理解,vim是vi的升级版。Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。2基本... 查看详情

linux知识点05:vi与vim的使用

(一)基本介绍   Vim是一个类似于​​Vi​​的著名的功能强大、高度可定制的​​文本编辑器​​,在Vi的基础上改进和增加了很多特性.Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨... 查看详情

vi/vim基本使用方法

...基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终... 查看详情

vim编辑器

早期的Unix都是使用vi作为系统默认的编辑器。vi和vim的区别?它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。vim的这些优势主要体现在以下几个方面:1、多级撤消... 查看详情