2013-04-02 49 views
1

于是我打开VIM:VIM中没有缓冲区3?

$ vim 

然后我打开3个文件:

:e file1.txt 
:e file2.txt 
:e file3.txt 

正如预期的那样,有3个缓冲区,但它们的编号如下:

  • 1 :FILE1.TXT
  • 2:FILE2.TXT
  • 4:file4.txt

任何想法?


$ vim --version 
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Mar 25 2013 19:55:22) 
Included patches: 1-875 
Compiled by ArchLinux 
Huge version with GTK2 GUI. Features included (+) or not (-): 
+arabic   +file_in_path +mouse_sgr  +tag_binary 
+autocmd   +find_in_path -mouse_sysmouse +tag_old_static 
+balloon_eval +float   +mouse_urxvt  -tag_any_white 
+browse   +folding   +mouse_xterm  -tcl 
++builtin_terms -footer   +multi_byte  +terminfo 
+byte_offset  +fork()   +multi_lang  +termresponse 
+cindent   +gettext   -mzscheme  +textobjects 
+clientserver -hangul_input +netbeans_intg +title 
+clipboard  +iconv   +path_extra  +toolbar 
+cmdline_compl +insert_expand +perl   +user_commands 
+cmdline_hist +jumplist  +persistent_undo +vertsplit 
+cmdline_info +keymap   +postscript  +virtualedit 
+comments  +langmap   +printer   +visual 
+conceal   +libcall   +profile   +visualextra 
+cryptv   +linebreak  +python   +viminfo 
+cscope   +lispindent  -python3   +vreplace 
+cursorbind  +listcmds  +quickfix  +wildignore 
+cursorshape  +localmap  +reltime   +wildmenu 
+dialog_con_gui +lua    +rightleft  +windows 
+diff   +menu   +ruby   +writebackup 
+digraphs  +mksession  +scrollbind  +X11 
+dnd    +modify_fname +signs   -xfontset 
-ebcdic   +mouse   +smartindent  +xim 
+emacs_tags  +mouseshape  -sniff   +xsmp_interact 
+eval   +mouse_dec  +startuptime  +xterm_clipboard 
+ex_extra  +mouse_gpm  +statusline  -xterm_save 
+extra_search -mouse_jsbterm -sun_workshop  
+farsi   +mouse_netterm +syntax   
    system vimrc file: "/etc/vimrc" 
    user vimrc file: "$HOME/.vimrc" 
     user exrc file: "$HOME/.exrc" 
    system gvimrc file: "/etc/gvimrc" 
    user gvimrc file: "$HOME/.gvimrc" 
    system menu file: "$VIMRUNTIME/menu.vim" 
    fall-back for $VIM: "/usr/share/vim" 
Compilation: 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/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/libpng15 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng15 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/local/include -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1  
Linking: gcc -L. -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib -Wl,--as-needed -o vim -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfreetype -lfontconfig -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -lncurses -lnsl -lacl -lattr -lgpm -ldl -L/usr/lib -llua -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector -L/usr/local/lib -L/usr/lib/perl5/core_perl/CORE -lperl -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -L/usr/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -lruby -lpthread -lrt -ldl -lcrypt -lm -L/usr/lib 

和:

$ cat ~/.vimrc 
syntax on 
set number 
set mouse=a 
call pathogen#infect() 
filetype plugin indent on 

在VIM:

:ls! 
    1  "file1.txt"     line 1 
    2 # "file2.txt"     line 1 
    3u a- "-MiniBufExplorer-"   line 0 
    4 %a "file3.txt"     line 1 
Press ENTER or type command to continue 

原因:这个 “问题” 是由MiniBufExplorer引起:e file2.txt之后被打开。

当vim启动时,MiniBufExplorer没有打开,也不是当我:e file1.txt。但显然,当打开2个或更多文件时,会自动打开,占用下一个缓冲区(因此缓冲区3被占用)。


解决方案:使用不会占用缓冲区设置不同的插件。

+0

不是粗鲁,但它有关系吗? –

+0

@PeterRincker,有点(让我再输入一个缓冲区而不必为':b'添加一个2-3位数字) – MiJyn

+0

如果任何使用都可以使用':b'命令来使用部分缓冲区名称。将它与制表符完成和通配符组合在一起,你可以使用缓冲区号来获得很大的优势。 –

回答

0

所以你打开缓冲区,关闭了3号,问为什么得到3个缓冲区,没有缓冲区号3?

缓冲器在他们的创作编号,这些数字从未变化:如果你创建缓冲区1,2,3和4,并删除缓冲区3你3个缓冲区:1,2和4

现在看来成为阅读:h buffers的最佳时机。

+0

不,我没有打开4个缓冲区,只有3个缓冲区,而且是的,我知道当你关闭一个缓冲区时,它不允许你再次使用该缓冲区ID直到重新启动。 – MiJyn