LINUX.ORG.RU

Новая эра Vim

 ,


0

2

Всем привет. Такие вот размышления и вопросы появились. Брэм в vim скоро добавит такую вещь как :h textprop. Кто не знает, то в виме одним из легаси недостатков остается подсветка на регулярках, которая весьма тормозит особенно на однострочных файлах. Так вот вот эта вещь позволит использовать внешние утилиты для подсветки не основанные на регулярках. Но недавно узнал, что neovim (сам являюсь его юзером, последнее время скорее всего только из-за полноценных всплывающих окон, в вим они реализованы как окна, на которые нельзя перейти к примеру с помощью C-w w) внедряет свою подобную вещь реализованную абсолютно по другому. То есть если до этого основной проблемой (по крайней мере для плагинописателей) была небольшая разница между реализацией асинхронности, то теперь еще и это до кучи будет.

Кто что думает, что ждет вим и его форк, и кто в этом преуспеет больше? Вот тут кратко о реализации этой вещи в neovim https://www.reddit.com/r/neovim/comments/deb4j5/hastextprop/

Ну а вообще конечно круто что скоро можно будет избавиться от старой подсветки в коде.

Кто что думает, что ждет вим и его форк, и кто в этом преуспеет больше?

Какой-то дурацикий вопрос. Типа, кто будет следующим президеном США. Никто сейчас тебе на это ничего интересного сказать не сможет.

anonymous ()
Ответ на: комментарий от commagray

Пускай сначала сделают. Сейчас у каждого говна есть модный сайт.

anonymous ()
Ответ на: комментарий от anonymous

Ну я больше к тому, что это еще больше раскол юзеров сделает. То есть пока еще грубо говоря можно чуть ли не копировать .vimrc и .init.vim между собой и почти все может кроме пары строк должно работать. Че они там намутят с этими подсветками по итогу не понятно. Ну и textprop не только для подсветок годится, а для других вещей для парсинга кода. А вот что там неовимовцы мутят пока не понятно.

StillSteal ()
Ответ на: комментарий от anonymous

Свистнешь через полтора года, если эта поделка не загнется Each commit that makes it to master will be dual-licensed under the permissive MIT license after 18 months Да и вообще, я все равно не верю, что в этом поделии реализую что-то более-менее адекватное виму(чтобы commandline был, undo, :g :s и так далее. А так простого вим управления в любом иде.

StillSteal ()
Последнее исправление: StillSteal (всего исправлений: 1)

Я давно свалил на neovim. Автор vim слишком долго страдал херней и только когда возникла угроза, что все юзеры свалят на форк, начал шевелиться. Не одобряю такого поведения, дорогу молодым, короче.

Im_not_a_robot ★★★★★ ()

Ну а вообще конечно круто что скоро можно будет избавиться от старой подсветки в коде.

Думаю, что нельзя будет. Как максимум результаты регулярок будут кешироваться свойствами текста. Тут надо понимать, что подсветка вещь динамическая и сильно меняется по мере ввода текста, её нельзя просто так один раз получить от внешней утилиты и всё.

Мне на разницу с neovim плевать, я им не пользуюсь и не собираюсь, так как толку не вижу, а недостатки в виде модно-молодёжности и поломки совместимости (:!nvim не работает, например) есть.

xaizek ★★★★★ ()
Ответ на: комментарий от Im_not_a_robot

Там был прикольный момент, я отправил баг, не сильно критичный, но всё ж таки. Неправльный подсчёт пробелов в статус баре. На это мне был официальный ответ:

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

anonymous ()
Ответ на: комментарий от xaizek

Это уже можно. Чекай https://tree-sitter.github.io/tree-sitter/ к примеру. Не говоря уже о куче вещей реализованной на этом https://en.wikipedia.org/wiki/Parsing_expression_grammar, тот же vis летает на luaPEG пусть и не такой кастомизируемый как вим подстветка.

StillSteal ()
Ответ на: комментарий от StillSteal

Each commit that makes it to master will be dual-licensed under the permissive MIT license after 18 months

Вообще это единственный нормальный вариант применения открытой разработки в подобного рода проектах.

То есть чтобы можно было одновременно и открывать и зарабатывать.

anonymous ()
Ответ на: комментарий от StillSteal

Я предзаказал. Пока сыро, но перспективно — вот и наблюдаю за развитием.

commagray ★★★★★ ()
Ответ на: комментарий от anonymous

Впрочем, я их зря «похвалил». По уму надо было так:

  • первые 18 месяцев - код проприетарен и не виден.
  • потом - смена лицензии и «виден».

Рни выбрали немного другой вариант: что код «виден» сразу. Это довольно рискованно.

anonymous ()
Ответ на: комментарий от commagray

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

SR_team ★★★★★ ()

перебрался на neovim несколько лет назад, когда там были асинхронные плагины, а в vim - не было. Заменил YCM на deoplete и подумал «а что, так можно было?» Плюс не приходилось беспокоиться, скомпилировано ли оно с поддержкой python3 в этом дистре.

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

anonymous ()

Ничего не понятно, но очень интересно.

mord0d ★★★★★ ()
Ответ на: комментарий от Cirno

Пробовал его как-то. Ну когда уже привык к виму, то даже такая хорошая алтернатива как емакс с эвил модом ну не то. То того не хватает, то это не удобно и так далее. Ну и у емакса те же проблемы, те же регулярки для подсветки, да и до 27 версии емакс наполовину синхронный, так что в этом плане вим выигрывает.

StillSteal ()
Ответ на: комментарий от StillSteal

Я знаю о tree-sitter, но сомневаюсь, что его будет кто-то встраивать в Vim. С PEG аналогично, да и не знаю, есть ли там достойные парсеры, которые не будут ломаться на раз-два.

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

А зачем его встраивать? Когда будет возможность подсвечивать синтаксис с помощью textprop просто в виде плагинов будет реализовано, думаю брэм для этого и реализует эту вещь и ограничивать выбор определенного парсера он не будет.

StillSteal ()
Ответ на: комментарий от StillSteal

Так суть tree-sitter же в том, что он не парсит заново весь код при изменении. Если дёргать его отдельно, то для работы оптимизации нужен будет какой-то сервер ещё.

Брам это делает и для подсветки в том числе, как он говорил на презентации. Но лично мне идея асинхронной подсветки не очень нравится в принципе. Это же будет не оптимизация подсветки, а её откладывание, но просто без блокирования ввода. Так что как лучшую замену регуляркам мне это не видится.

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

Регулярки обновляются при любом добавлении хоть одной буквы или удалении. А еще подсветка на регулрках с cursorline тоже обновляется постоянно при любом перемещении курсора, даже в пределах экрана. textprop на сколько я понял будет обновлять добавленные/измененные линии и не обновляться постоянно при перемещении курсора. Корчое поживем - увидим.

StillSteal ()
Ответ на: комментарий от anonymous

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

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

anonymous ()
Ответ на: комментарий от StillSteal

Ну я больше к тому, что это еще больше раскол юзеров сделает.

Так и хорошо, пусть конкурируют. Неовим уже дал хорошего пинка виму, экосистема сильно улучшилась за последние годы, а то бы до сих пор ковырялись в носу. Если вим где-то вырвется вперед, это уже для хипстеров вызов. А то они там пошуршали дилитом и успокоились было, но сейчас снова разработка оживилась. Так и будут друг друга подгонять.

anonymous ()
Ответ на: комментарий от xaizek

Я знаю о tree-sitter, но сомневаюсь, что его будет кто-то встраивать в Vim.

А в Neovim поддержка tree-sitter уже в следующем релизе появится.

Vovka-Korovka ★★★★★ ()
Последнее исправление: Vovka-Korovka (всего исправлений: 1)
Ответ на: комментарий от anonymous

Спорная позиция. И вообще, безотносительно тебя, МОЖЕТ БЫТЬ (не факт) ты чувак адекватный, но для меня люди употребляющие слово «хипстер» это как люди у которых на лбу написано «я долбоёб».

anonymous ()
Ответ на: комментарий от Vovka-Korovka

Что, простите? Может сразу перепрыгивать?

anonymous ()
Ответ на: комментарий от anonymous

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

anonymous ()
Ответ на: комментарий от anonymous

Не суди по себе. Просто «хипстер» - это дурацкое слово, которое можно навесить вообще на всё, что не похоже на говно мамонта.

Вот здесь человек очень верно написал: Кто такие хипстеры в вашем понимании? (комментарий)

anonymous ()
Ответ на: комментарий от anonymous

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

anonymous ()
Ответ на: комментарий от anonymous

Все местные старперы именно так и делают.

Молодец, мне даже не пришлось тебя обсирать, ты сам.

anonymous ()

Безусловно neovim хороший проект. Именно он дал пинка Брэму и тот начал работу над vim. Но я пока останусь на VIM, а там будет видно.

andreyu ★★★★★ ()
Ответ на: комментарий от anonymous

Заменил YCM на deoplete и подумал «а что, так можно было?»

У меня deoplete не прижился, а тормозной и прожорливый YCM работает до сих пор.

andreyu ★★★★★ ()
Ответ на: комментарий от anonymous

Заменил YCM на deoplete и подумал «а что, так можно было?»

Чуда не случилось. Не работает у меня deoplete как заявляет Шуго.

#include <cstdio>
#include <vector>

int main(void)
{
    std::vectro<int> v;
    v.std::vectro<int> v; // <--  эти две строки появились
    v.<vector>            // <--  после ввода «v.» и нажатия ctrl+space
    return 0;
}

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

Хз, как это чудо нужно конфигурировать, что бы оно даже на простом hello world заработало.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

У тебя опечатка в примере (vectro->vector), наверное, поэтому и не заработало. Попробуй лучше coc + ccls - у меня эта связка сразу показала ошибки в этом примере.

Vovka-Korovka ★★★★★ ()
Ответ на: комментарий от Vovka-Korovka

Там у этого кока на гитхабе надписи иероглифами. Что бы это значило? Может какие заклинания, порчу еще наведут. А через неделю кони двинешь.

anonymous ()
Ответ на: комментарий от StillSteal

Нормальный UI, например. Не все же на терминалах конца 70-ых работают, у некоторых на ПК даже графический сервер можно успешно запустить.

cherry_boy ()
Ответ на: комментарий от cherry_boy

Херли толку от бохатого UI, если там ввод лагает. Одно это множит на ноль все перделки. Думаешь мы в терминалах сидим из вредности?

anonymous ()
Ответ на: комментарий от anonymous

Нет, из-за сексуальной сублимации, по большей части.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.