2013-02-25 9 views
9

Podczas używania funkcji ukrywania vima set cole=2, vim ukryj odpowiedni tekst dla wszystkiego, co jest skonfigurowane w cchar, i podświetl go za pomocą grupy Ukryj.Vim Ukryj podświetlenie

Moim problemem jest to, że mogę korzystać z ukrycia funkcji w C/C++, aby zastąpić operacje jak &&||, etc dla Unicode ⋀ ⋁ etc, i ja też użyć concel w html do zastąpienia jednostek tekstowych jak "& ccedil;" do "ç".

Więc mam w ~/.vim/after/syntax/c.vim

hi clear Conceal 

oraz w ~/.vim/after/syntax/html.vim

hi Conceal cterm=NONE ctermbg=NONE ctermfg=darkblue 

Problem jest to, że te ustawienia są globalne. Jeśli otworzę plik c, a następnie otworzę plik html, po powrocie do pliku c podświetlona zostanie grupa Ukrywania zgodnie z ostatnim otworzonym buforem.

Moje pytanie brzmi: czy mogę ustawić grupę Ukrywania, aby była używana do czegoś innego niż Ukrywanie? Jeśli nie, w jaki sposób mogę wyróżnić poszczególne punkty bieżącego bufora (a nie globalnie)?

Odpowiedz

7

Nie możesz. Możesz ustawić :autocmds, aby przełączać podświetlanie grupy Conceal w zależności od bieżącego bufora, ale nadal będzie wyłączona dla nieaktywnych widocznych buforów drugiego typu. Ogólnie rzecz biorąc, grupy zaznaczeń są globalne i jest mało prawdopodobne, aby uległy zmianie.

Aby rozwiązać dylemat, wybrał jeden wyróżnienia dla Conceal, który jest wystarczająco dyskretny dla Twojego C/C++, ale wizualnie odrębny, aby pokazać zastąpione elementy HTML. Dla mnie całkowite usunięcie podświetlenia Conceal nie jest zamierzonym zastosowaniem; powinien zawsze służyć jako przypomnienie, że to, co widzisz, nie jest w rzeczywistości tym, co jest w tekście.

+0

o, cóż, szkoda. Mimo wszystko dziekuję. – Akobold