2011-11-29 12 views
12

Właściwie chciałbym wyświetlić -> z (jest spacja po strzale) w plikach haskell. Ale mam wrażenie, że mechanizm ukrywania działa tylko po to, aby zastąpić -> przez jeden znak. Niepożądanym efektem jest wizualnie złe wcięcie.vim ukryj z więcej niż jednym znakiem

Czy istnieje sposób, aby to osiągnąć?

Dzięki.

Edit: Właściwie używam tego (z haskell.vim (ukryć akcesorium) wtyczki)

syntax match hsNiceOperator "<-" conceal cchar=← 
+0

Jaki jest Twój sposób na zastąpienie jednej postaci drugą? –

+0

Edytowałem swoją odpowiedź, właściwie używam ukrytego mechanizmu służącego do podświetlania składni – yogsototh

+0

czy możesz opublikować kompozycję z "" → "' - wydaje się być niezbędna do tego pytania? – sehe

Odpowiedz

16

zrobić dokładnie to, co chcesz w C. Sztuką jest ukryć każdy znak oddzielnie, tak jak poniżej:

syn match ArrowHead contained ">" conceal cchar=▶ 
syn match ArrowTail contained "-" conceal cchar=─ 
syn match ArrowFull "->" contains=ArrowHead,ArrowTail 

Może się okazać, że ArrowHead lub ArrowTail zostanie dopasowany poza ArrowFull, niestety. Dzieje się tak, ponieważ istniejące reguły składni używają contains=ALLBUT,... lub czegoś podobnego.

Aby naprawić to w C, dodałem ArrowTail i ArrowHead do klastra cParenGroup, co wydaje się zapobiegać wszelkim problemom.

syn cluster cParenGroup add=ArrowTail,ArrowHead 

Być może trzeba będzie zrobić coś podobnego dla Haskella.

Ponieważ nie używać funkcji ukryć w ogóle inaczej, mówię Vim iść do przodu i „ukryć” strzałki CAŁY czas:

set conceallevel=1 concealcursor=nvic 

BTW, jeśli nie lubisz domyślnych kolorów aby ukryć znaki, możesz zmienić je tak:

hi conceal ctermfg=DarkBlue ctermbg=none guifg=DarkBlue guibg=none 
+0

"ponieważ istniejące reguły składni używają' zawiera = ALLBUT, ... 'lub coś podobnego." : użyj 'zawartych = StrzałkaFull' na końcu' syn match ArrowHead [...] 'i' syn match ArrowTail [...] ', następnie. – user2987828

+0

@ user2987828 To nie działa dla mnie w Vim 7.4. Dostaję fałszywie pozytywne ArrowHeads i ArrowTails wewnątrz #defines. – superjer

Powiązane problemy