ターミナルのシェルから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)))