gvim 다시 그리기 실패 + cmdline_info + comments + conceal

화면 다시 그리기가 부분적으로 실패하는 gvim에 문제가 있습니다. 설명하기는 어렵지만 텍스트 파일을 열고 페이지를 아래로 올리거나 올리면 전체 텍스트 파일이 올바르게 다시 그려지지 않습니다. 커서를 다시 그리기 전에 먼저 이동해야합니다. http://www.box.net/shared/l4m1vrffl0dhigi80huz 문제를 보여주기 때문에 여기에 스크린 캡쳐가 있습니다

내가 실행하는 다른 모든 응용 프로그램이 잘되고 올바르게 다시 그려지기 때문에 문제가 gvim으로 제한되는 것처럼 보입니다. gvim으로 재생산하는 것은 매우 쉽습니다. 콘솔 vim은 괜찮습니다. 문제가 gvim으로 제한되어 있다고 생각합니다.

OS는 Gnome3 (Compiz 없음)을 실행하는 nvidia 드라이버를 실행하는 Arch linux 3.0입니다.

uname에서 출력

Linux cyclops 3.0-ARCH # 1 SMP PREEMPT 화요일 8 월 30 07:32:23 UTC 2011 i686 Intel (R) Core 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-버전

gvim –version VIM-Vi 향상된 기능 7.3 (2010 년 8 월 15 일, 2011 년 9 월 30 일 컴파일 05:51:10) 포함 된 패치 : 1-322 GTK2 GUI가 포함 된 ArchLinux Big 버전으로 컴파일 됨. 포함 된 기능 (+) 또는 아닙니다 (-) : + 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 + langcall + libcalllinebreak + lispindent + listcmds + localmap -lua + menu + mksession + modify_fname + mouse + mouseshape + mouse_dec + mouse_gpm -mouse_jsbterm + mouse_netterm

시스템 메뉴 파일 : “$ VIMRUNTIME / menu.vim”이 $ VIM에 대한 폴백 : “/ usr / share / vim”컴파일 : 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 연결 : gcc -L. -W1,-해시 스타일 = gnu -Wl,-필요에 따라 -rdynamic -Wl,-내보내기 동적 -Wl, -E -Wl, -rpath, / usr / lib / perl5 / core_perl / CORE -Wl , -O1,-정렬,-필요에 따라, -z, relro,-해시 스타일 = gnu -L / usr / local / lib -Wl,



답변

나는이 문제가 있었고 --sync옵션으로 gvim을 시작하여 문제를 해결할 수있었습니다 . 이것은 X 호출을 비동기 적으로 만듭니다.

(나를 올바른 방향으로 지적한 Christian Brabandt의 의견에있는 링크에 감사합니다.)


답변

OS, 비디오 카드 등에 대한 정보를 제공하는 데 도움이됩니다. GNOME3의 모양은 …?

NVIDIA 비디오 카드를 사용하여 창 관리자로 Compiz가있는 GVIM 및 기타 앱을 실행할 때 이와 같은 문제가 발생했습니다. “Compiz Config Settings Manager”> 해결 방법> “Qt Window Fix”를 확인하여 수정하십시오.

특히 Compiz 대신 Mutter를 사용하는 경우 이것이 도움이 될지 여부는 확실하지 않습니다.


답변

Vim에 어떤 종류의 플러그인이 포함되어 있습니까?

일반적으로 안정적인 플러그인 중 하나가 약간 고장날 수 있습니다. 그렇습니다. GTK는 문제를 밝히고 있지만 문제는 아닙니다. 팝업 창을 만들거나 일시적으로 미니 버퍼 또는 이와 유사한 것을 만드는 모든 것. 자동 완성, 스 니펫, … 추가 플러그인 또는 기능인 경우 플러그인을 끄고 문제가 해결되는지 확인하십시오.

영화에서 그러한 팝업을 보지 못했지만 플러그인이 팝업을 생성하여 실제로 필요하지 않은 것을 인식하고 팝업을 지우고 원래 아래에 있던 내용을 다시 그리지 않을 수 있습니다.

전체 화면 스크롤을 수행해도 전체 버퍼가 다시 페인트되지는 않습니다. 커서는 분명히 버퍼가 이웃을 다시 그리도록합니다.

물론 그것은 핵심 GTK / GVim 문제 일 수 있습니다 (X 또는 OpenGL은 그와 아무런 관련이 없다고 생각합니다).

해당 플러그인을 찾으면 버전 업그레이드 또는 다운 그레이드 ( “손상된”버전 이외의 다른 버전)를 강제로 수행 할 수 있습니다.


답변

FWIW vim-gtk3 패키지를 설치하고 vim-gtk(Ubuntu)를 교체하여 문제를 해결했습니다 .

노트! 어떤 이유로 패키지를 설치할 때 기본 gvim 명령이 vim-gtk3에 매핑되지 않았으므로 다음과 같이 업데이트 대체를 수동으로 실행해야했습니다.

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

이 스레드에서 GTK가 문제가 될 수 있다는 힌트를 주셔서 감사합니다. Google을 사용해도이 문제를 추적하기가 어려웠습니다!
 


답변