@kyanny's blog

My thoughts, my life. Views/opinions are my own.

emacsclient で開きまくったバッファをまとめて閉じる

ターミナルのシェルからemコマンドを使って Emacs を開く、というのを非常に頻繁に使っている。アプリケーションのルートディレクトリを Emacs で開いて dired でファイルを探す、みたいな操作。 Emacs 内から目的のディレクトリ(のバッファ)を探すより手が慣れてる分はやい。

これを数日やってると emacsclient で開いてるバッファがとても多くなる。 Git のコミットコメントも Emacs (emacsclient) で書いているので、 server-edit (C-x #) でバッファを閉じると直前に開いていたバッファではなく最後に emacsclient で開いたバッファが最前面に出てきたりしてちょっと不便だった。

C-x # を何度も押すのは指が疲れるので、まとめて閉じるような elisp を書いた。

(while (not (string= "No server editing buffers exist" (server-edit))))

;; 意味もなく loop マクロを使ってみたバージョン
(loop for i by 1
      until (string= "No server editing buffers exist" (server-edit)))