在Ubuntu中,不同的vim软件包有哪些区别?

关于vim-gtkvim-gnome之间的区别已经在这里讨论过。

Ubuntu通常提供比这两个选项更多的vim版本,例如:

  • vim-nox
  • vim-athena
  • vim-*

目前还不清楚每个vim软件包所依赖的内容以及哪个版本在某个系统上更好用。我将我的vim配置文件(~/.vim文件夹)保存在GitHub上,并在需要工作的任何系统上进行克隆。它们可以与vim-gnome一起使用,但是否能与这些发行版中的任何一个一起使用呢?

我们能否列出所有可能的Ubuntu上可用的vim候选版本之间的主要区别,以便人们可以做出明智的决策?


1那你最后安装了哪个版本的Vim呢?我用的是Ubuntu 12.04...在考虑是选择Athena还是Gnome。它们似乎功能差不多。 - Patoshi パトシ
vim-gtk适用于KDE:http://askubuntu.com/a/33266/9081 - SabreWolfy
如果我必须使用图形界面客户端,我会使用vim-athena。我也用过vim-gnome。最近我大部分时间都在终端中使用vim,很少使用图形界面。 - Dilawar
1个回答

包括vim软件包,似乎至少有六个“vim变种”(不包括可用文档或插件软件包),以及主要的vim软件包在mainuniverse存储库中。
以下是每个软件包的简要摘要(链接指向Ubuntu LTS 20.04“Focal”版本中的软件包描述和依赖项): Vim编译并设置了一套相当标准的功能。该软件包不提供Vim的图形界面版本或脚本语言支持。如果需要更多(或更少)功能,请参考其他vim-*软件包。
要安装此软件包,请运行sudo apt-get install vim 该软件包允许从控制台输入汉字。
要安装这个软件包,请运行sudo apt-get install jvim-canna 依赖于libcanna1g
似乎不支持Perl、Python、Ruby或TCL脚本编写。
  • vim-athena - 增强版的vi编辑器 - 使用Athena GUI编译

    此软件包使用Athena GUI编译,而不是GTK+或Gnome。

    有关详细信息,请参阅这个askubuntu答案

    要安装此软件包,请运行sudo apt-get install vim-athena

    支持Perl、Python、Ruby和TCL脚本语言。

  • vim-gnome/vim-gtk3 - 增强版的vi编辑器 - 使用GNOME GUI编译(在17.10之前使用GTK2,在17.10及以后使用GTK3)

    要安装此软件包,请运行sudo apt-get install vim-gnome

    依赖于libgnome2

    支持Perl、Python、Ruby和TCL脚本语言。

  • vim-gtk - 增强版的vi编辑器 - 使用GTK2 GUI编译

    常用于KDE/Kubuntu类环境

    要安装此软件包,请运行sudo apt-get install vim-gtk

    支持Perl、Python、Ruby和TCL脚本语言。

  • vim-nox - 增强版的vi编辑器

    与vim-tiny类似,vim-nox是一个最小化的vim安装版本,没有图形界面。它支持鼠标,但不支持剪贴板,据我所知。

    要安装此软件包,请运行sudo apt-get install vim-nox

    支持Perl、Python、Ruby和TCL脚本语言。

  • vim-tiny - 增强版的vi编辑器 - 精简版

    vim-tiny是Ubuntu发行版上默认的vim,并且许多可选功能被禁用(例如多级撤销)。

    有关其功能集(或缺少功能)的详细信息,请参阅这个askubuntu答案

    要安装此软件包,请运行sudo apt-get install vim-tiny

    不支持Perl、Python、Ruby或TCL脚本语言。

    最接近vi而不是vi


在本地环境中,要查看特定安装的vim软件包支持哪些功能,可以运行以下命令:vim --version,它会提供一个包含(或排除)特定软件包中所包含功能的列表。
例如,在我的系统上,我可以运行vim --versionvim.tiny --versionvim.athena --version来查看它们各自支持的功能差异。Debian/Ubuntu的/etc/alternatives系统决定了当你运行vivim时执行哪个vim软件包,请参考etc/alternatives用于什么?

Python支持

在16.04之前,上述软件包(除了vim-tiny)都包含了支持Python 2的脚本功能的Vim。在16.04中,它们都支持Python 3,并且有相应的*-py2软件包(例如vim-gnome-py2),提供了一个带有Python 2支持的Vim命令。两者可以一起安装,命令分别为vim.gnomevim.gnome-py2。否则,*-py2软件包提供与相应软件包相同的功能集。在16.04之后,不再支持Python 2。


15vim.nox看起来不像是一个最小化的vim安装,而更像是一个支持额外脚本语言的经典vim:vim.nox --version显示的功能集与vim.basic相同,但增加了+tcl +ruby +lua +perl。Python在两个版本中都得到支持。 - cbliard
只使用终端而不需要图形界面似乎对我来说已经足够简洁了。为了使用一些酷炫的插件,可能需要额外的脚本语言。 - laconbass
2此外,还有一个名为'vim'的软件包:该软件包包含了一个编译有相当标准功能集的Vim版本。但是请注意,该软件包并不提供Vim的图形用户界面版本。如果您需要更多(或更少)功能,请查看其他以'vim-*'命名的软件包。来源 - https://apps.ubuntu.com/cat/applications/vim/ - pd12
8我最近意识到一些软件可能在编译选项中没有包含+clipboard。剪贴板对于开发者来说是一个重要的功能。也许列出默认情况下不同软件包中可能缺少的其他功能至少从开发者的角度来看是一个好主意。 - Dilawar
3vim-gtk3和vim-gnome有什么区别呢? - Mark Stosberg
@MarkStosberg 欢迎您编辑答案。vim-gnome已包含在我的答案中。随着新版本的发布,您可以随时更新答案。 - Kevin Bowen
@KevinBowen我可以,但我不太确定GTK构建与GNOME构建的存在意义。例如,在功能或外观方面,“gtk2 gui”构建与“gnome2 gui”构建有什么区别? - Mark Stosberg
1值得注意的是,一旦您安装了一个图形化包,就不再需要基本的“vim”了,为了避免冲突和混淆,您可能希望将其删除。请参阅https://askubuntu.com/a/1106538/568304。 - Murphy
一个与另一个相比有速度优势吗?例如,如果我想在vim中打开一个大型(比如2GB)的csv文件,是不是某个图形化软件包胜过其他软件包? - Adrian Keister