今回はbufnameとbufnrを使います。バッファ名、番号を取得する関数です。
使い方はヘルプにあります。
:h bufname
bufname({expr})
戻り値はバッファの名前。バッファ名はコマンド ":ls" で表示され
るものと同様。
{expr}が数値ならば、その番号のバッファ名が返される。0は現在の
ウィンドウの代替バッファを意味する。{expr}が文字列ならば、バッ
ファ名に対してファイル名マッチング |file-pattern| を行うパター
ンとなる。このマッチングは常に、'magic' をセットし 'cpoptions'
を空にした状態で行われる。複数マッチしてしまった場合には空文字
列が返される。
"" や "%" は現在のバッファを意味し、"#" は代替バッファを意味す
る。
~省略~
ふむふむ。では:lsを確認してみます。
%が現在のバッファってことなので、現在表示されているバッファは、”[無名]”ですね。
bufnameは現在のバッファの番号を指定する必要があるっぽいので、
さきに、bufnrを使ってみます。
ヘルプの確認。
:h bufnr
bufnr({expr} [, {create}])
結果はバッファの番号。バッファ番号はコマンド ":ls" で表示され
るものと同様。{expr}の使い方は前述の |bufname()| を参照。バッ
ファが存在しない場合-1が返される。ただし、{create}が与えられて
0でないときは、バッファリストに載せない新しいバッファを作成し
その番号を返す。
bufnr("$")は最後のバッファを意味する: >
bufnrに”[無名]”を指定して、バッファ番号を確認してみます。
:echo bufnr("[無名]")

-1が返ってきてしまいました。指定の仕方が違うんでしょう。
%が現在のバッファを表すので、%で確認してみます。
:echo bufnr("%")

1が返ってきました。
ということで、bufnameに戻ります。
bufnameで1を指定して、バッファの名前を取得してみましょう。
:echo bufname(1)

何も表示されませんでした。


コメント