2013-07-12 8 views
7

Domyślnie komenda VIM :e utworzy nowy bufor z określonym plikiem, pozostawiając bieżący bufor do przekazania. Prowadzi to do wzrostu liczby buforów (i to nie jest wygodne, jeśli używana jest wtyczka bufora wyświetlacza, na przykład popularna minibufexplorer). Czy jest możliwa modyfikacja VIM, aby komenda :e ponownie użyła bieżącego bufora? Jeśli potrzebuję dwóch buforów, zawsze mogę utworzyć drugie za pomocą polecenia :enew.VIM: Jak otworzyć nowy plik w bieżącym buforze?

Odpowiedz

11

nie można „re-use” bufor, bufor w vim jest

plik załadowany do pamięci w celu edycji.

Można usunąć bieżący bufor następnie otworzyć nowy, tak aby zachować liczyć twoi bufory:

:bd!|e /path/file 

do wiadomości, że z ! zmiany dotyczące bieżącego bufora będzie wyrzucić.

+1

Wielkie dzięki! Czy jest to jakakolwiek dokumentacja w VIM na temat tego "|" notacja? Nie zdawałem sobie sprawy, że mogę tak sterować łańcuchem. – grigoryvp

+3

Zobacz [': help: bar'] (http://vimdoc.sourceforge.net/htmldoc/cmdline.html#:bar). –

8
:bd!|e file 

to najbardziej intuicyjny sposób, ale zabije twoje okno, jeśli masz podział. Więc ...

function! ReplaceBuffer(bang, newfile) 
    let curbuf = bufnr('%') 
    exec "e " . a:newfile 
    exec "bd" . a:bang . " " . curbuf 
endfunction 
command! -nargs=1 -complete=file -bang -bar BDE call ReplaceBuffer('<bang>', <f-args>) 

Następnie można zrobić

:BDE ~/.vimrc 

lub

:BDE! ~/.vimrc 

aby doładować .vimrc i zabić bufor jesteś w, nie brudząc z okien.

+0

dobrze wspomnieć, że ': bd! | E plik' zabija podziałów! Szukałem czegoś, co zachowałoby podzielony układ – jazzyfresh