bufexists続きです。
バッファは画面に表示されていなくても、存在していれば、bufexistsはTRUEが返るってことは確認できました。今度は、バッファを閉じた後に、bufexistsがFALSEになることを確認してみます。
:ls
1番のバッファをクローズします。
:bd 1 :ls
lsの表示は、2番のバッファのみになりました。
この状態で、1番のバッファが存在するかbufexistsしてみます。
:echo bufexists(1)
あれ、TRUEが返りました。
bdコマンドのヘルプを見てみます。
:bd[elete][!] [N] バッファ[N](デフォルト: カレントバッファ)をメモリから取り除 き、バッファリストから削除する。バッファが編集中の場合はこのコ マンドは失敗する ([!] が与えられた場合は成功する。そのとき変更 は破棄される)。ファイルには影響はない。このバッファを表示して いる全てのウィンドウは閉じられる。バッファ[N]がカレントバッ ファの場合は、他のバッファが代わりに表示される。このバッファに は、ジャンプリストの中のメモリ上にロードされているバッファを指 し示している最も最近のエントリが使用される。 実際は、バッファは完全に削除されていない。 ~省略~
バッファは完全に削除されていない!?
bdではバッファは消えたように見えるだけなので、bufexistsでTRUEになってしまうのでしょうか。
つづく
コメント