最近从MacVim切换到标准vim所以我可以强迫自己在没有MacVim包装器帮助的情况下在vim中移动。由于这样做,我有一些奇怪的重绘问题。我已经在iTerm2和Lion的标准终端中测试了这个。
当我编辑文件,打开NERDTree等时,最后一个窗口的片段出现在我当前的缓冲区中。有时候“..(up a dir)”会留在新的缓冲区中。底部状态栏重复自身。唯一似乎摆脱这种情况的是手动调用“:redraw!”。
我整理了一段快速视频来展示我正在谈论的内容,因为我的Google-fu没有取得任何成果。 Video Demo
这真是让我不知所措。任何人对可能导致这种情况的原因有任何想法吗?
更新
我仔细检查过,Vim和iTerm2 / Terminal都设置为UTF-8进行字符编码。我甚至在iTerm2中启用了此设置:双宽字符:将模糊宽度字符视为双倍宽度。
ECHO $TERM
输出(iTerm2和标准终端都相同)xterm-256color
:version
输出
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Aug 5 2011 10:58:31)
MacOS X (unix) version
Included patches: 1-260
Compiled by chris@nix
Huge version with MacVim 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() +fullscreen -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 +odbeditor +path_extra +perl
+persistent_undo +postscript +printer +profile +python -python3 +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 +transparency +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset +xim -xsmp -xterm_clipboard
-xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "$VIM/gvimrc"
user gvimrc file: "$HOME/.gvimrc"
system menu file: "$VIMRUNTIME/menu.vim"
fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe -DMACOS_X_UNIX -no-cpp-precomp -g -O2 -isysroot /Developer/SDKs/MacOSX10.7.sdk -mmacosx-version-min=10.7 -arch x86_64 -D_FORTIFY_SOURCE=1
-I/System/Library/Frameworks/Tcl.framework/Headers -D_REENTRANT=1 -D_THREAD_SAFE=1 -D_DARWIN_C_SOURCE=1
Linking: gcc -L. -L. -Wl,-syslibroot,/Developer/SDKs/MacOSX10.7.sdk -mmacosx-version-min=10.7 -arch x86_64 -L/usr/local/lib -o Vim -framework Cocoa -framework Carbon -lncurses -liconv -framework Cocoa -fstack-protector -L
/usr/local/lib -L/System/Library/Perl/5.12/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc -framework Python -F/System/Library/Frameworks -framework Tcl -framework CoreFoundation -lruby.1.9.1 -lobjc -L/Users/chris/.rvm/rubies/ruby
-1.9.2-p290/lib
更新更新 更新状态行似乎没有任何改变。仍然吓坏了,并有同样的问题。还有其他想法吗?
答案 0 :(得分:2)
如果vim和您的终端不同意所使用的字符编码,则有时会发生这种情况。例如,如果vim想要使用多字节UTF-8序列绘制一个字符,并且您的终端不太明白并且绘制两个字符,则vim和您的终端不同意结果的位置光标。这可能导致各种错误的屏幕元素。
使用vim中的:set encoding
命令设置与终端设置使用的编码一致的编码。
答案 1 :(得分:1)
看起来我终于搞清楚了。似乎是Lion和我的MBP的硬件/驱动程序问题。 Lion 10.7.1问世,自更新以来问题已经消失。我对背景颜色有点奇怪,但是一旦我将我的终端bg颜色与我的vim配色方案相匹配,所有都是桃色的。感谢大家的建议。