No description
Find a file
Michal Sojka 742ce656e2
Allow ending copy mode with C-c C-t (#3)
When ending julia-vterm-repl-copy-mode by pressing C-c C-t, the Julia
process remains stopped and the buffer is almost unusable, because it
does not have its local keymap set. The only working way to terminate
the copy mode is by pressing RET, but this requires an active region.

This commit fixes the above problem by moving the code for ending the
copy mode to julia-vterm-repl-copy-mode. Now the copy mode can be
terminated by both RET and C-c C-t.
2020-12-23 15:42:22 +09:00
.gitignore Ignore *.elc 2020-10-09 12:08:09 +09:00
COPYING Add GPL v3 text 2020-10-09 12:08:09 +09:00
julia-vterm.el Allow ending copy mode with C-c C-t (#3) 2020-12-23 15:42:22 +09:00
README.org Fix style 2020-10-27 15:02:12 +09:00

julia-vterm

Julia-vterm provides a major-mode for inferior Julia process that runs in vterm, and a minor-mode that extends julia-mode with the ability to interact with the inferior Julia process.

Should I use this?

There's already julia-repl. It works well in most cases, but I sometimes encountered problems when I used a very large DataFrame, which seemed to be caused by the limited performance of term.el. Julia-vterm is implemented using emacs-libvterm, and REPL works as smoothly as in a native terminal.

Currently, julia-vterm offers minimum functionalities for basic interaction with the REPL. A few more functions may be added in the future, but you may want to check julia-repl if you need more features. If the simplicity of this package fits your preference, please give it a try!

Installation

Just install it from MELPA. The package name is julia-vterm.

Then, evaluate the following add-hook line to turn on julia-vterm-mode in newly opened julia-mode buffers. A symbol "⁂" in the mode line indicates that the julia-mode buffer is ready to interact with the vterm-powered Julia REPL. Add this line to your init file to enable julia-vterm-mode in future sessions.

(add-hook 'julia-mode-hook #'julia-vterm-mode)

You can install the package manually if necessary. First make sure julia-mode and emacs-libvterm are installed and working properly. Download julia-vterm.el into somewhere in your local directory and install it with the following. You also need to configure the hook described above.

(package-install-file "/path-to-download-dir/julia-vterm.el")

How to use

In a julia script buffer with julia-vterm-mode on, you can open an inferior Julia REPL buffer with M-x julia-vterm-switch-to-repl-buffer (or C-c C-z).

Key bindings

julia-mode with julia-vterm-mode enabled

Key Binding
C-c C-z julia-vterm-switch-to-repl-buffer
C-<return> julia-vterm-send-region-or-current-line
C-c C-b julia-vterm-send-buffer
C-c C-i julia-vterm-send-include-buffer-file
C-c C-d julia-vterm-send-cd-to-buffer-directory

julia-vterm-repl-mode

Key Binding
C-c C-z julia-vterm-repl-switch-to-script-buffer
M-k julia-vterm-repl-clear-buffer
C-c C-t julia-vterm-repl-copy-mode

julia-vterm-repl-mode (copy mode)

Key Binding
C-c C-t julia-vterm-repl-copy-mode
<return> julia-vterm-repl-copy-mode-done
C-c C-r vterm-reset-cursor-point