org-babel-eval-in-repl icon indicating copy to clipboard operation
org-babel-eval-in-repl copied to clipboard

Send and eval org-mode babel code blocks in various REPLs (therefore it's async)

MELPA MELPA Stable Travis CI

org-babel-eval-in-repl

Execute babel source code blocks with eval-in-repl.

Demonstration

Features

  • Async execution (because it uses an external process!)
  • Babel execution without the output written in the buffer (Less visual distraction! Output is reproducible as long as the code is saved)

Installation

Available via MELPA (Set up MELPA if you haven't already). Run

M-x package-install RET org-babel-eval-in-repl RET

Usage

No keybindings are provided by default (because I couldn't find one that's appropriate). Create your own comfortable keybind for execution. Here's my case:

(with-eval-after-load "ob"
  (require 'org-babel-eval-in-repl)
  (define-key org-mode-map (kbd "C-<return>") 'ober-eval-in-repl)
  (define-key org-mode-map (kbd "M-<return>") 'ober-eval-block-in-repl))

See the wiki for more usage (you can find more practical keybindings)

Recommended config (optional):

(This prevents the cursor to jump to the repl buffer after execution. I was more comfortable with this)

(with-eval-after-load "eval-in-repl"
  (setq eir-jump-after-eval nil))

Example

#+BEGIN_SRC ruby
p "Test"
#+END_SRC

Press C-<return> on the source code.

Available languages

Available languages (Prepared in the package) Requirements
matlab matlab-mode settings
R ESS-mode
stata
Available languages (Delegated to eval-in-repl) Requirements
ruby
clojure
racket
scheme
hy
emacs-lisp
javascript
ocaml
prolog
python
sh
lisp
perl
sml

Contributors

Check out here for a list of contributors.