daj
daj

Reputation: 7183

what's the most efficient emacs workflow for compilation and interactive execution cycles (C++/makefile)

What's the preferred practice for a compile-run cycle in emacs?

Previously, I used M-x compile (mapped to F12) with make as my compile command. Within the Makefile I had an entry which would run the program that was compiled. This worked fine when my programs were non-interactive, but the compilation buffer is non-interactive.

Of course I could open a shell and run the executable, but I'd like to automate the compile-run cycle as much as possible and I assume there must be a standard practice for this and I'm guessing my executing-from-the-makefile method is a kluge...

C-u F12 works, but I'm wondering if that's the best approach for doing this (and if so, how can I bind F12 to be equivalent to C-u M-x compile instead of just M-x compile?).

Upvotes: 4

Views: 515

Answers (1)

event_jr
event_jr

Reputation: 17707

It can't get simpler than C-u M-x compile. You already have the Makefile task defined. So you're just asking how to map this to f12?

Try this:

(defun compile-interactive ()
  (interactive)
  (setq current-prefix-arg '(4))
  (call-interactively 'compile))

(global-set-key (kbd "<f12>") 'compile-interactive)

You should also read the Interactive Options and Optional Arguments sections of the manual.

Upvotes: 3

Related Questions