理由はわかりませんが、現在、emacs は w3m のコピーを 1 つしか開きません。w3m が既に開いている場合、コマンドを再入力して w3m を開くと、既に開いているバッファーに移動します。同様に ansi-term を設定したいと思います。つまり、Cx Ca (command open ansi-term) と入力すると、新しいバッファーをまったく開くのではなく、すでに開いている ansi-term に移動する必要があります。
どうすればこれをemacsで達成できますか?
ansi-term
既存の端末バッファーが既に存在するかどうかを確認し、存在する場合はそのバッファーをリサイクルするラッパー関数を記述することができます。
(defun green-ansi-term ()
"Show an existing buffer called \"*ansi-term*\" if one exists, otherwise
call function ansi-term interactively."
(interactive)
(let ((existing-buffer (get-buffer "*ansi-term*")))
(if existing-buffer
(switch-to-buffer existing-buffer)
(call-interactively 'ansi-term))))