Vim: цвет символов C ++ - PullRequest
       18

Vim: цвет символов C ++

1 голос
/ 18 сентября 2009

VIM: можно ли изменить цвет этих символов: ! ~% ^ & * () - + = [] {} <>:.? /; как в Visual Studio?

Ответы [ 2 ]

5 голосов
/ 18 сентября 2009

Синтаксис C / C ++ определяется в синтаксисе / c.vim и синтаксисе / cpp.vim. Если вы используете Linux, основной каталог синтаксиса находится в / usr / share / vimXX /, где XX - версия (например, моя - в vim72). Я не знаю об установочных каталогах на других ОС, но я уверен, что вы можете найти их. Я бы предложил скопировать их и поместить в вашу пользовательскую директорию vim (например, в Linux, $ HOME / .vim / syntax / c.vim и т. Д.). Затем вы можете добавить все, что вам нравится.

Синтаксис C ++ является источником синтаксиса C, поэтому любые символы, которые вы хотите выделить в обоих, должны идти в c.vim, а все, что только для C ++, должно быть в cpp.vim.

Чтобы получить подсветку синтаксиса для определенных символов, вам нужно использовать оператор сопоставления синтаксиса, например:

syn match cUserSpecialCharacter display "[~!%^&*()-+=[\]{},.<>?:;]"
syn match cUserSpecialCharacter display "/[^*/]"me=e-1
syn match cUserSpecialCharacter display "/$"

Я назвал это cUserSpecialCharacter, поскольку cCharacter и cSpecialCharacter уже используются. Второе и третье совпадения являются небольшим препятствием для выделения '/' без сопоставления префиксов комментариев, что затем переопределяет выделение комментариев и прерывает все. Опция «display» сообщает Vim, что ему не нужно искать это совпадение, если оно не будет отображаться - см. :help syn-display объяснение, если хотите!

Как только вы определили совпадение синтаксиса, вы можете связать его с группой выделения, например:

hi def link cUserSpecialCharacter cCharacter

Это поместит его в уже определенную группу cCharacter, так что он получит любое выделение - в данном случае Character. Вы можете увидеть хороший список групп подсветки в нижней части c.vim для примеров. Если вы действительно хотите, вы также можете жестко кодировать выделение, выполнив что-то вроде:

hi cUserSpecialCharacter term=reverse ctermfg=15 ctermbg=1 guifg=#ffffff guibg=#800000

(Произвольный пример - мое текущее выделение для группы Error.) Подробнее об этом см. :help hi или просто :hi, чтобы увидеть список определенных выделений - множество примеров. Я бы рекомендовал не делать этого, так как это не изменится с цветовыми схемами.

0 голосов
/ 18 сентября 2009

Да, вам нужно отредактировать цветовую тему C в vimfiles / colors / c.vim. Я не знаю всех параметров темы, которые можно использовать, но я уверен, что они задокументированы на http://vim.org/

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