在Emacs中运行多个编译(在Windows上)?

时间:2010-12-06 14:26:03

标签: emacs elisp compilation

The GNU Emacs Manual说:

  

如果您想一次运行两个编辑,则应该启动第一个编辑,然后重命名“*compilation*”缓冲区(可能使用rename-uniquely;请参阅Misc Buffer),然后开始另一个汇编。这将创建一个新的“*compilation*”缓冲区。

我尝试了这个,但它并没有像宣传的那样有效。我正在运行此version

 GNU Emacs 23.2.1 (i386-mingw-nt5.1.2600) of 2010-05-08 on G41R2F1

Emacs for Windows,这可能是问题所在。也许多个编辑在其他平台上运行良好?

如何在Emacs中运行多个编辑?

3 个答案:

答案 0 :(得分:3)

Emacs手册已经过时了,我很害怕。如果您 C-h f编译RET ,您会看到:

  

要一次运行多个编译,请启动一个,然后将*compilation*缓冲区重命名为M-x rename-buffer的其他名称。然后切换缓冲区并开始新的编译。   它将创建一个新的*compilation*缓冲区。

请注意突出显示的文字。

filed a bug report。 (但实际上这是一个足够普遍的操作,应该有一个命令。)

编辑添加:现已修复! (预计修复将出现在Emacs 24中。)

答案 1 :(得分:2)

这是一个将编译缓冲区重命名为唯一的函数的小函数:

(defun my-make-room-for-new-compilation-buffer ()
  "Renames existing *compilation* buffer to something unique so
      that a new compilation job can be run."
  (interactive)
  (let ((cbuf (get-buffer "*compilation*"))
        (more-cbufs t)
        (n 1)
        (new-cbuf-name ""))
    (when cbuf
      (while more-cbufs
        (setq new-cbuf-name (format "*compilation%d*" n))
        (setq n (1+ n))
        (setq more-cbufs (get-buffer new-cbuf-name)))
      (with-current-buffer cbuf
        (rename-buffer new-cbuf-name)))))

我确信这里可以做很多清理,但这是一个开始......

答案 2 :(得分:0)

只需转到编译并调用rename-unique。