LINUX.ORG.RU

Разработка в vim/nvim и цвета

 , , , ,


0

2

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

И что я вижу? Что главная фишка расцветки не помогает! А именно:

"blah-blah blah
blah
blah blah

Такая конструкция обрывает подсветку цветом на верхней строчке, не показывая, что кавычки " не закрыты. А в Emacs/Helix/Kakoune всё хорошо, выделение цветом string продолжается, как и в примере выше.

Как победить в Vim/Nvim?

P.S. А ты крокодил, @Kostafey. Я твою статью ждал на тему редакторов пол года, а ты его в Talks, где ни Анона ни без скора не зайти, эх ты… Отрезал так много годных участников дискуссии! Исправляйся!

Такая конструкция обрывает подсветку цветом на верхней строчке

В vim есть папочка syntax, где хранятся правила подсветки для каждого типа файлов. Если тип файла определился корректно или указан ручками, то vim правильно определяет незакрытые кавычки/скобки.

1

2

iron ★★★★★
()

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

Я ещё понимаю в nvim, там LSP есть (но надо любить делать простые вещи километрами Lua, хотя и с дополнениями это неизбежно, потому что в основном они все полное говно в плане культуры разработки), но в vim довольно неудобно без этого будет.

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

Спасибо. И классно получилось, наглядно.
А как определить корректность типа файла?
Вот я открываю .js и не работает. Как это поведение прописать в конфиге?

Как это прописать для, допустим, 20 расширений? А лучше все, что заявлены.

masterOf
() автор топика
Ответ на: комментарий от vazgen05

Выше наглядно @iron всё показал. Вот как он показал - норма. Пока не закрыл, дальнейший текст воспринимается строкой. Но в большинстве случаев у меня это не работает.

masterOf
() автор топика

Решился начать писать код без кучи дополнений

а в чем сакральный смысл этого мазохизма? эти дополнения помогают не отвлекаться на осмысление опечаток или ошибок при написании кода. без них просто сильно больше времени тратишь на тот же объем кода

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

эти дополнения помогают не отвлекаться на осмысление опечаток или ошибок при написании кода.

Если я не закрыл строку, то хочу, чтобы подсветка мне подсказывала.

без них просто сильно больше времени тратишь на тот же объем кода

Я за количеством не гонюсь. Из дополнений я использую только fuzzy search buffer/file. Мне интерпретатор или компилятор подсказывает, если ошибся. На крайняк тесты или REPL.

masterOf
() автор топика

kakoune из коробки использует treesitter, насколько я помню. Vim без дополнений - не использует. Ну да, естественно в первом будет лучше работать подсветка.

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

А как определить корректность типа файла?

Открываешь файл, выполняешь: :set ft – в моем случае пишет: filetype=c.

Вот я открываю .js и не работает.

Открыл .js, выполнил команду, написало: filetype=javascript. Подсветка работает. Проделай тоже самое. Если у тебя не задетектит – попробуй выставить ручками: :set ft=javascript. Если не сработает, проверь полный ли vim установлен. Возможно ты поставил обкастренную версию, в которой нет syntax директории.

Как это поведение прописать в конфиге?

В ~/.vimrc за включение синтаксиса отвечает: syntax enable. Проверь, есть ли у тебя оно.

Как это прописать для, допустим, 20 расширений?

Ничего прописывать не нужно. При syntax enable в конфиге оно подгружает нужную подсветку исходя из расширения открываемого файла. Если открываемый файл с каким-то левым расширением – выставлять ручками через :set ft=...

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

Я ещё понимаю в nvim, там LSP есть

LSP есть там где его установят. Хоть nvim, хоть в vim. И ставится он одной командой. К тому же этих LSP валом, выбирай какой удобней.

но в vim довольно неудобно без этого будет

Если не городить излишеств (пытаться нагородить себе продвинутый IDE), то vim мало чем отличается от nvim. Я несколько раз пытался переползти на nvim и всякий раз приходил к тому, что все что мне нужно прекрасно работает в vim.

А если уж так хочется «продвинутости» – в инете есть куча готовых сборок, под любой ЯП, на любой вкус и цвет.

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

Этот ваш вим - он экран делить умеет?

Не только делить умеет, а еще и гибко ими управлять. Но тут сугубо дело вкуса. Кто-то нарезает области vim-ом, кто-то при помощи tmux, а кто-то и вовсе средствами тайлингового WM.

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

LSP есть там где его установят.

В neovim устанавливать не надо.

Если не городить излишеств (пытаться нагородить себе продвинутый IDE), то vim мало чем отличается от nvim.

Скоростью. Vimscript 9 улучшил ситуацию, но желающих на нём писать не то чтобы много. Но, как минимум, появился хороший и быстрый LSP-клиент на новом языке.

Я несколько раз пытался переползти на nvim и всякий раз приходил к тому, что все что мне нужно прекрасно работает в vim.

Я тоже предпочитаю vim сейчас. В neovim удручают дополнения (на Lua): 1) часто ломаются; 2) настраиваются, как правило, громоздким Lua-кодом, который периодически надо чинить (потому что ломается).

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

Ну, я использую первый и последний способы.

Я тоже, в зависимости от воркфлоу. Если нужно одновременной работать с двумя файлами, копировать из одного в другой, то проще открыть его в vim-е рядом: :vs file.txt. Если же просто открыть еще один файл, то в sway делю окно пополам и открываю файл в соседнем окне.

А еще в vim-е можно редактировать одновременно множество файлов открывая их в отдельных буферах. И потом, к примеру, делать замену одновременно во всех при помощи :bufdo .... В общем, куча возможностей и инструментов на любой случай.

iron ★★★★★
()

P.S….

Ну чего ругаться-то сразу? Я хотел про NeoVim было дело поподробнее написать (как, впрочем, и про VSCode), но постольку-поскольку довольно спонтанно вернулся в Emacs и с тех пор уже много воды утекло, многое подзабылось и на многие вещи уже гораздо спокойнее смотришь. Вот и получилось, что вместо запланированнго разбора просто обобщающий пост. Про невозможность участия анонимов… не знаю… По-моему на ЛОРе все еще жив тот старый-добрый ФИДОшный дух, когда человек не оценивается по цвету паспорта или по своим убеждениям. Так почему бы не зарегистрироваться?

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

А еще в vim-е можно редактировать одновременно множество файлов открывая их в отдельных буферах. И потом, к примеру, делать замену одновременно во всех при помощи :bufdo …. В общем, куча возможностей и инструментов на любой случай.

Я ТС, и я сразу использую Emacs server и открываю файлы с помощью всей мощи tiled wm. Вот только плюсов больше - не надо bufdo и все файлы воспринимаются в единой среде, работают все мыслимые сочетания (graphics mode), Sway был заменён на DWL после довольно внушительного допила плагинами. Но вот захотел Vim - надо настроить или выяснить по полной установке, хвалёный tree-sitter в neovim из коробки не работает и требует внимания. И неизвестно, как у него будет после установки TS с моим требованием.

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

а в чем сакральный смысл этого

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

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

Странный взгляд на инструменты разработки :). Когда работаешь в команде над проектом обычно нет времени пока все обучатся единому стилю или пока народ будет запятые по местам расставлять. Автоматизация этого не только ускоряет, но еще и обучает. Так, новый игрок в команде за короткий срок приобретает понимание как все пишут и со временем тулзы все меньше вносят правки в его код. Смотри на это как на автоматизированное «обучение с учителем».

ergo ★★★
()
Последнее исправление: ergo (всего исправлений: 1)
Ответ на: комментарий от masterOf

Так а чё ты быдлана включаешь, @anonymous-angler, есть что сказать? Или ты тот лошарик, который окромя клоуна и высказаться не может? Верю. Ты из треда в тред с парой быдланов бегаешь и тычешь свои клоуны. Ну и что, полегчало? Удивляет не клоун, а отсутствие с твоей стороны помощи или встречного вопроса.

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

Я ТС, отвечу так: ты заблуждаешься. Автоматизация ухудшает понимание, качество и концентрацию. Мы так устроены, что механическое повторение в мозговой и научной деятельности приносит конкретные плоды. Как пример возьмёмё китайчат. У нас это знали и заставляли в нормальных ВУЗах приносить конспекты, заполненные РУЧКОЙ!

Когда ты набираешь, ты прорабатываешь, начинаешь умнее давать названия (а у Табберов вообще это атрофируется), лучше понимаешь КАК оно работает. Это доказано многоми трудами по педагогике, психологии и т.д.

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

я считаю

Считай. А пацаны даже видос записали во время презентации Dotnet 8 с Neovim. Вышел ЯП, а IDE нет. Изменились правила ЯП, а цветовая тема не соответствует. Ту же Авалонию взять. Пока сами не запилили плагины, такие как ты профи не могли и строчки кода написать. Им слишком тяжело, если оно не дополняет.

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

Ну это не так плохо. Куда хуже быть тобой, ты то и с автодополнением и строчки кода написать не можешь. Правильно сделал что сюда клоуном устроился, хоть покекаем с тебя. Продолжай меня развлекать в общем 🤡

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

Новодибильный сленг и невозможность пройти мимо и не обгадить.
Я почитал твои комментарии под другими ветками. Бедненький.
Что, все пишут тебе гадости и не воспринимают как специалиста? Устроился на ЛОР шутом на пол ставочки и мнишь себя комиком?

Пойду за кубком для твоих слёз сбегаю) Любое меню - непрактичный шлак. Сблеванул от третьего скрина. Что бы так его заруинить - ещё нужно постараться. Напиши жалобу в спортлото) В утиль сдадут? Там ему и место. В твоей влажной фантазии разве что)

За 4 страницы ответов я увидел один возможно по делу с рекомендацией использовать TS и NestJS с ORM. Остальное как выше.

Но ты меня не развлекаешь. Нечем. Я просто решил выяснить,что за свора бегает по ЛОРу и тычет клоунов на тех вопросы. И вместо знаний… Я понимаю, время тяжелое, ты чувствуешь злобу на всех людей и тебе плохо отвечают на сообщения, не давая возможности подискутировать. Понимаю. :(

Как с тобой поступить? Элементарно, Ватсон! Игнор. Если игнор позволяет игнорировать и реакции, то мир буде поделён на до и после. Ты можешь оставаться таким же тупым, не создавай другим конкуренцию, и исходить на говно и дальше, никак не имея возможности забрызгать игнорирующего. Как говорицца - welcome!

anonymous
()

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

В принципе, я вообще как-то мало вижу смысла сейчас в использовании vim, особенно, если начинаешь с нуля, без накопленных знаний (львиная доля которых применима и в neovim) и без накопленной конфигурации/плагинов.

anonymous
()