今天,我决定尝试用vi代替Vim。我想看看它有什么不同。

我根本没有注意到很多差异。我注意到的最大的事情是,当我进入插入模式时,vi没说-- INSERT --,并且界面上有一些细微的差别。

这让我想知道,vi和Vim之间的最大区别是什么? ?

评论

您显然没有使用vim的许多高级功能。块选择,在光标下搜索单词,在光标下递增编号,语法突出显示等。

相关文章-Vi和Vim有什么区别?

有一些明显的优点,例如扩展的密钥支持。箭头键与hjkl相反。

#1 楼

实际上Vim中有一个帮助命令来告诉您这些区别::help vi_diff(请注意下划线::help vi_diff
从Vim的站点来看,最大的是:

无限的撤消
您可以执行xxxx并撤消四个删除操作。您上次输入“ jjjj”的时间是什么时候,然后发现大写锁定键已打开?您
意外地将五行连接在一起,Vi只能撤消最后一个
命令。在Vim中,您可以撤消所有四个“ J”命令,并返回您的
原始文本。
可移植性
Vi仅在Unix上可用。 Vim可在MS-Windows,Macintosh,Amiga,OS / 2,VMS,QNX和其他系统上运行。甚至在每个Unix
系统上。
语法高亮显示
Vim可以根据要编辑的文件类型,以不同的颜色或样式来高亮显示缓冲区的各个部分。 Vim捆绑了数百种语法突出显示规则集。
GUI
Vim在控制台上运行良好,但可以在许多GUI中本地运行,
包括X Windows,Mac OS和Microsoft Windows。它使用本机GUI
小部件进行滚动,划分缓冲区和菜单。它还可以与剪贴板通话。


评论


常见问题中还提到了其他一些区别

–克里斯蒂安·布拉班特(Christian Brabandt)
15年11月18日在13:12

根据自述文件,其中一些操作系统不再受支持。

–罗夫
16年7月5日在8:48

#2 楼

Vim具有许多Vi所没有的功能,甚至是那些显然不是“高级”功能的功能。

实际上,这意味着如果您习惯了Vi,那么如果您习惯了Vi,就不会有什么不同开始使用Vim(或其他一些Vi克隆),但是如果您习惯了Vim,并且如果您的“反射”包括视觉模式突出显示,以“ g”或“ z”开头的任何键动作,带有“ i”或“ a” [例如“ daw”删除光标下的单词],在插入模式下使用箭头键进行导航,等等,您会发现这些功能在Vi中不起作用。

还有一个问题是您到底要做什么?当您说自己“尝试使用Vi”时正在使用。在许多系统上,“ vi”实际上以某种模式运行Vim,其中某些差异适用(如您所见,默认为showmode,箭头键在插入模式下不起作用),而其他差异(可视模式和g / z键有效) ),并且某些功能取决于编译时选项,该选项有时在用于此目的的“微型Vim”中被禁用(文本对象,例如“ aw”一词是其中之一)。如果您运行的是真正的Vi,或者“ vi”是某些其他克隆,但功能比Vim少或不同,例如nvi或VILE,您将不会得到这些。

而且,晦涩难懂的一面,尽管“ Vi模式下的微小Vim”显然没有完整Vim所没有的任何功能,但真正的原始Vim却缺少Vim的一些功能。这些已记录在:help vi-differences中。

评论


我敢打赌,OP实际上有一个“微小的vim” vi。

–凯文
15年11月18日在22:15

您说在许多系统上,vi命令实际上运行vim。那么,如何确定我是在实际运行vi还是vim?

–firstpostcommenter
20年7月9日在20:46

@firstpostcommenter好吧,它基本上仍然看起来像vim一样-屏幕左侧的〜将变为蓝色,并且如果您单独启动它而不指定a的话,版本声明文本可能仍会出现在屏幕中央。文件。如果您非常关心运行的编辑器,那么可能还会安装其他vi克隆,而真正的“ vi”在linux / bsd发行版中很少见。

–Random832
20年7月10日在4:13

#3 楼

大多数比较为Vim提供的功能要比给vi提供的功能更多,但是有一个例外。 vi中有一个“开放”模式,而Vim确实没有这种模式。

开放模式是一种单行模式,该模式在过去用于没有终端的终端电子显示屏,例如电传打字机,凸版印刷机等,以及带有光标仅停留在底部的显示屏。

我知道那里有说明Vim模拟打开模式的文档,但是我的经验是的,不是。因为我亲眼见过它与vi一起使用,而我从未见过Vim这样做。看来Vim仅使用open命令只是在可视模式下打开和编辑文件。我确实相信Vim的官方文档指出它不支持开放模式。

评论


我安装了ex-vi.sourceforge.net,它是原始Vi的端口。如何启动此打开模式?手册页在谈论^ R时提到了它,但没有其他帮助。 :open some / file返回open:open / visual中没有这样的命令。

–muru
16年4月4日在15:46

@muru Q进入ex模式,然后打开。 z处于打开模式时显示当前行的上下文。要退出,先按Q再按vi。

– Antony
16年6月21日3:00



#4 楼

Vim常见问题解答具有格式正确的列表:
https://vimhelp.org/vim_faq.txt.html#faq-1.4

FAQ摘录:


多级撤消
选项卡,多个窗口和缓冲区
灵活的插入模式(可以在插入模式下使用箭头键)

可视模式(可视地选择部分)的文本)
块运算符
在线帮助系统
命令行编辑和历史记录
命令行完成(制表符完成)
水平滚动(长行)
> Unicode和国际化方面的改进。


#5 楼

我认为很难进行比较,因为vi随时间发生了变化。

当我上大学时,我在笨拙的终端(以及Mac上的终端仿真器)上使用了普通香草vi,该系统使用System V连接到大型机。您甚至找不到

但是我什至不确定那是真的vi。大约在那个时候,有很多克隆和端口,因为当时vi不是开源的。当供应商进行克隆时,他们添加了vi中没有的功能。历史令人费解。您可以在Wikipedia和其他地方阅读它。

因此,如果您未使用某些供应商/硬件,则说明您不是在使用vi,而是使用vi。我确实记得vi(或我正在使用的克隆)的界面非常简约(没有颜色,没有INSERT标签,没有多个撤销等),但实际上可以实现的功能很强大。很实用。