GNU 23.1.1
By clicking the F5 button I can compile my project. However, I want to extend this so that any unsaved work would be saved and then compiled.
Normally I just do C-x-s to save then click F5. But can I add a line that will save without having to ask me do I want to save then it will compile, all done automatically?
; Compile program using <F5>
; Save all unsaved files here, then compile
(global-set-key [f5] 'compile)
Hope you understand me?
Many thanks for any advice,
Put (setq compilation-ask-about-save nil)
in your .emacs
to automatically save (without asking) before you compile or recompile.
On every Emacs I use (from the 19.34 to 24), compile do ask for saving unsaved buffer before proceeding. I'm very surprise it is not the case for you.
So just M-x compile (f5 for you) will ask to save unsaved buffer.
you can customize compilation-ask-about-save to nil if you want compile to unconditionally save all buffer, or let it to it's default non nil value if you want to be asked.
You can use (save-some-buffers 1)
to save all buffers containing changes.
Wrap it up with a function together with compile
like so:
(defun save-all-and-compile ()
(save-some-buffers 1)
(compile compile-command))
Then set F5 to run this function instead of plain compile.
Use (save-some-buffers)
(no argument) if you prefer Emacs to ask you about each buffer to be saved. Also, you might want to make the compilation-command customisable, as it is with compile
... I'll leave that to you though.
You also have to add (interactive)
, see full example below.
(defun save-all-and-compile ()
(interactive)
(save-some-buffers 1)
(compile compile-command))
(global-set-key [f5] 'save-all-and-compile)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With