Eu tenho um problema com o gvim, onde a tela redesenhada falha parcialmente. É difícil de explicar, mas quando 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 uma captura de tela aqui, pois demonstra o problema: http://www.box.net/shared/l4m1vrffl0dhigi80huz
Parece que o problema está limitado ao gvim porque todos os outros aplicativos que eu corro 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.
O SO é o Arch linux 3.0 executando os drivers da nvidia executando o Gnome3 (sem compiz).
Saída de uname
Linux cyclops 3.0-ARCH # 1 SMP PREEMPT Ter 30 de agosto 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 (15 de agosto de 2010, compilado em 30 de setembro de 2011 05:51:10) Correções incluídas: 1-322 Compilado pelo ArchLinux Versão grande com GUI do GTK2. Recursos incluídos (+) ou não (-): + arabic + autocmd + balloon_eval + browse ++ builtin_terms + byte_offset + cindent + clientserver + clipboard + cmdline_compl + cmdline_hist + cmdline_info + comentários + ocultar + cryptv + cscope + cursorbind + cursorsipe + dialog_con_ + diff + digraphs + dnd -ebcdic + emacs_tags + eval + ex_extra + extra_search + farsi + file_in_path + find_in_path + float + fold -footer + fork () + gettext -hangul_input + iconv + insert_expand + jumplist + keymap + langmap + linemap + lispindent + listcmds + localmap -lua + menu + mksession + modify_fname + mouse + mouseshape + mouse_dec + mouse_gpm -mouse_jsbterm + mouse_netterm
arquivo de menu do sistema: "$ VIMRUNTIME / menu.vim" substituto para $ VIM: "/ usr / share / vim" Compilação: 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 = genérico -O2 -pipe -fstack-protector --param = ssp-buffer- tamanho = 4 -D_FORTIFY_SOURCE = 1 Link: gcc -L. -Wl, - hash-style = gnu -Wl, - conforme necessário -rdynamic -Wl, -export-dynamic -Wl, -E -Wl, -rpath, / usr / lib / perl5 / core_perl / CORE -Wl , -O1, - tipo comum, - conforme necessário, -z, relro, - estilo de hash = gnu -L / usr / local / lib -Wl,
Respostas:
Eu tive esse problema e consegui solucionar o problema iniciando o gvim com a
--sync
opção Isso torna as chamadas X assíncronas.(Obrigado pelo link no comentário de Christian Brabandt por me indicar a direção certa.)
fonte
Ajudaria a fornecer informações sobre o seu sistema operacional, placa de vídeo, etc. Parece o GNOME3 em ...?
Eu tive um problema como esse ao executar o GVIM e outros aplicativos com o Compiz como meu Window Manager com uma placa de vídeo NVIDIA, e o corrigi-lo indo para "Compiz Config Settings Manager"> Soluções alternativas> marque "Qt Window Fix".
Nenhuma pista se isso, ou algo mais, ajudará no seu caso ou não, especialmente se você estiver usando o Mutter em vez do Compiz.
fonte
Que tipo de plug-ins você conectou ao Vim além do que veio incluído na caixa?
Pode haver uma chance de um de seus plugins normalmente estáveis ter ficado um pouco problemático em você. Sim, o GTK está revelando o problema, mas provavelmente não é o problema. Qualquer coisa que cria janelas pop-up ou temporariamente cria um mini-buffer ou algo assim. Preenchimento automático, trechos, ... Se for um plug-in ou recurso extra, tente desativá-lo e verifique se o seu problema desaparece.
Embora eu não tenha visto nenhum desses pop-ups em seu filme, o plug-in 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 de tela cheia não repinta todo o buffer. O cursor está obviamente forçando o buffer a redesenhar os vizinhos.
É claro que poderia ser um problema central do GTK / GVim (acho que o X ou o OpenGL não têm nada a ver com isso), mas parece improvável para mim (embora eu não costumo usar o Arch).
Se você achar que é um plug-in, poderá forçar uma atualização ou downgrade da versão (qualquer coisa, menos a versão "quebrada").
fonte
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 instalei o pacote, então tive que executar as alternativas de atualização manualmente da seguinte maneira:
Muito obrigado pelas dicas neste tópico de que o GTK pode ser o problema. Esse problema foi difícil de rastrear, mesmo usando o Google!
fonte