gvim redraw failure


9

Ho un problema con gvim in cui il ridisegno dello schermo non riesce parzialmente. È difficile da spiegare, ma quando apro un file di testo e la pagina verso il basso o verso l'alto l'intero file di testo non viene ridisegnato correttamente. Devo spostare il cursore prima che venga ridisegnato. Ho una screencapture qui poiché dimostra il problema: http://www.box.net/shared/l4m1vrffl0dhigi80huz

Sembra che il problema sia limitato a gvim perché ogni altra applicazione che eseguo va bene e ridisegna correttamente. È abbastanza facile per me riprodurre in gvim. La console vim va bene. Mi fa pensare che il problema sia limitato a gvim.

Il sistema operativo è Arch Linux 3.0 che esegue i driver nvidia con Gnome3 (senza compiz).

Uscita da uname

Linux cyclops 3.0-ARCH # 1 SMP PREEMPT mar 30 ago 07:32:23 UTC 2011 i686 Intel (R) Core (TM) 2 CPU 6600 @ 2.40GHz GenuineIntel GNU / Linux

lsmod

lsmod | grep nvidia
nvidia              10225284  40 
agpgart                22096  1 nvidia
i2c_core               16625  2 nvidia,i2c_nforce2

gvim: versione

gvim --version VIM - Vi IMproved 7.3 (15 agosto 2010, compilato il 30 settembre 2011 05:51:10) Patch incluse: 1-322 Compilato da ArchLinux Grande versione con GUI GTK2. Funzionalità incluse (+) o meno (-): + arabo + autocmd + balloon_eval + sfoglia ++ builtin_terms + byte_offset + cindent + clienterver + appunti + cmdline_compl + cmdline_hist + cmdline_info + commenti + nascondi + cryptv + cscope + cursorbind + cursorshape + dialog_con_ui + diff + digraphs + dnd -ebcdic + emacs_tags + eval + ex_extra + extra_search + farsi + file_in_path + find_in_path + float + pieghevole -footer + fork () + gettext -hangul_input + iconv + insert_expand + jumplist + keymap + langmap + libcall + libcall + libcall + lispindent + listcmds + localmap -lua + menu + mksession + edit_fname + mouse + mouseshape + mouse_dec + mouse_gpm -mouse_jsbterm + mouse_netterm

file del menu di sistema: "$ VIMRUNTIME / menu.vim" fall-back per $ VIM: "/ usr / share / vim" Compilazione: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -I / usr / include / gtk-2.0 -I / usr / lib / gtk-2.0 / include -I / usr / include / atk-1.0 -I / usr / include / cairo -I /usr/include/gdk-pixbuf-2.0 -I / usr / include / pango-1.0 -I / usr / include / glib-2.0 -I / usr / lib / glib-2.0 / include -I / usr / include / pixman -1 -I / usr / include / freetype2 -I / usr / include / libpng14 -I / usr / local / include -march = i686 -mtune = generico -O2 -pipe -fstack-protector --param = ssp-buffer- size = 4 -D_FORTIFY_SOURCE = 1 Collegamento: gcc -L. -Wl, - hash-style = gnu -Wl, - all'occorrenza-dinamica -Wl, -export-dynamic -Wl, -E -Wl, -rpath, / usr / lib / perl5 / core_perl / CORE -Wl , -O1, - sort-common, - secondo necessità, -z, relro, - hash-style = gnu -L / usr / local / lib -Wl,


2
Ho lo stesso identico problema in Ubuntu 12.10, sotto Gnome 3. Sei l'unica altra persona su Internet che ho scoperto di averlo. Hai avuto fortuna da quando lo hai pubblicato?
Jakar

@jakar No, non ho mai trovato un modo per risolvere questo problema. Ora sto eseguendo fc17 con i driver nvidia e non vedo più il problema, ma non sto usando Gnome 3 in modalità fantasia.
Sashang,

Sì, penso che abbia più a che fare con gnome / gtk / xorg / drivers che con gvim stesso. Neanche in fc17 non ho problemi (anche se su una macchina diversa), anche con versioni corrispondenti di gvim, costruite dal sorgente. Oh bene, vivrò con esso per ora. Per lo meno, grazie per l'unica buona descrizione e video di questo che ho visto.
Jakar

Ho anche questo problema. Sarei davvero interessato a una soluzione.
Matt Fichman,

2
Sembra molto simile al numero 91 e la mia ipotesi attuale è che si tratti di un problema di libreria GTK.
Christian Brabandt,

Risposte:


5

Ho avuto questo problema ed è stato in grado di aggirare il problema avviando gvim con l' --syncopzione. Questo rende le chiamate X asincrone.

(Grazie al link nel commento di Christian Brabandt per avermi indicato nella giusta direzione.)


Ha avuto lo stesso problema nell'esecuzione di Debian / 9 in una macchina virtualbox in cima alla grafica integrata. Stessi sintomi di ridisegni mancanti: la divisione del buffer non aggiorna il display fino a quando non si esegue l'alt-tab su un'altra app e viceversa. L'opzione --sync ha risolto il problema.
Andrew

0

Sarebbe utile fornire informazioni sul tuo sistema operativo, scheda video, ecc. Sembra GNOME3 su ...?

Ho avuto un problema come questo quando eseguivo GVIM e altre app con Compiz come Window Manager con una scheda video NVIDIA e l'ho risolto andando su "Compiz Config Settings Manager"> Soluzioni alternative> seleziona "Qt Window Fix".

Nessun indizio se questo, o qualcos'altro, ti aiuterà o meno nel tuo caso, specialmente se stai usando Mutter invece di Compiz.


0

Che tipo di plugin hai collegato a Vim oltre a ciò che è stato fornito in bundle?

Potrebbe esserci la possibilità che uno dei tuoi plugin normalmente stabili sia andato un po 'male con te. Sì, GTK sta rivelando il problema, ma probabilmente non è IL problema. Tutto ciò che crea finestre popup o crea temporaneamente un mini-buffer o qualcosa del genere. Completamento automatico, frammenti, ... Se si tratta di un plug-in o funzionalità extra, prova a spegnerlo e vedi se il problema scompare.

Anche se non ho visto tali popup nel tuo film, il plug-in potrebbe creare il suo popup, rendendosi conto che non è effettivamente necessario, cancellare il popup, ma quindi non ridisegnare il contenuto che era originariamente sotto.

L'esecuzione di uno scorrimento a schermo intero non ridipinge l'intero buffer. Il cursore sta ovviamente forzando il buffer a ridipingere i vicini.

Naturalmente potrebbe trattarsi di un problema GTK / GVim fondamentale (penso che X o OpenGL non abbiano nulla a che fare con esso), ma mi sembra improbabile (anche se non uso comunemente Arch).

Se trovi che si tratta di un plug-in, potresti voler forzare un aggiornamento o un downgrade della versione (tutto tranne la versione "non funzionante").


0

FWIW Mi sono sbarazzato del problema installando il pacchetto vim-gtk3, sostituendo vim-gtk(Ubuntu).

NOTA! Per qualche motivo il comando gvim predefinito non è stato mappato su vim-gtk3 quando ho installato il pacchetto, quindi ho dovuto eseguire manualmente update-alternatives in questo modo:

sudo update-alternatives --set gvim /usr/bin/vim.gtk3

Grazie mille per i suggerimenti in questa discussione che GTK potrebbe essere il problema. Questo problema è stato difficile da rintracciare anche usando Google!  

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.