2013-02-25 3 views
9

При использовании функции скрытия vim set cole=2, vim скрывает соответствующий текст для того, что настроено в cchar, и выделяет его с помощью группы Conceal.Vim Conceal highlight

Моя проблема заключается в том, что я использую скрывающую функцию в C/C++, чтобы заменить операции, такие как &&|| и т.д. для Юникода ⋀ ⋁ и т.д., и я также использует Concel в HTML, чтобы заменить текстовые объекты, такие как «& ccedil;» к "ç".

Так что я в ~/.vim/после/синтаксис/c.vim

hi clear Conceal 

и в ~/.vim/после/синтаксис/html.vim

hi Conceal cterm=NONE ctermbg=NONE ctermfg=darkblue 

Проблема заключается в том, что эти параметры являются глобальными. Если я открою файл c, а затем я открою html-файл, когда я вернусь в c-файл, группа Conceal будет выделена в соответствии с открытием последнего буфера.

Мой вопрос: могу ли я установить группу «Скрывать» для использования в чем-то отличном от Скрытия? Если нет, то как я могу сделать основные моменты для текущего буфера (а не глобально)?

ответ

7

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

Чтобы решить вашу дилемму, я бы выбрал одну подсветку для Conceal, которая настолько ненавязчива для вашего использования на C/C++, но визуально отличается, чтобы показать замененные элементы HTML. Для меня полностью очистка подсветки Conceal не предназначена для использования; он должен всегда служить напоминанием о том, что вы видите не что на самом деле в тексте.

+0

о, ну, тоже плохо. В любом случае, спасибо. – Akobold