Vimスクリプト(bufexists)(その3)

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になってしまうのでしょうか。

つづく

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA