2011-12-21 1 views
7

Ho avuto un problema di rendering dei caratteri con GVim su Ubuntu per un po 'di tempo. Ho notato spesso il problema quando si passa da una scheda all'altra. Dopo aver passato da una scheda all'altra, a volte le linee non verranno visualizzate. Se premo ctrl + l, il contenuto della scheda verrà ridisegnato e le righe mancanti verranno visualizzate correttamente. Immagino di poter scrivere una funzione nel mio .vimrc per far funzionare automaticamente ctrl + l dopo aver cambiato scheda, ma sento che vorrei evitare un problema piuttosto che risolvere il problema sottostante.Il testo in Gvim scompare

  • Ubuntu 11.10
  • GVim 7.3
  • Vimrc: set guifont=Inconsolata\ 12

Ho avuto il problema per un lungo periodo di tempo con diverse versioni di Ubuntu e diversi tipi di carattere gui set. Mi piacerebbe sentire tutte le idee che qualcuno potrebbe aiutarmi a risolvere questo problema.

Queste sono le funzioni che uso per le schede di commutazione:

function TabLeft() 
    let tab_number = tabpagenr() - 1 
    if tab_number == 0 
     execute "tabm" tabpagenr('$') - 1 
    else 
     execute "tabm" tab_number - 1 
    endif 
endfunction 

function TabRight() 
    let tab_number = tabpagenr() - 1 
    let last_tab_number = tabpagenr('$') - 1 
    if tab_number == last_tab_number 
     execute "tabm" 0 
    else 
     execute "tabm" tab_number + 1 
    endif 
endfunction 

map <silent><C-S-PageUp> :execute TabRight()<CR> 
map <silent><C-S-PageDown> :execute TabLeft()<CR> 
+0

Aggiungendo 'execute ' dopo ogni comando 'execute" tabm "'. Il cambio delle schede ora costringe lo schermo a ridisegnare. Questo mi sembra una soluzione temporanea finché non riesco a capire qual è il problema di fondo. –

risposta

5

Ho visto glitch di rendering dei font su Ubuntu. La mia soluzione è stata quella di utilizzare i tabheading in stile "textmode", vedere le guioptions.

Qui è la mia impostazione preferita:

:se guioptions=agim 

Nota che

  • I può essere immaginando le cose, ma è sembra stizzoso troppo
  • Essa si traduce in più spazio sullo schermo per la modifica
  • Le impostazioni precedenti rimuovono anche tutte le barre di scorrimento (chi ha bisogno di barre di scorrimento?)

Per modificare lo stile di intestazione della scheda, prova, ad es.

:se guioptions-=e 
+0

Ho aggiunto il 'se guioptions = agim'. Semmai preferisco davvero l'aspetto più pulito. Ho odiato tutta quella roba extra che GVim ha aggiunto all'editor. Da quando ho apportato questa modifica, non ho riscontrato alcun problema con il rendering del testo. Contrassegnerò questa risposta come la risposta accettata dopo un po 'più di test del tempo. Grazie. –

+0

Ho avuto lo stesso problema e sembra che rimuovere l'opzione -e ha fatto il trucco per me. – Makis

0

non ho mai visto :execute essere utilizzati per richiamare una funzione (penso a come la versione di Vim di eval() da altri linguaggi di scripting). Prova a cambiare :execute TabRight()<CR> a :call TabRight()<CR> e vedere se questo aiuta.

+0

Ho cambiato 'execute' in' call' e la funzione di commutazione della scheda si comporta allo stesso modo. Penso che tu abbia ragione sul fatto che sia più corretto usare "call" di "execute" in questo caso. –