*の付いたbufferを消す(その2)
前に書いた
himadatenodeの日記 - *の付いたbufferを消す
http://d.hatena.ne.jp/himadatanode/20060906/p2
をもう少し変えてみた。
■具体的に何を変えたか
*が付いたバッファを削除するのは前と同じなんだけど。ネットインストーラを使った後で押すとフレームが残ってしまって、再度ネットインストーラを使う場合にフレームを消さないとネットインストーラが動いてくれないようだったので、ネットインストーラのフレームがあるときはついでにそれも削除するようにした。
;兎に角全部の「*」が付いたbufferを削除するようなの (defun clear-temp-buffers() "*の付いたバッファーを削除" (interactive) (let ((fn)) (dolist (bf (buffer-list)) (setq fn (buffer-name bf)) (when (and fn (equal (schar fn 0) #\*) (not (equal "*scratch*" fn))) ;(msgbox(format nil "<~A>" fn)) (delete-buffer bf);否応なしに ;(erase-buffer bf);尋ねてくる (if (> (count-windows) 1) (delete-window)))) ;ついでにネットインストーラ使ったときに残るフレームがあればそれも削除 (if (find-pseudo-frame "NetInst") (delete-pseudo-frame (find-pseudo-frame "NetInst"))) )) ;;いらないWindowとBufferを削除のキー設定 (global-set-key #\S-F11 'clear-temp-buffers) (set-function-bar-label #\S-F11 "[F11]*hoge*削除")
キー設定はS-F11を押すと動く感じ。
これはもとのパクリもとがS-F11だったので、何となくそのまま。
■前に書いた関連してるの
himadatenodeの日記 - 選択中のBufferが「*」つきの名前のbufferなら消す
http://d.hatena.ne.jp/himadatanode/20060910/p1
himadatenodeの日記 - *の付いたbufferを消す
http://d.hatena.ne.jp/himadatanode/20060906/p2