Каковы различия между различными пакетами vim, доступными в Ubuntu?


125

Разница между vim-gtkи vim-gnomeуже обсуждалась здесь .

Ubuntu обычно предлагает больше, чем эти две опции для vim, например:

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

Не ясно, какой vimпакет имеет какие зависимости и какой предпочтительнее использовать в своей системе. Я храню свои vimконфигурационные файлы ( ~/.vimпапки) на GitHub и клонирую их в любую систему, с которой мне нужно работать. Они работают с, vim-gnomeно будут ли они работать с любым из этих дистрибутивов?

Можем ли мы перечислить основные различия между всеми возможными vimкандидатами, доступными в Ubuntu, чтобы можно было принять взвешенное решение?


1
так какой vim вы в итоге установили? я на Ubuntu 12.04 ... думал об Афина или гном. кажется, они делают то же самое.
Патоши シ ト シ


@Dilawar, так что ты сейчас используешь?
Роберт Симер

Я использую vim-athena(если я должен использовать графический клиент). Я также использовал vim-gnome. В настоящее время я в основном остаюсь в терминале vimи редко использую GUI.
Dilawar

Ответы:


116

В том числе в vimупаковке, то , как представляется, по крайней мере , шесть «ВИМ-варианты» (не включая имеющуюся документацию или плагин пакетов), а также в качестве основного vimпакета в обоих mainи universeхранилищах.

Ниже приведено краткое описание каждого из них (ссылки ведут на описание пакета и зависимости в Ubuntu LTS выпуск 16.04 «Xenial»):

  • напор

    Vim скомпилирован и настроен с довольно стандартным набором функций. Этот пакет не предоставляет версию графического интерфейса Vim или поддержку языка сценариев. Посмотрите другие пакеты vim- *, если вам нужно больше (или меньше).

    Чтобы установить этот пакет, запустите sudo apt-get install vim

  • jvim-canna - японский VIM (версия для Canna)

    Этот пакет позволяет вводить кандзи с консоли.

    Чтобы установить этот пакет, запустите sudo apt-get install jvim-canna

    Зависит от libcanna1gбиблиотеки

    Похоже, не поддерживает сценарии Perl, Python, Ruby или TCL.

  • vim-athena - улучшенный редактор vi - скомпилирован с графическим интерфейсом Athena

    Этот пакет скомпилирован с графическим интерфейсом Athena, а не GTK + или Gnome.

    Смотрите этот ответ Askubuntu для получения дополнительной информации.

    Чтобы установить этот пакет, запустите sudo apt-get install vim-athena

    Поддерживает сценарии Perl, Python, Ruby и TCL.

  • vim-gnome / vim-gtk3 - улучшенный редактор vi - скомпилирован с графическим интерфейсом GNOME (GTK2 до 17.10, GTK3 от 17.10)

    Чтобы установить этот пакет, запустите sudo apt-get install vim-gnome

    Зависит от libgnome2библиотеки

    Поддерживает сценарии Perl, Python, Ruby и TCL.

  • vim-gtk - улучшенный редактор vi - скомпилирован с графическим интерфейсом GTK2

    Используется в средах, подобных KDE / Kubuntu

    Чтобы установить этот пакет, запустите sudo apt-get install vim-gtk

    Поддерживает сценарии Perl, Python, Ruby и TCL.

  • vim-nox - улучшенный редактор vi

    Как и vim-tiny, vim-nox является минимальной установкой vim и не имеет графического интерфейса. Он поставляется с поддержкой мыши, но без поддержки буфера обмена, IIRC.

    Чтобы установить этот пакет, запустите sudo apt-get install vim-nox

    Поддерживает сценарии Perl, Python, Ruby и TCL.

  • vim-tiny - улучшенный редактор vi - компактная версия

    vim-tiny включен в качестве vim по умолчанию в дистрибутивах Ubuntu и поставляется с отключенными многими дополнительными функциями (например, многоуровневая отмена).

    См. Этот ответ Askubuntu для деталей о его наборе функций (или его отсутствии).

    Чтобы установить этот пакет, запустите sudo apt-get install vim-tiny

    Не поддерживает сценарии Perl, Python, Ruby или TCL.

    Как близко к тому, чтобы быть vi, не будучи vi .


Локально, чтобы увидеть, какие функции поддерживаются в конкретном установленном пакете vim, выполните следующую команду: vim --versionпредоставит список функций, включенных (или исключенных) в конкретный пакет.

Например, в моей системе я могу запустить либо vim --version, vim.tiny --versionили , vim.athena --versionчтобы увидеть различие в их соответствующих поддерживаемых функциях. Система Debian / Ubuntu /etc/alternativesопределяет, какой пакет vim запускается при запуске viили vimсмотрите, для чего используется etc / альтернативы?


Поддержка Python

До 16.04 вышеупомянутые пакеты (кроме vim-tiny) включали Vim с поддержкой сценариев для Python 2. В 16.04 все они поддерживают Python 3, и есть соответствующие *-py2пакеты ( vim-gnome-py2например,), которые предоставляют команду Vim с поддержкой Python 2. Оба могут быть установлены вместе, а команды будут, например, vim.gnomeи vim.gnome-py2соответственно. В противном случае *-py2пакеты предоставляют тот же набор функций, что и соответствующие пакеты. Поддержка Python 2 была удалена после 16.04.


12
vim.nox не похож на минимальную установку vim, а скорее на классический vim с поддержкой дополнительных языков сценариев: vim.nox --versionпоказывает тот же набор функций, что и vim.basicс + tcl + ruby ​​+ lua + perl. Python поддерживается в обеих версиях.
cbliard

нет GUI (только терминал) кажется достаточно минимальным для меня. Для некоторых классных плагинов нужны дополнительные языки сценариев.
Лаконбасс

2
Также пакет 'vim': этот пакет содержит версию vim, скомпилированную с довольно стандартным набором функций. Этот пакет не предоставляет версию графического интерфейса Vim. Посмотрите другие пакеты vim- *, если вам нужно больше (или меньше). Источник - apps.ubuntu.com/cat/applications/vim
pd12

1
Недавно я понял, что некоторые из вышеперечисленных могут иметь или не иметь +clipboardв своих флагах компиляции. Буфер обмена является важной функцией для разработчиков. Вероятно, хорошая идея перечислить, что еще может отсутствовать по умолчанию в разных пакетах, по крайней мере, с точки зрения разработчика.
Dilawar

2
как насчет vim-gtk3 против vim-gnome?
Марк Стосберг
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.