2010-09-04 221 views
1

我不知道为什么,但目前emacs只打开w3m的一个副本。如果w3m已经打开,那么重新键入打开w3m的命令会将我带到已经打开的缓冲区。我想要类似地配置ansi-term,即键入C-x C-a(命令打开ansi-term)应该带我到已经打开的ansi-term,而不是完全打开一个新的缓冲区。emacs缓冲区绑定到密钥

我该如何在emacs中实现这个功能?

回答

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)))) 
+0

完美的作品。谢谢。 – Sandeep 2010-09-04 16:49:51