Skip to content
Run executable file, debug and build commands on project +projectile, compilation-mode, ivy, realgud
Emacs Lisp
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



  1. Run executable file, debug and build commands on project.
  2. Can configure build directory per project.


  1. Requires:
    1. f
    2. s
    3. projectile
    4. ivy
    5. realgud
    6. levenshtein
      1. Aaron S. Hawley <ashawley at uvm dot edu>
      2. Art Taylor
  2. Use Quelpa
    (quelpa '(moonshot :repo "ageldama/moonshot" :fetcher github))
    (require 'moonshot)

Key Bindings and Functionalities

(global-set-key (kbd "C-c x x") 'moonshot-run-executable)
(global-set-key (kbd "C-c x d") 'moonshot-run-debugger)
(global-set-key (kbd "C-c x c") 'moonshot-run-runner)


per Project Build Directory

  1. Set moonshot-project-build-dir in your file local variable or .dir-locals.el.
  2. can be:
    1. Relative path string: appended to (projectile-project-root) or the directory of current buffer.
    2. Absolute path string.
    3. Lisp form: evaluates as a string of build directory path.

Additional Debugger

  • See moonshot-debuggers
    • (TODO: describe more)

Shell Command

(add-to-list 'moonshot-runners "npm run sth -d %p")

Shell command string can contain variable specifiers:

  1. %a absolute pathname ( /usr/local/bin/netscape.bin )
  2. %f file name without directory ( netscape.bin )
  3. %n file name without extension ( netscape )
  4. %e extension of file name ( bin )
  5. %d directory ( /usr/local/bin/ )
  6. %p project root directory ( /home/who/blah/ ), using Projectile
  7. %b project build directory ( /home/who/blah/build/ ), using moonshot-project-build-dir
You can’t perform that action at this time.