falha de redesenho do gvim

9

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,

sashang
fonte
2
Eu tenho esse mesmo problema exato no Ubuntu 12.10, no Gnome 3. Você é a única pessoa na Internet que eu encontrei. Alguma sorte desde que postou isso?
Jakar
@jakar Não, eu nunca encontrei uma maneira de corrigir isso. Agora estou executando o fc17 com drivers da nvidia e não vejo mais o problema, mas não estou usando o Gnome 3 no modo sofisticado.
Sashang
Sim, acho que tem mais a ver com o gnome / gtk / xorg / drivers do que com o próprio gvim. Também não tenho problemas no fc17 (embora em uma máquina diferente), mesmo executando versões correspondentes do gvim, criadas a partir do código-fonte. Oh bem, eu vou viver com isso por enquanto. No mínimo, obrigado pela única boa descrição e vídeo que eu já vi.
Jakar
Eu também tenho esse problema. Eu estaria realmente interessado em uma solução.
precisa
2
Isso parece muito com o problema 91 e meu palpite atual é que esse é um problema da biblioteca gtk.
Christian Brabandt

Respostas:

5

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

(Obrigado pelo link no comentário de Christian Brabandt por me indicar a direção certa.)

Puma Serpentina
fonte
Teve o mesmo problema ao executar o Debian / 9 em uma máquina de caixa virtual sobre gráficos integrados. Mesmos sintomas de redesenhos ausentes - dividir o buffer não atualiza a exibição até a tecla alt tabs para outro aplicativo e vice-versa. A opção --sync corrigiu o problema.
187 Andrew Andrew
0

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.

frabjous
fonte
0

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").

user2097818
fonte
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 instalei o pacote, então tive que executar as alternativas de atualização manualmente da seguinte maneira:

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

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!  

Hans Löfving
fonte