1

理由はわかりませんが、現在、emacs は w3m のコピーを 1 つしか開きません。w3m が既に開いている場合、コマンドを再入力して w3m を開くと、既に開いているバッファーに移動します。同様に ansi-term を設定したいと思います。つまり、Cx Ca (command open ansi-term) と入力すると、新しいバッファーをまったく開くのではなく、すでに開いている ansi-term に移動する必要があります。

どうすればこれをemacsで達成できますか?

4

1 に答える 1

3

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))))
于 2010-09-04T03:55:03.010 に答える