轉載自:http://linux.bloghome.cn/posts/114.html
1. 安裝到 http://vim.sourceforge.net/scripts/script.php?script_id=159
下載最新版本的 minibufexpl.vim 指令碼,
將該檔案複製到 plugin 目錄中即可。
2. 配置
在設定檔 .vimrc 中加入:
"
"minibuf plugin
"
let g:miniBufExplMapWindowNavVim = 1 "Ctrl-<hjkl> to move to window
let g:miniBufExplTabWrap = 1 " make tabs show complete (no broken on two lines)
這樣就可以使用 minibuf 了,而且設定 Ctrl-h/j/k/l 在各個視窗中切換,很方便。
使用提示:
1. minibuf 佔用的就是一個視窗,你可以用 Ctrl-k 切換到其上,然後按 <tab> 迴圈選擇 buffer,
按 <enter> 則啟用該 buffer,按 d 則刪除該 buffer 。
2. 每個 buffer 名稱前都有個數字,那是 buffer 的編號,因此,可以輸入 :b <buffer編號> 來快速切換。
先自聲明,本人是個懶種,因此設定了幾個快速鍵:
<F1> 切換至前一緩衝區
<F2> 切換至後一緩衝區
<F3> 儲存緩衝區(:update 羅)
<F4> 關閉緩衝區(:bd,或 :bdelete,刪除緩衝區)
指令碼如下:nnoremap <F1> :call MyCyclebuffer(0)<CR>
nnoremap <Leader>1 :call MyCyclebuffer(0)<CR>
inoremap <F1> <ESC>:call MyCyclebuffer(0)<CR>
nnoremap <F2> :call MyCyclebuffer(1)<CR>
nnoremap <Leader>2 :call MyCyclebuffer(1)<CR>
inoremap <F2> <ESC>:call MyCyclebuffer(1)<CR>
" Cycle Through buffers
" from MiniBufExplorer, modified by DJW
function! MyCyclebuffer(forward)
" Change buffer (keeping track of before and after buffers)
let l:origBuf = bufnr(''%'')
if (a:forward == 1)
bn!
else
bp!
endif
let l:curBuf = bufnr(''%'')
" Skip any non-modifiable buffers, but don''t cycle forever
" This should stop us from stopping in any of the [Explorers]
while getbufvar(l:curBuf, ''&modifiable'') == 0 && l:origBuf != l:curBuf
if (a:forward == 1)
bn!
else
bp!
endif
let l:curBuf = bufnr(''%'')
endwhile
endfunction
" <F4> delete buffer
nnoremap <F4> :bd<CR>
nnoremap <Leader>4 :bd<CR>
inoremap <F4> <ESC>:bd<CR>
" <F3> or Ctrl-S update buffer
nnoremap <C-S> :update<CR>
inoremap <C-S> <C-O>:update<CR>
vnoremap <C-S> <C-C>:update<CR>
nnoremap <F3> :update<CR>
inoremap <F3> <C-O>:update<CR>