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