Состоялся (https://github.com/neovim/neovim/releases/tag/v0.1.0) первый релиз проекта Neovim (https://neovim.io/), в рамках которого развивается ответвление от редактора Vim, разработка которого
сфокусирована (https://github.com/neovim/neovim/wiki/Introduction) на повышении расширяемости и гибкости. В рамках проекта Neovim уже около двух лет проводится агрессивная переработка кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять не трогая внутренности) и реализующие новую расширяемую архитектуру (https://github.com/neovim/neovim/wiki/Plugin-UI-architecture) на основе плагинов.
Из проблем Vim отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89). Во всех нюансах кодовой базы Vim разбирается всего несколько человек, а все изменения контролирует один мэйнтейнер, что затрудняет сопровождение и работу над усовершенствованием редактора. Вместо встроенного в ядро Vim кода для поддержки GUI в Neovim предлагается использовать универсальную прослойку, позволяющую создавать интерфейсы с использованием различных тулкитов.
В первом выпуске уже готовы механизмы для автоматического объединения истории работы между несколькими экземплярами редактора, система конфигурации переработана для соответствия требованиям стандарта XDG, встроен (https://www.youtube.com/watch?v=xZbMVj9XSUo) эмулятор терминала, добавлены средства выполнения работ в асинхронном режиме (можно запустить команду и не дожидаясь её завершения вернуться к редактированию), добавлен API MessagePack (https://msgpack.org/) для взаимодействия с плагинами и подготовлены средства отслеживания изменения состояния. Из выполняемых в настоящее время работ отмечается портирование кода ввода/вывода на библиотеку libuv (https://github.com/libuv/libuv/), замена тестового набора на тесты Lua и использование вместо языка VimL транслятора Lua.Плагины к Neovim запускаются как отдельные процессы, для взаимодействия с которыми используется формат MessagePack. Взаимодействие с плагинами производится в асинхронном режиме, без блокирования базовых компонентов редактора. Для обращения к плагину может использоваться TCP-сокет, т.е. плагин может запускаться на внешней системе. При этом Neovim остаётся обратно совместимым с Vim, продолжает поддерживать Vimscript (Lua предлагается в качестве альтернативы) и поддерживает подключения большинства штатных плагинов Vim. Расширенные возможности Neovim могут быть использованы в плагинах, построенных с использованием специфичного для Neovim API.
В настоящее время уже подготовлено (https://github.com/neovim/neovim/wiki/Related-projects#plugins) около 20 специфичных плагинов, доступны биндинги для создания плагинов и реализаций интерфейсов с использованием различных языков программирования (C++, Clojure, Perl, Python, Go, Java, Lisp,Lua, Ruby) и фреймворков (Qt5, ncurses, Node.js, Electron, GTK+). Развивается несколько вариантов пользовательского интерфейса. GUI-надстройки во многом напоминают плагины, но в отличие от плагинов они инициируют вызов функций Neovim, в то время как плагины вызываются из Neovim.
URL: https://news.ycombinator.com/item?id=10488188
Новость: http://www.opennet.me/opennews/art.shtml?num=43250
Я читал на хакер ньюс что типа уже пользоваться можно.
Неужто ж?
Можно, уже с полгода использую
> Из проблем Vim отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89).Можно, пользуйся на здоровье. Но не забывай, что тёплая ламповая Сишечка используется только в оригинальном продукте:
"Из проблем Vim отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89)."
Так что истинного удовольствия можешь и не получить.
> Но не забывай, что тёплая ламповая Сишечка используется только в оригинальном продуктеИз какого пальца это высосано?
Питон, кстати, напрягает. VIM 6.4 был последним, в котором при практически любом размере тег-файлов не тормозило дополнение по ctrl-p и поиск определения по ctrl-5. Появился питон и розавэнько-сыреневый выпадающий список вариантов для дополнения. Даже при отключении этого смешного списка вариантов поиск теперь подтормаживает. Теперь свободно можно во время поиска вариантов успеть прервать поиск дополнения часто с потерей уже набранного куска слова. К списку выражений "трава раньше была зеленее " можно добавлять "вим уже не тот."
А не надо использовать тормозной ctags.
а почему не vimacs?
> а почему не vimacs?Если тому, кому нужен emacs, вдруг понадобится vim... В общем, я уже запутался, кто на ком стоял, но в имаксе есть много-много-много (f.e. evil, modal, god-mode, hydra, ) плугов для адептов однопальцевого ввода. Таблицы-картинки-скрипты-орг-почта-всёвсёвсё в виме когда уже появятся? //ihbt
Ну дык судя по новости ... скоро :)
Ого, пора разрабатывать урезанную версию Emacs, чтобы безовсяких там расширений, и чтобы маленький... и чтобы пикал все время!
mg ;)
> Ого, пора разрабатывать урезанную версию Emacs, чтобы безовсяких там расширений, и чтобы
> маленький... и чтобы пикал все время!mg, zile, microEmacs и ещё что-то.
Возьми uemacs, пипикалку на каникулах сам приделелаешь.
>Ого, пора разрабатывать урезанную версию Emacs, чтобы безовсяких там расширенийА зачем нужен емакс без расширений?
Не, я конечно согласен, что искаробочная версия совсем нифига не модульная. Но при нынешних размерах жёстких дисков лишние 100Мб погоды не делают совсем.
>>Ого, пора разрабатывать урезанную версию Emacs, чтобы безовсяких там расширений
> А зачем нужен емакс без расширений?Для хоть какой-то конкуренции с субжом.
> Не, я конечно согласен, что искаробочная версия совсем нифига не модульная.
Которго из двух??
>>>Ого, пора разрабатывать урезанную версию 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_c...
https://docs.cs.byu.edu/wiki/Emacs:_A_Basic_Introduction#Others
...
http://www.linux-magazine.com/Online/News/Microsoft-to-Creat...
http://www.bellard.org/qemacs/
> искаробочная версия совсем нифига не модульнаяИ чем же это она "не модульная"?
А вы знаете, почему искаробочная версия нифига не модульная? Да просто потому, что Emacs поставляется в образе виртуальной lisp-машины, в которой все эти модули уже загружены-запиханы. Иными словами возможность избавиться от модулей базовой поставки всё-таки имеется, но для этого Emacs надо пересобирать.
> поставляется в образе виртуальной lisp-машиныТак он и есть в некотором роде lisp-машина, и что?
> в которой все эти модули
Только несколько самых основных.
> возможность избавиться от модулей базовой поставки
Зачем от них избавляться? Чтоб в кофеварку с 256 kB памяти поместилось?
>> поставляется в образе виртуальной lisp-машины
> Так он и есть в некотором роде lisp-машина, и что?Окей, я не совсем корректно выразился. Поставляется именно образ виртуальной lisp-машины.
То есть со всем собрались, всё подгрузили, сдампили образ на диск, и каждый раз при старте Emacs его разворачиваем.
текстовых редакторов так много, и в тоже время нет ниодного.
скучаю по notepad.exe, но увы, из-за хоткея Ctrl + S захваченного шеллом, такого же удобного для консоли текстового редактора не сделать.
Зачем же мучиться, если есть десяточка?
AkelPad
А что это за шелл такой, что стандартные хоткеи под себя подгребает?
bash, например. нажмите Ctrl + S, это пошлёт SIGSTOP сигнал процессу, и остановит выхлоп в консоль программы, а далее, как заполнится буфер (ОЧЕ маленький), программа встанет на паузу. Ctrl + Q пошлёт SIGCONT сигнал процессу и программа продолжит выполняться.
Напишите в свой ~/.bashrc:stty -ixoff
и Ctrl-S у вас не будет "перехватываться шеллом" (на самом деле она обрабатывается Вашим эмулятором терминала).
> и Ctrl-S у вас не будет "перехватываться шеллом" (на самом деле она
> обрабатывается Вашим эмулятором терминала).Я подозревал, что дело не в шелле...
> bash, например. нажмите Ctrl + S, это пошлёт SIGSTOP сигнал процессу, и
> остановит выхлоп в консоль программы, а далее, как заполнится буфер (ОЧЕ
> маленький), программа встанет на паузу. Ctrl + Q пошлёт SIGCONT сигнал
> процессу и программа продолжит выполняться.Прошу прощения -- команда должна быть такая:
stty ixoff -ixon
> bash, например. нажмите Ctrl + S, это пошлёт SIGSTOP сигнал процессуПродолжает выполняться при нажатии любой клавиши, не только Ctrl + Q.
Mousepad/leafpad спешат на помощь
> но увы, из-за хоткея Ctrl + S захваченного шеллом, такого же удобного для консоли текстового редактора не сделать.Как же это в mcedit ctrl-s работает?
>Из проблем Vim отмечается раздутая монолитная кодовая база
>встроен эмулятор терминалахорошее начало!
неужто vimd будет, по аналогии с системд?
по аналогии с emacsd
Интересно, что более "вечно" - редактор VI или желание все "мыр-дыр... незировать"? :)))
> Интересно, что более "вечно" - редактор VI или желание все "мыр-дыр... незировать"?
> :)))Где-то читал, что когда в 1990-каком-то году появился Vim, к нему тоже со скептицизмом отнеслись: сможет ли он потеснить Vi?
Таки смог. Что будет дальше - посмотрим.
И до сих пор относятся. Используют nvi.
> Интересно, что более "вечно" - редактор VI или желание все "мыр-дыр... незировать"?
> :)))Намекаете на делать второе над первым?
neovim появился по той же причине что io.js - мейнтейнер vim так долго проверяет пулл реквесты и так часто отказывается их мерджить без объяснения причин, что люди плюнули и начали пилить форк. К чему это приводит: зайдите в репы и сравните активность за любой промежуток времени. Пулл реквесты, багрепорты, и так далее - neovim сейчас пилят в разы активнее чем vim.
> Пулл реквесты, багрепорты, и так далее - neovim сейчас пилят
> в разы активнее чем vim.Это не проблема. Вопрос - надо ли пилить-то.
кому надо - те пилят.
Конечно, надо. Ведь главная проблема vim это невозможность нормально писать аддоны. VimL просто АДСКИ убогий.
поддержка android?
https://f-droid.org/repository/browse/?fdfilter=vim&fdid=net...
> встроен эмулятор терминалапохоже, мы наблюдаем рождение ещё одного систем дэ.
Кто о чём, а вшивый о бане... В Emacs уже давным-давно есть и эмулятор терминала, и браузер, и почтовый клиент, и черт-те что ещё. Не так давно написали плагин, превращающий его в оконный менеджер, то есть при желании из него получается DE.
>Вместо встроенного в ядро Vim кода для поддержки GUI в Neovim предлагается использовать универсальную прослойку, позволяющую создавать интерфейсы с использованием различных тулкитов.
>Развивается несколько вариантов пользовательского интерфейса.Подобная попытка уже была под названием Yzis, где-то в 2009 году. Делалось с GUI: Qt, KDE, ncurses.
Спасибо за информацию.
Отделение редактора от реализации интерфейса -- это пожалуй наиболее интересно.
Кстати, в OpenWatcom-v2 vim тоже сделан прилично. Но пока не всё работает под
unix. https://github.com/seyko2/open-watcom-v2В тему: возродился crisp (под именем grief). Клон легендарного brief и multiEdit
http://sourceforge.net/projects/grief/files/griefprogguide.p...
> Отделение редактора от реализации интерфейса -- это пожалуй наиболее интересно.Да отделению рдактора от интерфейса сто лет в обед. Slickedit, бывший во времена полуоси Visual Slick Editor.
Хотите Vim? Просто выбираете соответсвующий интерфейс. Хотите emacs? -- радиокнопка чуть выше. Хотите свой? Для этого к Вашим услугам c-подобный в конструкциях язык программирования, причем компилируемый.
>> Отделение редактора от реализации интерфейса -- это пожалуй наиболее интересно.
> Да отделению рдактора от интерфейса сто лет в обед. 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. Из файла
показывает нормально, а вводимые с клавиатуры разбивает на байты.
Интересно, но плохо что нет готовых сборок, хотя бы в виде tar.gz
> Интересно, но плохо что нет готовых сборок, хотя бы в виде tar.gzВ смысле нет? Я его даже на centos 7 воткнул с репы.
Юзаю уже год, впечатление только положительное, работает сильно быстрее vim.
Уговорили!