我想创建一个名为'console'的缓冲区的函数,如果它不存在并运行一些命令。如果缓冲区已存在,我希望它只切换到它。
答案 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"))))