Что такое неовим? Чем он отличается от Vim? И почему я должен заботиться?


118

Я слышал о Неовим ; чем он отличается от Vim? Все пункты на главной странице - просто архитектурные изменения «под капотом». Как пользователь, какая разница для меня?


1
Асинхронная функция спасает жизнь. Это делает vim намного более плавным, и многие плагины могут этим воспользоваться.
Tommyip

Репетитор улучшен. Это выглядит по-другому.
Фернандо Родригес

«Красивый веб-сайт, это то, что Неовим сделал правильно». - Брэм Муленаар из интервью
Майкл

Некоторые из основных вариантов выбора кажутся странными и неуместными для основных целей ... Многие из них чувствуют себя так, как будто кто-то не любит старый код и хочет сделать его «правильным». Я могу согласиться с тем, что старый код уродлив. Но потребуется много усилий, чтобы создать новую реализацию. Это очень похоже на то, что случилось с Элвисом: переписывание собиралось сделать его намного лучше, но это заняло так много времени, в течение которого Vim добавил больше функций, что в итоге пользователей Elvis стало не так много. И переписанный Элвис может иметь хороший код, но пользователи этого не замечают. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Я действительно надеюсь, что замечательные вещи, которые придумывает NeoVim, могут быть добавлены обратно в Vim. Я имею в виду, кто не хочет лучшей поддержки плагинов, лучшего графического интерфейса и встраивания? Большой вопрос в том, как это сделать и кто будет правильно его реализовывать. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Ответы:


81

Как и на домашней странице neovim, цель neovim состоит в том, чтобы проложить путь к созданию лучшего и более открытого проекта с открытым исходным кодом, созданного сообществом.

Изменения в архитектуре не только принесут больше стабильности и улучшат производительность vim, но и сделают код более удобным для сопровождения и слегка уменьшат входной барьер для всех, кто заинтересован внести свой вклад.

Одно из ключевых изменений также включает базовую функцию доступа к асинхронному выполнению заданий / задач в vim, которая долгое время была одной из самых востребованных функций vim. Это может помочь еще больше повысить производительность vim, особенно потому, что vim не нужно будет блокировать, пока фоновая работа что-то делает.

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


24
+1. Позвольте мне также добавить, что факт, что будет очень мало видимых для пользователя изменений, является хорошей вещью.
Carlosdc

27
Это звучит как перефразировка пресс-релиза, а не как краткое изложение того, почему кого-то это должно волновать. Например, я использую vim в течение двух десятилетий и не могу вспомнить, когда в последний раз основная программа показала мне какую-то нестабильность, так почему я должен заботиться о «более стабильной»?
Калеб

2
Асинхронные задачи не должны блокировать интерфейс vim для выполнения работы, которая может быть в фоновом режиме.
alxndr

3
Есть ли какое - либо доказательство в два года , что этот neovim был активен , что он быстрее растет, и имеет лучшую производительность?
Sparhawk

8
Уже не верно, что Vim не поддерживает асинхронное выполнение фоновых заданий.
Богатый

36

Я специально обращаюсь к:

Почему это должно меня волновать? Как пользователь, какая разница для меня?

Больше всего я, пользователь Vim, очень радуюсь новым видам плагинов, интеграций и интерфейсов, которые будут доступны благодаря изменениям, реализованным в Neovim.

Со временем вы увидите действительно впечатляющие плагины и программы, которые работают с Neovim, но не с Vim. Существует список специфичных для Neovim плагинов: здесь, в github neovim .

Я не знаю, насколько она актуальна, но я рад, что она растет, поскольку у нас появляется больше инструментов, позволяющих сделать кодирование более эффективным и приятным.


15

Мое собственное любимое дополнение, которое Neovim приносит на стол, это режим терминала. Теперь вы можете разделить окно Neovim и запустить эмулятор терминала на одной стороне, а редактировать файл - на другой! Я полагаю, вы могли бы даже запустить Neovim внутри себя, на случай, если вы действительно захотите это сделать.

Наличие асинхронных плагинов также будет чрезвычайно полезно в ближайшее время; это означает, что мы наконец-то смогли получить действительно хорошее завершение кода после всего лишь 40 лет ожидания!

Neovim также имеет лучшую поддержку мыши, чем Vim.


2
Они должны называть это Метавим: P
Tumbler41

Я не знаю каких-либо специфических для мыши изменений в Neovim, которые сделали бы его лучше, чем Vim.
Jamessan

Сейчас на ум приходит то, что вы можете участвовать в ssh-сессии терминала, открыть Neovim и щелкнуть место, чтобы отредактировать его. Я не думаю, что Vim может сделать это, хотя возможно, что у меня пока нет достаточно большого .vimrc! Я полагаю, что это лучше назвать поддержкой ssh, чем поддержкой мыши.
Джонатан Андерсен

Определенно возможно использовать мышь в Vim по SSH-соединению (я только что попробовал), но если вам не удалось заставить его работать в Vim, и он работает по умолчанию в NeoVim, я думаю, это точка данных в пользу вашего заявления о том, что поддержка в NeoVim лучше;).
Рич

1
Я использую мышь в обычном Vim поверх SSH из Putty, работающего под Windows, с одной set mouse=aстрокой в ​​vimrc довольно долгое время
Thunderbeef

5

Два момента, которые еще не рассмотрены другими ответами и могут быть интересны для пользователя, даже для новых пользователей, особенно с (или с небольшим) файлом конфигурации:

  1. NeoVim вовсе не пытаться быть Vi совместимы по умолчанию. Они изменили многие значения по умолчанию для настроек и активно обсуждают такие изменения: # 2676 , # 6289
  2. Он может быть встроен в другой процесс (помните интеграцию с NetBeans ?) И имеет много различных графических интерфейсов, так что MacVim больше не самый модный графический интерфейс, который вы можете найти для своего $EDITOR.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.