Emacs缓冲区创建/切换功能

时间:2011-01-18 19:18:48

标签: emacs

我想创建一个名为'console'的缓冲区的函数,如果它不存在并运行一些命令。如果缓冲区已存在,我希望它只切换到它。

2 个答案:

答案 0 :(得分:4)

get-buffer-create(“返回由BUFFER-OR-NAME指定的缓冲区,如果需要,创建一个新缓冲区。”)将处理创建缓冲区(如果不存在)。然后使用switch-to-buffer(“将BUFFER-OR-NAME设为当前并在选定窗口中显示。”)切换到缓冲区。

所以这样的事情就可以解决问题:

(switch-to-buffer (get-buffer-create "console"))

答案 1 :(得分:2)

试试这个,显然用你想要运行的命令替换(insert "something\n")

(defun jump-to-console ()
  "go to console buffer if it exists, otherwise create"
  (interactive)
  (let ((buffer-name "console"))
    (if (get-buffer buffer-name)
        (pop-to-buffer buffer-name)
      (pop-to-buffer (get-buffer-create buffer-name))
      (insert "something\n"))))