如何在elisp中设置交互式缓冲区的名称

时间:2012-07-12 13:18:51

标签: emacs elisp

我在emacs中定义了以下功能 -

(defun web2py-server ()
 (interactive)
 (shell-command "cd /opt/web2py; python /opt/web2py/web2py.py &"))

以上在emacs中创建了一个新缓冲区,如何为窗口设置名称“abc”。

谢谢, 穆尔塔扎

2 个答案:

答案 0 :(得分:4)

您可以通过致电M-x rename-buffer以交互方式进行,也可以将名称添加到您的功能中:

(defun web2py-server () 
  (interactive) 
  (shell-command "cd /opt/web2py; python /opt/web2py/web2py.py &")
  (rename-buffer "abc"))

编辑:

如果您想要一个持续的互动流程,最好使用start-process代替shell-command。这允许您在启动进程时指定输出缓冲区。否则,莫里茨的回答看起来比我原来的要好。如果您对启动流程感兴趣,可以先将shell-command行替换为以下内容:

(let ((default-directory "/opt/web2py"))
  (start-process "my-server" "abc" "python" "/opt/web2py/web2py.py")

答案 1 :(得分:4)

使用shell-command的第二个参数OUPTUT-BUFFER

(defun web2py-server ()
 (interactive)
 (shell-command "cd /opt/web2py; python /opt/web2py/web2py.py &"
                (get-buffer-create "abc")))