Как сделать так, чтобы массивы Ruby% i были правильно выделены в Vim? - PullRequest
2 голосов
/ 26 мая 2019

Мой Vim не выделяет относительно новый синтаксис %i.Вот пример:

enter image description here

Я включил пример %w, который работает правильно, чтобы показать желаемый эффект.

Какможно заставить Vim правильно выделить %i?

Ответы [ 2 ]

1 голос
/ 26 мая 2019

Если вы введете :syn ⏎ в режиме управления при редактировании любого файла ruby, вы увидите все определения синтаксиса (или откроете общесистемную тему синтаксиса для ruby ​​/usr/share/vim/vim81/syntax/ruby.vim или где он находится.)

Ответственный за %i[] будет rubySymbol.

%i[] отнюдь не «относительно новый», проблема в том, что ваша цветовая тема не выделяет символы по-разному. Не только литералы, все символы. Run:

:hi rubySymbol term=bold ctermfg=Red

и вы увидите, что это прекрасно работает. Вы можете настроить его в соответствии со своими потребностями (см., Например, rubyString для вдохновения) и поместить это где-нибудь в свой ~/.vim/syntax/ruby.vim.

0 голосов
/ 26 мая 2019

По умолчанию Vim по-разному выделяет строковые и символьные разделители Ruby.Строковые разделители выделяются как тип Delimiter, а разделители символов выделяются так же, как и символы, которые по умолчанию имеют тип Constant.

Если вы хотите выделить %i иВ скобках, аналогично %w, вы можете запустить следующую команду:

:hi link rubySymbolDelimiter rubyStringDelimiter

Если вам нравится этот параметр, вы можете поместить его в файл с именем .vim/after/syntax/ruby.vim, и он будет автоматически выбран всякий раз, когдаСинтаксис Ruby включен.

Обратите внимание, что в более новых версиях Vim указанная выше команда также вызывает выделение двоеточия перед символом так же, как и %i.Эта функция не настраивается, поскольку они оба используют группу совпадений rubySymbolDelimiter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...