После полутора лет разработки сформирован (https://github.com/neovim/neovim/releases/tag/v0.2.0) релиз Neovim 0.2 (https://neovim.io/), ответвления от редактора Vim, сфокусированного (https://github.com/neovim/neovim/wiki/Introduction) на повышении расширяемости и гибкости. В рамках проекта Neovim уже более трёх лет проводится агрессивная переработка кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять не трогая внутренности) и реализующие новую расширяемую архитектуру (https://github.com/neovim/neovim/wiki/Plugin-UI-architecture) на основе плагинов.
Из проблем Vim, побудивших к созданию Neovim, отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89). Во всех нюансах кодовой базы Vim разбирается всего несколько человек, а все изменения контролирует один мэйнтейнер, что затрудняет сопровождение и работу над усовершенствованием редактора. Вместо встроенного в ядро Vim кода для поддержки GUI в Neovim предлагается использовать универсальную прослойку, позволяющую создавать интерфейсы с использованием различных тулкитов.Плагины к Neovim запускаются как отдельные процессы, для взаимодействия с которыми используется формат MessagePack. Взаимодействие с плагинами производится в асинхронном режиме, без блокирования базовых компонентов редактора. Для обращения к плагину может использоваться TCP-сокет, т.е. плагин может запускаться на внешней системе. При этом Neovim остаётся обратно совместимым с Vim, продолжает поддерживать Vimscript (в качестве альтернативы предлагается Lua) и поддерживает подключения большинства штатных плагинов Vim. Расширенные возможности Neovim могут быть использованы в плагинах, построенных с использованием API, специфичного для Neovim.
В настоящее время уже подготовлено (https://github.com/neovim/neovim/wiki/Related-projects#plugins) более 50 специфичных плагинов, доступны биндинги для создания плагинов и реализаций интерфейсов с использованием различных языков программирования (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) и фреймворков (Qt5, ncurses, Node.js, Electron, GTK+). Развивается несколько вариантов пользовательского интерфейса. GUI-надстройки во многом напоминают плагины, но, в отличие от плагинов, они инициируют вызов функций Neovim, в то время как плагины вызываются из Neovim.
В новой версии перенесены некоторые возможности Vim 8 (средства для косвенного вызова функций и лямбда-выражения для быстрого создания пользовательских функций), обеспечена полноценная поддержка платформы Windows, усовершенствован встроенный эмулятор терминала и представлена очередная порция переработок, связанных с модернизацией и рефакторингом API. Оригинальные наработки проекта распространяются (https://github.com/neovim/neovim/) под лицензией Apache 2.0, а базовая часть под лицензией Vim.
URL: https://www.reddit.com/r/neovim/comments/68rt5x/neovim_020_i.../
Новость: http://www.opennet.me/opennews/art.shtml?num=46491
Но ведь есть Emacs.
Емакс это не то немного.
> Емакс это не то немного.Имакс и https://notmuchmail.org/notmuch-emacs/ _то_ "немного". P-D
//И да, полчаса в учебнике имакс и ... .... ........
//$ emacs -Q -nw --eval '(help-with-tutorial)'
> сфокусированного на повышении расширяемости и гибкостиЧто же тут не про то?
> Но ведь есть Emacs.Ну нравится людям писать плагины на Lua. Ну терпеть они Elisp не могут от слова совсем.
Что, что Вы от них хотите? Они делают так, как им нравится. Они в своих правах.
Не в лиспе дело. В самой философии емакса.
> Не в лиспе дело. В самой философии емакса.Что же не так в философии емакса?
> Ну нравится людям писать плагины на Lua. Ну терпеть они Elisp не могут от слова совсем.Написать lua на лиспе -- это развлечение на несколько вечеров. Даже если на гадком elisp'е писать. А если какой-нибудь генератор парсеров задействовать, то можно и быстрее.
Но, кстати, заглянул в гугл, в поисках готового компилятора lua в lisp, и там сплошняком обратные компиляторы lisp'а в lua. Это как бэ намекает, что не-лисперы неспособны мыслить в терминах типа "заточить язык под себя".
Поищите лучше в гугле фразу "стоя в гамаке".
> Поищите лучше в гугле фразу "стоя в гамаке".Я вот про это как раз и говорю: программист незнакомый с лиспом, просто не в состоянии оценить идею превращения неудобной системы в удобную, работая над этим _изнутри_ системы. Не-лисперы очень ригидны и могут функционировать только в узком спектре ситуаций, границы которого жёстко заданы теми возможностями, которые предоставляет ими предпочитаемый язык.
В каждом сравнении лиспа с другими ЯП лисперы всегда приводят свой любимый аргумент: "я за n часов/дней напишу интерпретатор другого ЯП, а значит лисп по-любому круче, а вы ничего не понимаете". Вот только у опытных программистов, а не новичков, на которых эти пoнты рассчитаны, сразу возникает два встречных вопроса: "а сколько лет понадобится, чтобы написать _корректный_ интерпретатор целевого ЯП?" и "если ваш лисп такой весь из себя замечательный для написания на нем других ЯП, то почему же в реальности большая часть реализаций различных ЯП написана совсем не на лиспе?"
Я про Фому, а мне про Ерёму. Я про программистов, а мне про языки. Сказать нечего, будём передёргивать тему и уводить её в оффтоп?
> идею превращения неудобной системы в удобную, работая над этим _изнутри_ системыДа что это за абстрактный бред вообще? Обычный текстовый редактор, какая разница, на чем он написан? Я не пойму эту романтизацию лиспа.
>> идею превращения неудобной системы в удобную, работая над этим _изнутри_ системы
> Обычный текстовый редактор, какая разница, на чем он написан?Вот и я о том же: какая разница. Если не устраивает встроенный лисп, и lua кажется приятнее, всегда можно написать lua на лиспе и забыть про lisp.
> Я не пойму эту романтизацию лиспа.
Есть вещи, которые можно понять только через практику.
> Вот и я о том же: какая разница. Если не устраивает встроенный
> лисп, и lua кажется приятнее, всегда можно написать lua на лиспе
> и забыть про lisp.Зачем писать реализацию Lua для Emacs, если есть Neovim с классным быстрым Luajit, который умеет делать пыщь-пыщь?
>> Вот и я о том же: какая разница. Если не устраивает встроенный
>> лисп, и lua кажется приятнее, всегда можно написать lua на лиспе
>> и забыть про lisp.
> Зачем писать реализацию Lua для Emacs, если есть Neovim с классным быстрым
> Luajit, который умеет делать пыщь-пыщь?Ты читал тред, или только последние сообщения в нём? Исходный вопрос стоял так: зачем пилить neovim с lua, если есть emacs? Запилить lua в elisp гораздо проще, чем перепилить vim в neovim.
Давай по-другому вопрос зададим: зачем вообще пилить Emacs, если есть Vim (а теперь и полноценный Lua внутри, а не интерпретатор на интерпретаторе, как ты предлагаешь)?
> Давай по-другому вопрос зададим: зачем вообще пилить Emacs, если есть Vim (а
> теперь и полноценный Lua внутри, а не интерпретатор на интерпретаторе, как
> ты предлагаешь)?Затем что emacs уже есть, а neovim ещё не существует. Ну, то что есть на данный момент -- это просто vim с пририсованным ему карандашным наброском перспектив развития.
"Заточить язык под себя" и компиляция Lua в Lisp (ты точно это имел в виду?) связаны между собой чуть менее, чем никак.
> "Заточить язык под себя" и компиляция Lua в Lisp (ты точно это
> имел в виду?) связаны между собой чуть менее, чем никак.И конечно же ты лучше меня понимаешь, что связано как, а что никак.
Не вижу разницы между анонимными аналитиками с Опеннета.
> Взаимодействие с плагинами производится в асинхронном режиме, без блокирования базовых компонентов редактора.
>Но ведь есть Emacs.Но ведь все знают, что редактор текста туда ещё не завезли ...
PS: :-p
Хорошая штука, ей только текстового редактора не хватает...
Учитывая бибикающую музыкальность vim'а актуальней не текстовый, а нотный редактор...
Всегда удивлялся тому, что бывают *nix-администраторы, которые ненавидят vi/vim/emacs (сам одного такого знаю).
Да, чтобы уметь пользоваться ими надо книжку почитать и дружить с английским языком.
Но нет, надо же утверждать, что vi* умеет либо бибикать, либо портить.
А я всегда удивлялся, что есть люди которые могут не ненавидеть это преступление против юзабилити.
Ну да, хреново у него с юзабилити, но лучше-то всё равно ничего нет.
> А я всегда удивлялся, что есть люди которые могут не ненавидеть это
> преступление против юзабилити."юзабилити" это когда вместо интерфейса одна большая кнопка "сделать Хорошо"?
Если за этой кнопкой большая нейросеть и очень много данных о пользователе, то в типичном случае это идеальное юзабилити.
> Если за этой кнопкой большая нейросеть и очень много данных о пользователе,
> то в типичном случае это идеальное юзабилити.
#>>одна большая кнопка "сделать Хорошо"?
> Если за этой кнопкой большая нейросеть и очень много данных о пользователе,
> то в типичном случае это идеальное юзабилити.
Не путайте юзабилити и уровень вхождения
Все у него хорошо с юзабилити, просто юзабилити там нестандартное. :)Зато когда нейронные связи прорасли в спинной мозг, пользоваться стрелочно-ориентированными редакторами становится решительно невозможно, по крайней мере - ужасно непродуктивно. Я даже в JetBrains-овских IDE сразу IdeaVim-плагин ставлю.
Всегда удивлялся, почему админами называют кого попало...
> Но нет, надо же утверждать, что vi* умеет либо бибикать, либо портить.А EMACS - это сокращение от Escape-Meta-Alt-Control-Shift! :)
и это только одной рукой. три остальных в это время заняты другими клавишами
Вот и я удивляюсь... Когда я бытался использовать его для кодинга на python - я его ненавидел. Когда появилась необходимость править конфиги на серверах, на которых кроме меня работали и мои коллеги - я оценил всю простоту и мощь vim. Одно то, что в нём можно делать такvim some_file +line_num
а таже то, что он предупреждает когда кто-то до тебя изменил файл и предлагает варианты решения подобной ситуации, делает его незаменимым для системных администраторов. Я боюсь себе представить, что делают в таких ситуации с возможным парралелльным редактированием одних и тех же конфигов на одном сервере в организациях, где используют nano или другой редактор вместо vim...
> vim some_file +line_numосталось только найти редактор, который так не может
> Одно то, что в нём можно делать так
> vim some_file +line_numВы не поверите... Вот сейчас прямо, отвечая на Ваше сообщение, я нажимаю специальный хоткей, который открывает мне текст поля для ввода в редакторе путём запуска команды:
emacs +<line>:<column> <file>> а таже то, что он предупреждает когда кто-то до тебя изменил файл
> и предлагает варианты решения подобной ситуации, делает его незаменимым для системных
> администраторов.Ага, ага. Emacs.
> Я боюсь себе представить, что делают в таких ситуации с
> возможным парралелльным редактированием одних и тех же конфигов на одном сервере
> в организациях, где используют nano или другой редактор вместо vim...Ну у меня тут всё просто: все образы систем, с которых мы новые виртуалки создаём, я подтюнил, поставив туда emacs. :)
PS: vim, кстати, я тоже поставил; в нашей конторе люди всё-таки вместе работают, а не занимаются холиворами о текстовых редакторах
> он предупреждает когда кто-то до тебя изменил файлТак даже gedit умеет.
> Хорошая штука, ей только текстового редактора не хватает...Самое Важное http://www.opennet.me/openforum/vsluhforumID3/111044.html#11 уже есть.
Они уже научили его би-би-кать.
действительно было бы здорово, чтобы везде, где можно была поддержка интерфейса, как в vim. если neovim действительно упрощает решение этой важной для общества задачи, то честь и хвала его разработчикам.
а пакетный менеджер там есть? чтобы плагины одной командой устанавливать
https://github.com/junegunn/vim-plug хорошо умеет работать по Neovim (как и под обычным вимом).
"На словах" - планировался, но не всё сразу. Ну и несильно надо, т.к. Vundle и Pathogen - поддерживают (ЕМНИП) neovim.
Для текущих задач - https://neovim.io/roadmap
И не один: Vundle, NeoBundle, VimPlug, Pathogen, Dein и другие. В случае к примеру с Vundle обновление плагинов происходит по команде `nvim +PluginUpdate`, ну или прямо с самом виме: `:PluginUpdate`.
VAM!P.S. Пока в них разберёшься, офигеешь. В том плане, что "тысячи" их. И выбрать по вкусу - дело часа, а то и двух.
В таких случаях я рекомендую бросать кубик, а уже потом, если чем-то недоволен, можно копать в сторону другого. Я в принципе сам таким образом выбрал Vundle, и не утруждаю себя изучать какой-то другой, т.к. он работает и кушать не просит. Я слышал что dein это делает быстрее за счёт параллелизации, но мне пока просто лень копаться, т.к. PluginInstall/PluginUpdate это не самая частая команда.
Плюсую. Часто install/update вообще раз в пятилетку можно делать.
> Vundle, NeoBundle, VimPlug, Pathogen, DeinUmhir deln Fshofth, Du saq mishallfen
Ersan su stramanlisa du saq verhallfen
Itor ka skirian, thror qastura taras
Wur qanar wur stilor wur kas
Ты звал и я пришел, чего хочешь?
Скоро systemd завезут
>модернизированный вариант редактора VimТеперь может бибикать в стерео!
Можно сделать из этого полноценный громадный графический IDE?
Да, помимо стандартной обвески тысячей плагинов, посмотри например на один из гуев для Neovim: https://github.com/extr0py/oni любой gui для neovim потенциально расширяем до размеров твоей фантазии и желания писать кот. Для neovim также существует асинхронный интерфейс remote-плагинов, то-есть плагинов, которые работают в отдельных процессах и коммуницируют с Neovim по спец. протоколу (я сам к пример пользуюсь deoplete), и написан такой плагин может быть на чём угодно, вот к примеру биндинги на haskell: https://hackage.haskell.org/package/nvim-hs
Подскажите, уважаемый. Вы намекали в одном из ответов, что конфигом можно избежать как сумасшедший давить при любом пуке на Esc.
И таким образом не только выигрывать в сложных задачахх, но и не проигрывать в простых (начнем с esc-u, esc-u против ctrl, z,z,z,z)
Верно вас понял?
Т.е. можно ли прикрутить ctrl+c на копирование, вместо esc+u?
да(нет)
Можно добавить Vim в существующие громадные графические IDE
https://plugins.jetbrains.com/plugin/164-ideavimhttp://stackoverflow.com/questions/2220653/what-vim-plugins-...
http://stackoverflow.com/questions/12306816/vim-plugin-for-n...
>обеспечена полноценная поддержка платформы WindowsКраш на каждый чих
Переход от с к с++ - ошибка, привязка к спорным стандартам (мсгпак) - ошибка. Хоть и взлетел, но не айс.
Не вводите людей в заблуждение: его переводят на c11, а не на c++.
Можно ли прикрутить ctrl+c вместо esc+u?
Прошу, без глупых "зачем".
:inoremap <C-C> <Esc>ui
Да.
Спасибо!
в гвиме можно, а вот в консоле его перехватывает сам терминал.
Что именно он у вас перехватывает, в какой консоли и какой терминал?
А то помню несколько лет назад я очень удивился, когда в одной организации обнаружил на всех серверах в конфиге vim бинд ctrl-z на undo. После вопроса: "Какого ... и что же вы используете для suspend вместо этого?" оказалось, что там ни один админ не знал про дефолтное действие ctrl-z в никсах.
Ну и сейчас быстро проверил, ctrl-c и ctrl-z без проблем можно забиндить в консольном vim и никто ничего не перехватывает.
Файл более 10G он умеет открывать?
Исходники винды нашёл?
10 грам - фигня.
Плюсую вопрос, ибо только joe умеет работать как надо. Последним и пользуюсь.Для неопытных, достаточно открыть логфайл на 500мб и сразу словите туеву тучу тормозов, а редакторы типа joe откроют мгновенно и не слопают овер-тонну памяти.
> Из проблем systemd, побудивших к созданию Neosystemd, отмечается раздутая
> монолитная кодовая база, состоящая более чем из 900 тысяч строк кода на языке Си.
> Во всех нюансах кодовой базы systemd разбирается всего несколько человек, а все изменения контролирует один мэйнтейнер
>fix из будущего
Тонко и элегантно.
Давно уже этого с нетерпением жду.
Этот neovim только юникод и поддерживает. vim, в отличие от него, читает локаль и автоматически переключает кодировку, поддерживая в т.ч. и однобайтные кодировки.
Слава KOI-8!
Посоветуйте нормальный IDE консольный?
GNU
> Посоветуйте нормальный IDE консольный?Для тебя - notepad.exe
motor. http://thekonst.net/articles/en/freeos.intro.html , https://github.com/rofl0r/motor .
> motor. http://thekonst.net/articles/en/freeos.intro.html , https://github.com/rofl0r/motor
> .*cмотрит на ник* -- дайте угадаю, оно последний раз релизилось лет 15 назад, не умеет в utf-8, только в кошенрый koi8-r?
>> motor. http://thekonst.net/articles/en/freeos.intro.html , https://github.com/rofl0r/motor
>> .
> *cмотрит на ник* -- дайте угадаю, оно последний раз релизилось лет 15
> назад, не умеет в utf-8, только в кошенрый koi8-r?глянул, последняя версия 3.4.0 ажно 2005 года, предлагает на выбор ручной Makefile или autotools и кошеный СVS в качестве VS. И да, утф не жрет, выдает крякозябры.