【发布时间】:2011-08-07 00:43:20
【问题描述】:
最近从 MacVim 切换到标准 vim,这样我就可以强迫自己在 vim 中移动而无需 MacVim 包装器的帮助。自从这样做以来,我遇到了一些奇怪的重绘问题。我已经在 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
更多更新 更新状态行似乎没有任何改变。仍然吓坏了并且有同样的问题。还有其他想法吗?
【问题讨论】:
-
快速重绘的方法也是Ctrl+L。
-
能否提供
:version和:echo $TERM的输出? -
当您的状态行具有默认格式时,是否会出现问题? (尝试通过
set stl=重置它。)