Различный цвет фона для нескольких типов файлов в vim


10

Возможно ли иметь разные цвета фона в vim (т. Е. Один свет, один тёмный) при работе с файлами с несколькими типами файлов (т. Е. :set ft=html.php)? В PHP-коде со встроенным HTML может быть трудно увидеть один-единственный оператор PHP среди десятков строк HTML, см. Ниже. Я согласен на что угодно, будь то другой цвет bg, маркер на полях, второй левый край (один плагин vim делает это для меток), возможно, выделение <?phpтега, например (хотя это не идеально)

PHP в HTML-код

РЕДАКТИРОВАТЬ: я не думаю, что это возможно на уровне синтаксиса, поскольку синтаксис, кажется, использует ограниченное количество элементов (String, Function, Identifier ...). Это, без сомнения, позволяет легко интегрировать с цветовыми схемами. SyntaxAttr - хороший плагин, чтобы продемонстрировать это. Поместите его поверх любой части кода, и он скажет вам, к какой группе синтаксиса он принадлежит.


Возможно, вы могли бы использовать то же решение, что и в этом посте stackoverflow.com/questions/4167425/… где они создают собственную цветовую схему, которая выделяет любую строку, начинающуюся с sql_.

1
Я посмотрю, смогу ли я заставить его обнаруживать регионы между PHP ?>и <?без него.
Пук

Ответы:


1

Другое потенциальное решение - настроить ваш любимый файл colorscheme, чтобы проверить настройку «background». Многие устанавливают настройку «фона» так или иначе, но ее можно проверить, чтобы изменить цвет подсветки.

Пример схемы цветов


" Search
if &background=="dark"
  hi IncSearch    gui=UNDERLINE guifg= ctermfg=
else " background is light
  hi IncSearch    gui=UNDERLINE guifg= ctermfg=
fi


Есть ли способ проверить язык слова / символа? т.е. если это HTML v PHP?
PUK

Вроде как зависит. Вы можете проверить тип подсветки для конкретного слова. И если бы можно было различить HTML и PHP, вы бы знали. Но я думаю, что это лучшее, что вы получите без большой дополнительной работы. Используйте что-то вроде следующего, чтобы получить тип подсветки:: echo synIDattr (synID (line ("."), Col ("."), 1), "name")
pottsdl
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.