[Compile] 怎么编译一个文件还要保存其他文件?

我想编译当前缓冲区,可是我有一堆无关缓冲区Emacs提示需要我保存,怎么回事?

;; Save all buffers without asking
(setq compilation-ask-about-save nil)

顺便再说一下,你都知道了这个是关于compile.el的了,随便搜索一下就查到了,也不至于特地发个帖问 问题。

我设置然后重启emacs了,还是这鸟样

compilation单词拼错了,还是直接复制上面回答里的代码吧

这个答案可以了,其实我只是想跳出对当前buffer的提示,其他的buffer不用管,有解决方案吗

可以通过设置 compilation-save-buffers-predicate来决定保存哪些buffer

一个例子:

(setq compilation-save-buffers-predicate
      (lambda ()
        (let ((all-visible-buffers (mapcar #'window-buffer (window-list))))
          (memq (buffer-name) (mapcar #'buffer-name all-visible-buffers)))))

不过我没测试过,因为我没这个需求。 :rofl:

顺便再说一下,自己动手丰衣足食,不要老做伸手党。Emacs就是要自己折腾才有趣。

建议再看一下save-some-buffers这个函数。

好的,谢谢了 :grin: