今回は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)
何も表示されませんでした。
コメント