2013-03-25 8 views
8

So che posso utilizzare il set list listchars=... per mostrare NonText e SpecialKey caratteri per evidenziare diversi tipi di caratteri, ben non di testo. In generale questo è semplice e funziona. Ma ha un effetto collaterale visivo che mi disturba - mentre "il passaggio del mouse" su una linea quando la linea di cursore è impostata su listchars sono evidenziati in un colore diverso. Il problema è stato già menzionato in this thread e non sembra esserci una soluzione per aggirare il comportamento.Imposta visibilità e/o colore di listchar o nascondi cchar in vim quando la linea di cursore evidenzia una riga

Come conseguenza ho iniziato a giocare con la funzione di occultamento, che mi dà risultati contrastanti. set concealcursor=n||v||i||c mi consente di controllare in quali modalità sono visibili i caratteri nascosti. Voglio essere in grado di vedere i personaggi nascosti sempre Così ho creato il seguente:.

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

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

Come risultato mette in luce tutti gli spazi che sono sempre puntuale visibili, non importa quale modalità Sono attualmente in Ma ancora una volta c'è un inquietante effetto collaterale: quando contrassegno le linee in modalità visiva o evidenzia una linea con la mia linea di cursore, l'area di evidenziazione viene interrotta dove vengono trovati i caratteri nascosti. Basta vedere gli screenshot:

Visual mode con area selezionata:

Vim concealed characters in visual mode

modalità normale con CursorLine:

Vim concealed characters in normal mode with cursorline

così ho pensato che proviamo set concealcursor=ic. Ciò si traduce in aree evidenziate ininterrotte, ma i caratteri sono nascosti.

enter image description here

Quindi c'è una qualche parte e in qualche modo una soluzione intorno al thread ho detto all'inizio di questo post o c'è un modo per rendere il CursorLine e le aree visive selezionare ininterrotte quando si utilizza set concealcursor=nvic?

+1

Una patch che implementa la modifica è stata proposta nella [mailing list vim_dev] (http://www.vim.org/community.php): [visualizzazione dei caratteri listchar sulla linea di cursore e sulla modalità visiva] (https : //groups.google.com/d/msg/vim_dev/oYeTcHINrrg/u4NmKV8pmGcJ) –

+0

@IngoKarkat Hm, sembra promettente. In che modo le possibilità di ottenere questo in vim? – Saucier

+1

È possibile migliorare le probabilità provandolo e condividendo i risultati su vim_dev. Probabilmente ci vorrà ancora del tempo, l'arretrato è enorme. –

risposta

0

Credo che sia stata impostata la 'linea di cursore'. Il gruppo di evidenziazione CursorLine definisce i punti salienti della stessa. O si set nocursorline, (che può velocizzare i movimenti della linea) o modificare i gruppi di evidenziazione CursorLine fg colori.

Problemi correlati