gvim falha de redesenho

9

Eu tenho um problema com o gvim onde o redesenho da tela falha parcialmente. É difícil explicar, mas quando eu abro um arquivo de texto e a página para baixo ou para cima o arquivo de texto inteiro não é redesenhado corretamente. Eu tenho que mover o cursor primeiro antes de redesenhar. Eu tenho um screencapture aqui desde que demonstra o problema: link

Parece que o problema está limitado ao gvim, porque todos os outros aplicativos que eu executo estão bem e são redesenhados corretamente. É muito fácil para mim reproduzir no gvim. O console vim está bem. Isso me faz pensar que o problema é limitado ao gvim.

OS é o Arch linux 3.0 rodando os drivers da nvidia rodando o Gnome3 (sem compiz).

Saída do uname

Linux cyclops 3.0-ARCH #1 SMP PREEMPT Tue Aug 30 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 --version

gvim --version VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Sep 30 2011 05:51:10) Included patches: 1-322 Compiled by ArchLinux Big version with GTK2 GUI. Features included (+) or not (-): +arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path +float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap -lua +menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm

-mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg +path_extra +perl +persistent_undo +postscript +printer -profile +python/dyn +python3/dyn +quickfix +reltime +rightleft +ruby +scrollbind +signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save system vimrc file: "/etc/vimrc" user vimrc file: "$HOME/.vimrc" user exrc file: "$HOME/.exrc" system gvimrc file: "/etc/gvimrc" user gvimrc file: "$HOME/.gvimrc" system menu file: "$VIMRUNTIME/menu.vim" fall-back for $VIM: "/usr/share/vim" Compilation: 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=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=1 Linking: gcc -L. -Wl,--hash-style=gnu -Wl,--as-needed -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -L/usr/local/lib -Wl,--as-needed -o vim -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -lncurses -lelf -lnsl -lacl -lattr -lgpm -ldl -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -fstack-protector -L/usr/local/lib -L/usr/lib/perl5/core_perl/CORE -lperl -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -lruby -lpthread -lrt -ldl -lcrypt -lm -L/usr/lib

    
por sashang 06.10.2011 / 14:02

4 respostas

4

Eu tive esse problema e consegui resolver o problema iniciando o gvim com a opção --sync . Isso torna as chamadas X assíncronas.

(Graças ao link no comentário de Christian Brabandt por me apontar na direção certa.)

    
por 04.08.2015 / 06:00
0

Ajudaria a fornecer informações sobre seu sistema operacional, placa de vídeo, etc. Parece com o GNOME3 em ...?

Eu tive um problema como este ao executar o GVIM e outros aplicativos com o Compiz como meu gerenciador de janelas com uma placa de vídeo NVIDIA e corrigi-lo indo para "Gerenciador de configurações de configuração do Compiz" > Soluções alternativas > verifique "Qt Window Fix".

Nenhuma pista se isso, ou alguma outra coisa, ajudar no seu caso ou não, especialmente se você estiver usando o Mutter em vez do Compiz.

    
por 06.10.2011 / 14:09
0

Que tipo de plugins você colocou no Vim além do que veio empacotado fora da caixa?

Pode haver uma chance de um de seus plugins normalmente estáveis ter um pouco de glitchy em você. Sim, o GTK está revelando o problema, mas provavelmente não é o problema. Qualquer coisa que crie janelas pop-up ou crie temporariamente um mini-buffer ou algo parecido. Preenchimento automático, snippets, ... Se for um plug-in ou recurso extra, tente desativá-lo e veja se seu problema desaparece.

Embora eu não tenha visto nenhum pop-up em seu filme, o plugin pode estar criando seu pop-up, percebendo que não é realmente necessário, limpando o pop-up, mas não redesenhando o conteúdo que estava originalmente por baixo.

Fazer uma rolagem em tela cheia não repinta todo o buffer. O cursor está obviamente forçando o buffer a redesenhar os vizinhos.

Claro que pode ser um problema GTK / GVim (acho que X ou OpenGL não tem nada a ver com isso), mas parece improvável para mim (embora eu não use Arch normalmente).

Se você achar que é um plugin, você pode forçar uma atualização de versão ou downgrade (qualquer coisa, exceto a versão "quebrada").

    
por 12.06.2015 / 03:53
0

FWIW Eu me livrei do problema instalando o pacote vim-gtk3, substituindo vim-gtk (Ubuntu).

NOTA! Por alguma razão, o comando gvim padrão não foi mapeado para o vim-gtk3 quando eu instalei o pacote, então tive que executar update-alternatives manualmente assim:

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

Muito obrigado pelas dicas neste tópico que o GTK pode ser o problema. Este problema foi difícil de rastrear, mesmo usando o Google!

    
por 05.04.2018 / 09:27

Tags