1

我不知道为什么,但目前 emacs 只打开一个 w3m 的副本。如果 w3m 已经打开,那么重新键入打开 w3m 的命令会将我带到已经打开的缓冲区。我想类似地配置 ansi-term 即键入 Cx Ca(命令打开 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 回答