Как и многие разработчики в сообществе Ruby, и около половины разработчиков в carwow, я использую и люблю Vim. Есть много разных причин, по которым люди используют и любят Vim, моя заключается в том, что он совпадает с моей философией, согласно которой текстовые редакторы должны в первую очередь фокусироваться на повышении производительности при манипуляциях с текстом. Vim в этом преуспел.

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

Проблемы? Какие проблемы?

Поскольку я был относительно новичком в Vim (около 6 месяцев использования), я был в стадии медового месяца. Я действительно не мог думать ни о каких проблемах с моим новейшим революционным инструментом; но я всегда был непредвзятым (именно так я в первую очередь пришел к тому, чтобы научиться использовать Vim), поэтому я решил попробовать.

Перенесемся в сегодняшний день, и я могу свободно признать, что я верующий. Хотя Vim - отличный инструмент, мое время с Neovim выявило то, чего я хотел бы иметь в Vim. Neovim удалось улучшить работу с Vim, сохранив при этом суть того, что делает Vim особенным для меня.

Поэтому я подумал, что поделюсь с вами своими выводами в надежде, что вы тоже попробуете, если являетесь пользователем Vim:

Легко переключиться на

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

Neovim - это расширение Vim: четкость функций и обратная совместимость являются первоочередными задачами. Если вы уже знакомы с Vim, см. Раздел: help nvim-from-vim, чтобы узнать о различиях.

- neovim.io

Хотите «переключиться» на Neovim с Vim? В OSX это так же просто, как:

brew tap neovim/neovim
brew install neovim
mkdir ~/.config 
ln -s ~/.vim ~/.config/nvim 
ln -s ~/.vimrc ~/.config/nvim/init.vim

Выполнено.

Неовим сделал что-то, что вам не нравится? Вам нужно использовать vim по определенной причине? Просто запустите vim и продолжайте, как делали раньше.

Нормальные значения по умолчанию

Neovim поставляется с разумными настройками по умолчанию, что означает, что новички найдут вещи немного более знакомыми и немного более легкими для освоения.

Например; syntax enable дает вам подсветку синтаксиса "из коробки", а filetype plugin indent on включает detection, plugin и indent - полезные настройки, которые можно получить "из коробки", особенно для внешних плагинов, чтобы творить чудеса.

Однако если вы эксперт, не стесняйтесь настраивать каждый укромный уголок, как обычно.

Поддержка асинхронных плагинов

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

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

Fzf (и, следовательно, fzf.vim), Neosnippet.vim, Deoplete.vim и Neomake - это примеры подключаемых модулей vim, которые можно описать только как молниеносные.

Все асинхронно.

Примечание. Когда я начал использовать Neovim, в Vim не было поддержки асинхронности. Vim 8 теперь также поставляется с поддержкой асинхронного программирования (почему на добавление 8 основных выпусков за 25 лет - это отдельная история).

Встроенный терминал

Откройте разделение, введите :terminal и вводите команды, не выходя из редактора. Это приятный рабочий процесс, который неоднократно доказывал свою полезность. Существует также пространство имен t для привязок клавиш, которые работают только в терминале, например tnoremap

Как и все программное обеспечение, не все солнечно и розово. Вот несколько причин, по которым вы можете не использовать Neovim:

Молодость

Vim представляет восьмой основной выпуск, однако на момент написания этого сообщения в блоге Neovim находится на версии 0.1.7. Это может взволновать или напугать вас, в зависимости от того, кем вы являетесь. Ошибки будут возникать, а функции еще впереди. Если вам не нравится пробовать незрелое программное обеспечение, Neovim, вероятно, не для вас.

(Несколько) обходных путей

Чтобы упростить навигацию по разделам, я, как и большинство пользователей vim, переназначил привязки клавиш, чтобы они выглядели более естественно. В Neovim переназначение ctrl-h не работает должным образом. Во время работы над ошибкой требуется обходной путь для ожидаемого поведения.

Ниже мой способ обхода (macOS):

if has('nvim') 
  " Hack to get C-h working in neovim 
  nmap <BS> <C-W>h 
endif

TL;DR

Неовим потрясающий. Он исправляет мелкие мелочи, которые есть в Vim, при этом не отклоняясь от истинной философии Vim, что очень важно. Сопровождающие также стремятся сделать кодовую базу намного чище и проще для новичков. У проекта светлое будущее, и я надеюсь, что участники продолжат облегчать жизнь разработчикам, верящим в философию Vim.