this post was submitted on 12 Oct 2023
0 points (50.0% liked)

Emacs

311 readers
3 users here now

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

founded 1 year ago
MODERATORS
 

Is there a way I can compile then run my compiled application, if its already running then exit recompile and run.

So current work flow is compile switch to terminal run binary, switch back make changes compile return to terminal Ctrl + C to kill then run again, be nice if I could do all this from inside emacs.

I guess a bash script could be an option but curious if others have this work flow and how it works ?

Currently in a golang workflow but even better if there is a generic solution.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 1 year ago (7 children)

Maybe do it all in the makefile? Then use projectile or something to "make"...

[–] [email protected] 1 points 1 year ago (6 children)

I did wonder if that's perhaps the solution, although not sure how you would get the pid in a make file to kill the running instance, make files are not something I have played with much, I will see if others have any suggestions.

[–] [email protected] 1 points 1 year ago (5 children)

There's only one running *compilation* buffer allowed at a time, so if you use M-x compile (which I've had bound to C-x C-e for like 20 years), that should roughly ensure it.

In the past, I also had a bit of elisp to – IIRC – create and rename multiple compilation buffers to be able to run multiple things at once (multiple servers in a control plane).

[–] [email protected] 1 points 1 year ago (2 children)

Okay so what I think your saying is if i do something like this as the compilation command

go build main.go && ./main

Then when I run compilation again it will kill the buffer and running process and all will be good ?

[–] [email protected] 1 points 1 year ago (1 children)

In which case I wonder why you are not running go run anyway?

[–] [email protected] 1 points 1 year ago

Probably because I was just getting into golang and following a tutorial which did not mention using go run, but I will now thanks :)

[–] [email protected] 1 points 1 year ago (1 children)

yes, should do. It'll prompt you if you want to kill the existing live compilation to start the new one. If it's already dead, it'll just launch the new compilation.

One trick, as well, is if you rename the existing *compilation* buffer, it will live on its own lifecycle, so you rename it to *server* or whatever, and still do compilation cycles (eg. just go build main.go) while the existing main from the previous run is still live.

[–] [email protected] 1 points 1 year ago

Awesome I will give that a try :)

load more comments (2 replies)
load more comments (2 replies)
load more comments (2 replies)