今天,我决定尝试使用Vi代替Vim,我想看看它有什么不同。我一点也没有注意到任何差异,我注意到的最大的变化是,-- INSERT --
当我进入插入模式时,Vi没有说什么,而且接口之间也有一些细微的差异。
这让我想知道,Vi和Vim之间最大的区别是什么?
今天,我决定尝试使用Vi代替Vim,我想看看它有什么不同。我一点也没有注意到任何差异,我注意到的最大的变化是,-- INSERT --
当我进入插入模式时,Vi没有说什么,而且接口之间也有一些细微的差异。
这让我想知道,Vi和Vim之间最大的区别是什么?
Answers:
实际上,vim中有一个帮助命令来告诉您不同之处: :help vi_diff
在Vim的网站上,最大的是:
无限撤消
您可以执行xxxx并撤消四个删除操作。您上次键入“ jjjj”并何时发现大写锁定键是什么时候?您不小心将五行连接在一起,Vi只能撤消最后一条命令。在Vim中,您可以撤消所有四个“ J”命令并取回原始文本。
可移植性
Vi仅在Unix上可用。Vim可在MS-Windows,Macintosh,Amiga,OS / 2,VMS,QNX和其他系统上运行。以及每个Unix系统上。
语法高亮
可以对Vim进行编程,以根据正在编辑的文件类型,以不同的颜色或样式突出显示缓冲区的各个部分。Vim捆绑了数百种语法突出显示规则集。
图形用户界面
Vim在控制台上运行良好,但可以在许多GUI中本地运行,包括X Windows,Mac OS和Microsoft Windows。它使用本机GUI小部件进行滚动,划分缓冲区和菜单。它还可以与剪贴板对话。
Vim具有许多Vi所没有的功能,甚至不是明显的“高级”功能。
实际上,这意味着如果您习惯使用Vi,开始使用Vim(或其他一些Vi克隆)可能会遇到很少的差异,但是如果您习惯使用Vim 并且 “反射”包含以下功能,例如可视模式突出显示,以“ g”或“ z”开头的任何键操作,以“ i”或“ a”开头的任何文本操作(例如,“ daw”以删除光标下的单词),并在插入模式下使用箭头键进行导航等等,您会发现这些在Vi中不起作用。
还有一个问题是,当您说“尝试Vi”时,您到底使用了什么。在许多系统上,“ vi”实际上以某种模式运行Vim,其中某些差异适用(如您所见,默认为showmode,箭头键在插入模式下不起作用),而其他差异(可视模式和g / z键有效) ),并且某些功能取决于编译时选项,该选项有时在用于此目的的“微型Vim”中被禁用(文本对象,例如“ aw”一词是其中之一)。如果您运行的是真正的 Vi,或者“ vi”是其他一些克隆,但功能不如Vim,或者功能不如Vim,例如nvi或VILE,则不会获得这些信息。
而且,在晦涩的一面,尽管“ Vi模式下的微小Vim”显然没有完整Vim所没有的任何功能,但真正的原始Vim却缺少Vim的一些功能。这些记录在中:help vi-differences
。
大多数比较为vim提供的功能比为vi提供的功能更多,但是有一个例外。vi中有“开放”模式,而vim确实没有此模式。
开放模式是一种单行模式,该模式在白天用于没有电子显示屏的终端,例如电传打字机,活版印刷机等,也用于光标仅停留在底部的显示屏。
我知道那里有文档说vim模拟了开放模式,但是我的经验是没有,因为我亲眼见过它与vi一起使用,而且我从未见过vim这样做。看来vim仅使用open
命令即可在可视模式下打开和编辑文件。我确实相信vim的官方文档指出它不支持开放模式。
^R
,但没有其他帮助。:open some/file
返回open: No such command from open/visual
。
Q
进入ex模式,然后open
。z
在打开模式下显示当前行的上下文。Q
然后退出vi
。
我认为进行比较非常困难,因为随着时间的推移vi发生了变化。
当我上大学时,我在使用System V连接到大型机的哑终端(以及Mac的终端仿真器)上使用了普通香草vi。您甚至找不到更多。
但是我什至不确定那是真的vi。大约在那个时候,有很多克隆和端口,因为当时vi不是开源的。当供应商进行克隆时,他们添加了vi中没有的功能。历史令人费解。您可以在Wikipedia和其他地方阅读它。
所以,如果你没有使用某些厂商/硬件,你不使用vi的事,但像六。
但是我确实记得vi(或我正在使用的克隆)的界面非常简约(没有颜色,没有INSERT标签,没有多个撤消等),但实际上可以完成的功能却很强大。很实用。
Vim常见问题解答具有格式正确的列表:https : //vimhelp.org/vim_faq.txt.html#faq-1.4
常见问题摘录: