Size: a a a

2021 May 28

YS

Yaroslav Schekin in pro.vim
Да невыгодно это Вам, если Вы пользователь neovim-а (и они наотрез отказываются принимать vim9script)!
"Сюрприз", о котором я упоминал, состоит в том, что runtime vim уже потихоньку начали переписывать на vim9script... и угадайте, откуда neovim берёт свой runtime? ;)

> чем больше общих фичей, тем лучше экосистема плагинов.

Только как-то всё больше авторов заявляют "к чёрту этот vim, я пишу только под neovim" и наоборот. :(
источник

goldstein опять in pro.vim
Шейринг runtime между Vim и NeoVim происходит в обе стороны, но довольно вяло. Также NeoVim потихоньку перетаскивает свой runtime на Lua. Через некоторое время они просто разойдутся окончательно.

Потому что — как контрибьютор в плагины говорю — на Lua писать реально гораздо проще и приятнее. Если я сам сижу на 0.5, я не хочу поддерживать Vim, потому что это требует от меня писать на странном и неудобном языке.
источник

goldstein опять in pro.vim
Если Vim9Script взлетит, то точно такая же логика будет у авторов плагинов под Vim и экосистема всё-таки разъедется на две отдельные. Впрочем, есть некоторая надежна на vim9jit.
источник

YS

Yaroslav Schekin in pro.vim
> Шейринг runtime между Vim и NeoVim происходит в обе стороны, но довольно вяло

Хмм... о чём Вы?
До недавних пор NeoVim "сдирал" runtime с vim практически подчистую (и да, я знаю, я сравнивал... 4 месяца назад, правда).

> Потому что — как контрибьютор в плагины говорю — на Lua писать реально гораздо проще и приятнее.

Вопрос мнения. У меня — противоположное. ;)
И да, тут как-то уже пытались демонстрировать, и Lua (именно для vim scripting!) выглядела "бледнее", IMHO.

> потому что это требует от меня писать на странном и неудобном языке.

Лично меня сам язык (какой бы он ни был) как-то не впечатляет. А вот то, что доступ хоть из Lua, хоть из vimscript примерно всё к тому же "гениальному" API — совсем другое дело. :(
источник

G

GNU/Vsevolod in pro.vim
Какой смысл в has('gui_running'), если гуи существуют отдельно, общаясь по mpack? has('headless_running') было бы логичней
источник

goldstein опять in pro.vim
Lua просто в общем адекватнее.
Одни правила эскейпинга в VimScript это что-то безумное. Для каждой команды свой индивидуальный синтаксис, который нужно запоминать. Я не хочу этого делать.
Собственно, если бы это было не так, Vim9Script не отличался бы от VimScript так разительно — для скорости было достаточно добавить аннотации типов. С тем, что VimScript неудобный согласны все, начиная с самого Bram.
источник

goldstein опять in pro.vim
API NeoVim меня тоже устраивает больше, потому что это именно API с консистентной системой, а не мешанина из команд, опций, функций и переменных, которая выглядит так, как она выглядит, по историческим причинам, а не по разумным.
источник

goldstein опять in pro.vim
Нет никакой хорошей причины, почему сравнения учитывают 'ignorecase', об этом нужно просто помнить.
Нет никакой хорошей причины, почему аргументы объявляются без a:, а используются с a:, это просто наследие.
Нет никакой хорошей причины начинать каждую continuation line с бэкслеша, так просто получилось.
Нет никакой хорошей причины, почему функции передаются через строки, это просто история.
Нет никакой хорошей причины, почему функции нужно вызывать через :call, просто VimScript не проектировался как язык, это был просто способ сохранить набор команд.
источник

goldstein опять in pro.vim
Собственно, всё, что я перечислил, пофиксят в Vim9Script — но пока Vim9Script не особо живой, нужно либо мириться с этим, либо использовать NeoVim и Lua.
источник

G

GNU/Vsevolod in pro.vim
Все равно такие важные вещи как маппинги, автокоманды (за опции не уверен) в луа пока что с кусками вимскрипта
источник

goldstein опять in pro.vim
Только автокоманды
источник

goldstein опять in pro.vim
И маппинги, и опции делаются из чистого Lua
источник

goldstein опять in pro.vim
:h nvim_set_option и семейство
:h nvim_set_keymap и семейство
источник

V

Vim Help in pro.vim
источник

G

GNU/Vsevolod in pro.vim
А как объяснить bo/wo/g и setlocal/set (3 vs 2)?
источник

V

Vim Help in pro.vim
источник

goldstein опять in pro.vim
setlocal это магия, которая смотрит в список опций, определяет, какой тип у нужной и выставляет её
источник

goldstein опять in pro.vim
Это полезная магия, и её сейчас допиливают, но жить можно и без неё
источник

goldstein опять in pro.vim
Аналогично set
источник

G

GNU/Vsevolod in pro.vim
Т.е. setlocal — bo/wo в одном?
источник