Vi和Vim有什么区别?


178

如果有人可以让新手知道vi和之间的区别,我将不胜感激vim。我听说Vim是它的继承者,vi但是每当我尝试vi在Ubuntu中打开它时,它都会打开vim


Answers:


169

从功能上讲vim几乎是vi的适当超集。因此,vim中的所有内容都可以在vim中使用。

Vim添加了这些功能。以下是一些扩展的vim功能:

  • Vim已被移植到比vi更广泛的操作系统。
  • Vim包括对几种流行的编程语言(C / C ++,Python,Perl,shell等)的支持(语法突出显示,代码折叠等)。
  • Vim与cscope集成。
  • Vim可用于使用网络协议(如SSH和HTTP)编辑文件。
  • Vim包括多级撤消/重做。
  • Vim允许分割屏幕以编辑多个文件。
  • Vim可以编辑压缩档案(gzip,zip,tar等)中的文件。
  • Vim包含一个用于比较文件的内置差异(vimdiff)。
  • Vim包括对插件的支持,以及对配置和启动文件的更好控制。
  • Vim可以使用vimscript或外部脚本语言(例如python,perl,shell)来编写脚本。

还有更多区别。请参考以下资源,这些资源很少能找到更多的好地方。

资料来源: Vim.OrgVikpedia上的Vim

希望能帮助到你!:)


65

“ vi”是Unix早期的文本编辑器。它变得非常流行,并进入了Single Unix Specification(SUS)和POSIX,但直到2002年才免费提供。

因此,出现了一些免费的类似vi的编辑器。Vim(改进了“ vi”)就是其中之一。顾名思义,它为原始vi界面添加了许多功能。

在Ubuntu中,Vim是默认情况下唯一安装的类似vi的编辑器,默认情况下vi实际上会启动Vim。

在Ubuntu中可用的其他流行的类似vi的编辑器是nvielvis


4
In Ubuntu Vim is the only vi-like editor installed by default-Xubuntu在这里:vim: command not found。仅vi可用。
布劳伦

7
@Blauhirn公平地说,从技术上讲,Xubuntu不是Ubuntu。
曼队长

8
@Blauhirn并且vi运行vim.tiny
muru

2
+1用于回答有关为什么vi代替打开vim的问题。这就是OP真正要问的。
MycrofD

3

vi编辑器是Linux中最受欢迎的文本编辑器。我们可以说它有一个简单的黑白屏幕,即,如果您键入任何命令,都不会突出显示代码,其中vi是VI的改进版本,它也具有与vi相同的功能,但是也具有突出显示代码的功能。

两者都有以下4种基本模式:

  1. 写模式
  2. 命令模式
  3. 视觉模式
  4. 逃生模式

3
我可以肯定地说,原始vi没有Vim的可视模式。
muru

1

两者之间确实有很大的不同。我每天都使用nvi和vim。它们都不是完美的,但是它们仍然比其他任何东西都好。

Vim拥有更多的东西。除了语法高亮显示(在对其进行支持时进行编译),它还可以自动转换字符集,行尾等。它具有多种编号方式,非常方便。Vim当然有很多话可以说。

不幸的是,vim通过混合编辑器模式并引入了大量无用和冗余的功能,破坏了vi的哲学。首先,可以确保例如在插入模式下使用光标键移动,这确实很方便,但是它也确实具有一些怪异的有害副作用(例如。变得古怪且不可预测)。

Vim(虽然肯定会得到改进,但它)也是损坏的vi和无模式编辑器的肿,怪异和不一致的混合。:P

我仍然喜欢它。您可以通过调整配置来解决大多数问题; D


11
关于“首先确保您可以在插入模式下使用光标键移动很方便”,这就是当今光标键的全部目的!我们已经不在80年代了,按下向下箭头应将光标向下移动并且不要^B在屏幕上放置一些广告字符并使它发出蜂鸣声。
PerlDuck

0

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

常见问题摘录:

  • 多级撤消
  • 选项卡,多个窗口和缓冲区
  • 灵活的插入模式(可以在插入模式下使用箭头键)
  • 巨集
  • 可视模式(可视选择文本部分)
  • 块运算符
  • 在线帮助系统
  • 命令行编辑和历史记录
  • 命令行补全(制表符补全)
  • 水平滚动(长行)
  • Unicode和国际化方面的改进。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.