我不知道为什么,但目前emacs只打开一个w3m副本。如果w3m已经打开,那么重新输入命令以打开w3m会将我带到已经打开的缓冲区。我想类似地配置ansi-term,即输入C-x C-a(命令打开ansi-term)应该让我已经打开ansi-term而不是完全打开一个新的缓冲区。
我如何在emacs中实现这一目标?
答案 0 :(得分: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))))