Vimでバッファなどに関する各種情報を表示してみる
バッファなどに関する各種情報を表示してみる。
function! s:BufInfo() echo "\n----- バッファに関する情報 -----" echo "bufnr('%')=" . bufnr('%') . " // 現在のバッファ番号" echo "bufnr('$')=" . bufnr('$') . " // 最後のバッファ番号" echo "bufnr('#')=" . bufnr('#') . " // 直前のバッファ番号?(仕様がよくわからない)" for i in range(1, bufnr('$')) echo "bufexists(" . i . ")=".bufexists(i) echon " buflisted(" . i . ")=".buflisted(i) echon " bufloaded(" . i . ")=".bufloaded(i) echon " bufname(" . i . ")=".bufname(i) endfor echo "// bufexists(n)=バッファnが存在するか" echo "// buflisted(n)=バッファnがリストにあるか" echo "// bufloaded(n)=バッファnがロード済みか" echo "// bufname(n)=バッファnの名前" echo "\n----- ウィンドウに関する情報 -----" echo "winnr()=" . winnr() . " // 現在のウィンドウ番号" echo "winnr('$')=" . winnr('$') . " // 最後のウィンドウ番号" echo "winnr('#')=" . winnr('#') . " // 直前のウィンドウ番号?(仕様がよくわからない)" for i in range(1, winnr('$')) echo "winbufnr(" . i . ")=".winbufnr(i) . " // ウィンドウ" . i . "に関連付くバッファ番号" endfor echo "\n----- タブページに関する情報 -----" echo "tabpagenr()=" . tabpagenr() . ' // 現在のタブページ番号' echo "tabpagenr('$')=" . tabpagenr('$') . ' // 最後のタブページ番号' for i in range(1, tabpagenr('$')) echo 'tabpagebuflist(' . i . ')=' echon tabpagebuflist(i) echon " // タブページ" . i . "に関連づくバッファ番号のリスト" endfor for i in range(1, tabpagenr('$')) echo 'tabpagewinnr(' . i . ')=' . tabpagewinnr(i) echon " tabpagewinnr(" . i . ", '$')=" . tabpagewinnr(i, '$') echon " tabpagewinnr(" . i . ", '#')=" . tabpagewinnr(i, '#') endfor echo "// tabpagewinnr(n) =タブページnの現在のウィンドウ番号" echo "// tabpagewinnr(n, '$')=タブページnの最後のウィンドウ番号" echo "// tabpagewinnr(n, '#')=タブページnの直前のウィンドウ番号?(仕様がよくわからない)" endfunction command! -nargs=0 BufInfo call s:BufInfo()
コマンドを実行してみると、
:BufInfo
下記のような結果が表示される。
----- バッファに関する情報 ----- bufnr('%')=2 // 現在のバッファ番号 bufnr('$')=2 // 最後のバッファ番号 bufnr('#')=1 // 直前のバッファ番号?(仕様がよくわからない) bufexists(1)=1 buflisted(1)=1 bufloaded(1)=1 bufname(1)=test.vim bufexists(2)=1 buflisted(2)=0 bufloaded(2)=1 bufname(2)=/usr/share/vim/vim73/doc/eval.txt // bufexists(n)=バッファnが存在するか // buflisted(n)=バッファnがリストにあるか // bufloaded(n)=バッファnがロード済みか // bufname(n)=バッファnの名前 ----- ウィンドウに関する情報 ----- winnr()=1 // 現在のウィンドウ番号 winnr('$')=2 // 最後のウィンドウ番号 winnr('#')=2 // 直前のウィンドウ番号?(仕様がよくわからない) winbufnr(1)=2 // ウィンドウ1に関連付くバッファ番号 winbufnr(2)=1 // ウィンドウ2に関連付くバッファ番号 ----- タブページに関する情報 ----- tabpagenr()=1 // 現在のタブページ番号 tabpagenr('$')=1 // 最後のタブページ番号 tabpagebuflist(1)=[2, 1] // タブページ1に関連づくバッファ番号のリスト tabpagewinnr(1)=1 tabpagewinnr(1, '$')=2 tabpagewinnr(1, '#')=2 // tabpagewinnr(n) =タブページnの現在のウィンドウ番号 // tabpagewinnr(n, '$')=タブページnの最後のウィンドウ番号 // tabpagewinnr(n, '#')=タブページnの直前のウィンドウ番号?(仕様がよくわからない)