The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Первый выпуск Neovim, модернизированного варианта редактора Vim

03.11.2015 14:44

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

Из проблем Vim отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89). Во всех нюансах кодовой базы Vim разбирается всего несколько человек, а все изменения контролирует один мэйнтейнер, что затрудняет сопровождение и работу над усовершенствованием редактора. Вместо встроенного в ядро Vim кода для поддержки GUI в Neovim предлагается использовать универсальную прослойку, позволяющую создавать интерфейсы с использованием различных тулкитов.

В первом выпуске уже готовы механизмы для автоматического объединения истории работы между несколькими экземплярами редактора, система конфигурации переработана для соответствия требованиям стандарта XDG, встроен эмулятор терминала, добавлены средства выполнения работ в асинхронном режиме (можно запустить команду и не дожидаясь её завершения вернуться к редактированию), добавлен API MessagePack для взаимодействия с плагинами и подготовлены средства отслеживания изменения состояния. Из выполняемых в настоящее время работ отмечается портирование кода ввода/вывода на библиотеку libuv, замена тестового набора на тесты Lua и использование вместо языка VimL транслятора Lua.

Плагины к Neovim запускаются как отдельные процессы, для взаимодействия с которыми используется формат MessagePack. Взаимодействие с плагинами производится в асинхронном режиме, без блокирования базовых компонентов редактора. Для обращения к плагину может использоваться TCP-сокет, т.е. плагин может запускаться на внешней системе. При этом Neovim остаётся обратно совместимым с Vim, продолжает поддерживать Vimscript (Lua предлагается в качестве альтернативы) и поддерживает подключения большинства штатных плагинов Vim. Расширенные возможности Neovim могут быть использованы в плагинах, построенных с использованием API, специфичного для Neovim.

В настоящее время уже подготовлено около 20 специфичных плагинов, доступны биндинги для создания плагинов и реализаций интерфейсов с использованием различных языков программирования (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) и фреймворков (Qt5, ncurses, Node.js, Electron, GTK+). Развивается несколько вариантов пользовательского интерфейса. GUI-надстройки во многом напоминают плагины, но, в отличие от плагинов, они инициируют вызов функций Neovim, в то время как плагины вызываются из Neovim.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Доступен порт Vim, адаптированный для работы в web-браузере
  3. OpenNews: Запуск Emacs и Vim без прослоек поверх ядра Linux
  4. OpenNews: В рамках проекта Neovim предпринята попытка модернизации Vim
  5. OpenNews: Увидел свет текстовый редактор Vim 7.4
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/43250-vim
Ключевые слова: vim, neovim
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (53) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 15:31, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я читал на хакер ньюс что типа уже пользоваться можно.
    Неужто ж?
     
     
  • 2.8, ildus (?), 16:05, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Можно, уже с полгода использую
     
  • 2.38, Ктулху (?), 23:06, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Из проблем Vim отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89).

    Можно, пользуйся на здоровье. Но не забывай, что тёплая ламповая Сишечка используется только в оригинальном продукте:

    [I]"Из проблем Vim отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89)."[/I]

    Так что истинного удовольствия можешь и не получить.

     
     
  • 3.49, Аноним (-), 07:54, 04/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Но не забывай, что тёплая ламповая Сишечка используется только в оригинальном продукте

    Из какого пальца это высосано?

     
     
  • 4.51, Аноним (-), 09:32, 05/11/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Питон, кстати, напрягает. VIM 6.4 был последним, в котором при практически любом размере тег-файлов не тормозило дополнение по ctrl-p и поиск определения по ctrl-5. Появился питон и розавэнько-сыреневый выпадающий список вариантов для дополнения. Даже при отключении этого смешного списка вариантов поиск теперь подтормаживает. Теперь свободно можно во время поиска вариантов успеть прервать поиск дополнения часто с потерей уже набранного куска слова. К списку выражений "трава раньше была зеленее " можно добавлять "вим уже не тот."
     
     
  • 5.60, Аноним (-), 21:25, 08/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А не надо использовать тормозной ctags.
     

  • 1.2, бедный буратино (ok), 15:34, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    а почему не vimacs?
     
     
  • 2.14, Andrey Mitrofanov (?), 16:26, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > а почему не vimacs?

    Если тому, кому нужен emacs, вдруг понадобится vim... В общем, я уже запутался, кто на ком стоял, но в имаксе есть много-много-много (f.e. evil, modal, god-mode, hydra, ) плугов для адептов однопальцевого ввода. Таблицы-картинки-скрипты-орг-почта-всёвсёвсё в виме когда уже появятся?    //ihbt

     
     
  • 3.37, . (?), 22:48, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну дык судя по новости ... скоро :)
     

  • 1.3, аннаним (?), 15:39, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ого, пора разрабатывать урезанную версию Emacs, чтобы безовсяких там расширений, и чтобы маленький... и чтобы пикал все время!
     
     
  • 2.15, ssh (ok), 16:26, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    mg ;)
     
  • 2.24, systemd_anonymousd (?), 17:49, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ого, пора разрабатывать урезанную версию Emacs, чтобы безовсяких там расширений, и чтобы
    > маленький... и чтобы пикал все время!

    mg, zile, microEmacs и ещё что-то.

     
  • 2.34, Led (ok), 21:38, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Возьми uemacs, пипикалку на каникулах сам приделелаешь.
     

  • 1.4, qweqwe (?), 15:45, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Ого, пора разрабатывать урезанную версию Emacs, чтобы безовсяких там расширений

    А зачем нужен емакс без расширений?

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

     
     
  • 2.17, Andrey Mitrofanov (?), 16:28, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >>Ого, пора разрабатывать урезанную версию Emacs, чтобы безовсяких там расширений
    > А зачем нужен емакс без расширений?

    Для хоть какой-то конкуренции с субжом.

    > Не, я конечно согласен, что искаробочная версия совсем нифига не модульная.

    Которго из двух??

     
     
  • 3.29, Andrey Mitrofanov (?), 19:03, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >>>Ого, пора разрабатывать урезанную версию Emacs, чтобы безовсяких там расширений
    >> А зачем нужен емакс без расширений?
    > Для хоть какой-то конкуренции с субжом.

    Вот сейчас на ещё-один-тм набрёл: http://www.notgnu.org/ -- без GNU, без GPL (-NC cant tuch zis), зато с виндой и ДОСом.    2006 г.

    На самом этих обрубочных имаксо-подобных газзилион. И все _протухшие_ 200N-ного года, если не старше, последний раз троганные автором (одним в поле, вероятно -- у каждого). Примерно тогда у школьников прошла мода на "я написал ридактор"?

    Какой-то из них, ущербных, валялся у Торвальдса на ftp://kernel.org/ .

    В Debian-е как-то смотрел - 3-4-или-5, не помню, штук нашёл. Ни один толком или не запустился (терминала не узнал?), или тупо русский [utf8~] плоский текст не открыл.

    Посмотрел xemacs - релиз 2013.

    Останется только один, надо полагать. НьюИмэкс Ричардович Маклауд.

    ---
    http://www.thefullwiki.org/Emacs#wikipedia_Other_forks_and_clones
    https://docs.cs.byu.edu/wiki/Emacs:_A_Basic_Introduction#Others
    ...
    http://www.linux-magazine.com/Online/News/Microsoft-to-Create-Emacs-Clone
    http://www.bellard.org/qemacs/

     
  • 2.21, rob pike (?), 17:32, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > искаробочная версия совсем нифига не модульная

    И чем же это она "не модульная"?

     
  • 2.52, freehck (ok), 09:47, 05/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А вы знаете, почему искаробочная версия нифига не модульная? Да просто потому, что Emacs поставляется в образе виртуальной lisp-машины, в которой все эти модули уже загружены-запиханы. Иными словами возможность избавиться от модулей базовой поставки всё-таки имеется, но для этого Emacs надо пересобирать.
     
     
  • 3.56, rob pike (?), 01:15, 06/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > поставляется в образе виртуальной lisp-машины

    Так он и есть в некотором роде lisp-машина, и что?

    > в которой все эти модули

    Только несколько самых основных.

    > возможность избавиться от модулей базовой поставки

    Зачем от них избавляться? Чтоб в кофеварку с 256 kB памяти поместилось?

     
     
  • 4.61, freehck (ok), 19:16, 03/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> поставляется в образе виртуальной lisp-машины
    > Так он и есть в некотором роде lisp-машина, и что?

    Окей, я не совсем корректно выразился. Поставляется именно образ виртуальной lisp-машины.
    То есть со всем собрались, всё подгрузили, сдампили образ на диск, и каждый раз при старте Emacs его разворачиваем.

     

  • 1.5, Spoofing (?), 15:56, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –13 +/
    текстовых редакторов так много, и в тоже время нет ниодного.
    скучаю по notepad.exe, но увы, из-за хоткея Ctrl + S захваченного шеллом, такого же удобного для консоли текстового редактора не сделать.
     
     
  • 2.6, Anon99 (?), 16:01, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Зачем же мучиться, если есть десяточка?
     
  • 2.7, Имя (?), 16:02, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    AkelPad
     
  • 2.10, anonblmus (?), 16:12, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А что это за шелл такой, что стандартные хоткеи под себя подгребает?
     
     
  • 3.12, Spoofing (?), 16:17, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    bash, например. нажмите Ctrl + S, это пошлёт SIGSTOP сигнал процессу, и остановит выхлоп в консоль программы, а далее, как заполнится буфер (ОЧЕ маленький), программа встанет на паузу. Ctrl + Q пошлёт SIGCONT сигнал процессу и программа продолжит выполняться.
     
     
  • 4.13, Пользователь Debian (?), 16:24, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Напишите в свой ~/.bashrc:

      stty -ixoff

    и Ctrl-S у вас не будет "перехватываться шеллом" (на самом деле она обрабатывается Вашим эмулятором терминала).

     
     
  • 5.19, anonblmus (?), 16:35, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > и Ctrl-S у вас не будет "перехватываться шеллом" (на самом деле она
    > обрабатывается Вашим эмулятором терминала).

    Я подозревал, что дело не в шелле...

     
  • 4.16, Пользователь Debian (?), 16:27, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > bash, например. нажмите Ctrl + S, это пошлёт SIGSTOP сигнал процессу, и
    > остановит выхлоп в консоль программы, а далее, как заполнится буфер (ОЧЕ
    > маленький), программа встанет на паузу. Ctrl + Q пошлёт SIGCONT сигнал
    > процессу и программа продолжит выполняться.

    Прошу прощения -- команда должна быть такая:

      stty ixoff -ixon


     
  • 4.18, anonblmus (?), 16:30, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > bash, например. нажмите Ctrl + S, это пошлёт SIGSTOP сигнал процессу

    Продолжает выполняться при нажатии любой клавиши, не только Ctrl + Q.

     
  • 2.11, Васёк (?), 16:14, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Mousepad/leafpad спешат на помощь
     
  • 2.47, aborodin (??), 07:29, 04/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > но увы, из-за хоткея Ctrl + S захваченного шеллом, такого же удобного для консоли текстового редактора не сделать.

    Как же это в mcedit ctrl-s работает?

     

  • 1.22, Аноним (-), 17:33, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >Из проблем Vim отмечается раздутая монолитная кодовая база
    >встроен эмулятор терминала

    хорошее начало!

     
     
  • 2.26, v.v.b. (??), 18:06, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    неужто vimd будет, по аналогии с системд?
     
     
  • 3.40, foo (?), 23:41, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    по аналогии с emacsd
     

  • 1.23, Аноним (-), 17:45, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, что более "вечно" - редактор VI или желание все "мыр-дыр... незировать"? :)))
     
     
  • 2.25, systemd_anonymousd (?), 17:52, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Интересно, что более "вечно" - редактор VI или желание все "мыр-дыр... незировать"?
    > :)))

    Где-то читал, что когда в 1990-каком-то году появился Vim, к нему тоже со скептицизмом отнеслись: сможет ли он потеснить Vi?

    Таки смог. Что будет дальше - посмотрим.

     
     
  • 3.31, rob pike (?), 19:10, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И до сих пор относятся. Используют nvi.
     
  • 2.30, Andrey Mitrofanov (?), 19:08, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, что более "вечно" - редактор VI или желание все "мыр-дыр... незировать"?
    > :)))

    Намекаете на делать второе над первым?

     
  • 2.35, Аноним (-), 22:31, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    neovim появился по той же причине что io.js - мейнтейнер vim так долго проверяет пулл реквесты и так часто отказывается их мерджить без объяснения причин, что люди плюнули и начали пилить форк. К чему это приводит: зайдите в репы и сравните активность за любой промежуток времени. Пулл реквесты, багрепорты, и так далее - neovim сейчас пилят в разы активнее чем vim.
     
     
  • 3.41, Vkni (ok), 00:10, 04/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Пулл реквесты, багрепорты, и так далее - neovim сейчас пилят
    > в разы активнее чем vim.

    Это не проблема. Вопрос - надо ли пилить-то.

     
     
  • 4.48, chinarulezzz (ok), 07:30, 04/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    кому надо - те пилят.
     
  • 4.50, Аноним (-), 09:02, 04/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Конечно, надо. Ведь главная проблема vim это невозможность нормально писать аддоны. VimL просто АДСКИ убогий.
     

  • 1.28, Аноним (28), 18:42, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    поддержка android?
     
     
  • 2.33, анонимус вульгарис (?), 20:53, 03/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    https://f-droid.org/repository/browse/?fdfilter=vim&fdid=net.momodalo.app.vimt
     

  • 1.36, all_glory_to_the_hypnotoad (ok), 22:32, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > встроен эмулятор терминала

    похоже, мы наблюдаем рождение ещё одного систем дэ.

     
     
  • 2.58, Аноним (-), 06:19, 07/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кто о чём, а вшивый о бане... В Emacs уже давным-давно есть и эмулятор терминала, и браузер, и почтовый клиент, и черт-те что ещё. Не так давно написали плагин, превращающий его в оконный менеджер, то есть при желании из него получается DE.
     

  • 1.39, Аноним (-), 23:34, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Вместо встроенного в ядро Vim кода для поддержки GUI в Neovim предлагается использовать универсальную прослойку, позволяющую создавать интерфейсы с использованием различных тулкитов.
    >Развивается несколько вариантов пользовательского интерфейса.

    Подобная попытка уже была под названием Yzis, где-то в 2009 году. Делалось с GUI: Qt, KDE, ncurses.

     
  • 1.46, seyko2 (ok), 03:28, 04/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо за информацию.
    Отделение редактора от реализации интерфейса -- это пожалуй наиболее интересно.
    Кстати, в OpenWatcom-v2 vim тоже сделан прилично. Но пока не всё работает под
    unix. https://github.com/seyko2/open-watcom-v2

    В тему: возродился crisp (под именем grief). Клон легендарного brief и multiEdit
    http://sourceforge.net/projects/grief/files/griefprogguide.pdf/download

     
     
  • 2.54, adolfus (ok), 16:30, 05/11/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Отделение редактора от реализации интерфейса -- это пожалуй наиболее интересно.

    Да отделению рдактора от интерфейса сто лет в обед. Slickedit, бывший во времена полуоси Visual Slick Editor.
    Хотите Vim? Просто выбираете соответсвующий интерфейс. Хотите emacs? -- радиокнопка чуть выше. Хотите свой? Для этого к Вашим услугам c-подобный в конструкциях язык программирования, причем компилируемый.

     
     
  • 3.55, seyko2 (ok), 21:09, 05/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Отделение редактора от реализации интерфейса -- это пожалуй наиболее интересно.
    > Да отделению рдактора от интерфейса сто лет в обед. Slickedit, бывший во
    > времена полуоси Visual Slick Editor

    В OS/2, DOS, Win всё давно было нормально.
    А вот в linux на терминале (текстовый режим) теоретически это есть
    (тот же emacs-client), а практически нет.
    Из популярного только у MC приличный вид.

    PS: Однако отделить mcedit от его нынешнего интерфейса и сделать
    совсем нормально (редактор командуется по сокету, интерфейс у клиента
    как у TurboVision) -- такого нет.

    PPS: neovim собирается из исходников с большим трудом. Для сборки make
    не достаточно. Надо довольно свежий CMake, curl с поддержкой ssl, и для
    сборки используется C++ (не старее 4.1.2). Cmake тянет из интернета
    кучу пакетов. И после всех трудов мы имеем скучный интерфейс.

    PPS: а grief, как оказалось, не хочет вводить русские в utf8. Из файла
    показывает нормально, а вводимые с клавиатуры разбивает на байты.

     

  • 1.53, fi (ok), 14:23, 05/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересно, но плохо что нет готовых сборок, хотя бы в виде tar.gz
     
     
  • 2.57, Алексей (??), 20:07, 06/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, но плохо что нет готовых сборок, хотя бы в виде tar.gz

    В смысле нет? Я его даже на centos 7 воткнул с репы.

    Юзаю уже год, впечатление только положительное, работает сильно быстрее vim.

     
     
  • 3.59, Аноним (-), 19:08, 08/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Уговорили!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру