2013-03-25 25 views
8

Wiem, że mogę użyć zestawu list listchars=..., aby wyświetlić znaki NonText i SpecialKey w celu wyróżnienia różnych rodzajów znaków dobrze, również nietekstowych. Generalnie jest to proste i działa. Ma jednak wizualny efekt uboczny, który przeszkadza mi - podczas gdy "najechanie" kursorem na linię, gdy kursor ustawiony jest na listchars, jest podświetlony w innym kolorze. Problem został już wspomniany w this thread i nie wydaje się, aby można było obejść to zachowanie.Ustaw widoczność i/lub kolor listcharów lub ukryj cchar w vim, gdy kursor podświetla linię

Jako uwaga zacząłem grać z funkcją ukrywania, która daje mi mieszane rezultaty. set concealcursor=n||v||i||c pozwala mi kontrolować, w których trybach ukryte znaki są widoczne. Chcę być w stanie zobaczyć ukryte znaki zawsze tak skonfigurować następujące:.

function! ConcealNonText() 
    set conceallevel=1 
    set concealcursor=nvic 
    syntax match NonText// conceal cchar=· 
endfunction 

augroup ConcealNonText 
    autocmd! 
    autocmd VimEnter * call ConcealNonText() 
augroup END 

W rezultacie podkreśla wszystkie przestrzenie, które są sprecyzowane widoczny bez względu na tryb, w którym jestem obecnie w Ale znowu nie jest niepokojący efekt uboczny - gdy zaznaczam linie w trybie wizualnym lub podkreślam linię kursorem, obszar podświetlania zostaje przerwany w miejscu znalezienia ukrytych znaków. Wystarczy zobaczyć zrzuty ekranu:

tryb Visual z wybranego obszaru:

Vim concealed characters in visual mode

trybie normalnym z cursorline:

Vim concealed characters in normal mode with cursorline

Pomyślałem więc spróbujmy set concealcursor=ic. Powoduje to nieprzerwane podświetlone obszary, ale wtedy znaki są ukryte.

enter image description here

Więc jest tam gdzieś i jakoś rozwiązaniem wokół do wątku, o którym wspomniałem na początku tego postu czy jest jakiś sposób, aby cursorline i wizualnych wybranych obszarach nieprzerwanych podczas korzystania set concealcursor=nvic?

+1

Poprawka, która implementuje zmianę, została zaproponowana na [liście dyskusyjnej vim_dev] (http://www.vim.org/community.php): [wyświetlanie znaków listy na linii kursora i trybie wizualnym] (https : //groups.google.com/d/msg/vim_dev/oYeTcHINrrg/u4NmKV8pmGcJ) –

+0

@IngoKarkat Hm, wygląda obiecująco. Jakie są szanse, że uda nam się to osiągnąć? – Saucier

+1

Możesz zwiększyć szanse, testując je i dzieląc się swoimi wynikami na vim_dev. Prawdopodobnie jeszcze zajmie to trochę czasu, backlog jest ogromny. –

Odpowiedz

0

Uważam, że masz zestaw "kursor". Grupa podświetlenia CursorLine definiuje podświetlenia dla tego samego. Albo set nocursorline, (który może przyspieszyć ruchy linii) lub zmienić CursorLine grupy kolorów zaznaczenia.