py-vterm-interaction.el/README.org
2022-07-06 23:36:50 +09:00

4.3 KiB

julia-vterm

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

The functionalities required for basic REPL interaction have been implemented. While I would like to keep this package simple, suggestions are always welcome.

If you want to use Julia with Org Babel, please consider trying ob-julia-vterm. It uses Julia-vterm and provides a solid babel development experience with session and asynchronous execution support.

Installation

You can install this package from MELPA. The package name is julia-vterm.

For manual installation, download julia-vterm.el into somewhere in your local directory and use package-install-file command. Please make sure julia-mode and emacs-libvterm are installed and configured properly.

Turn on julia-vterm-mode in a julia-mode buffer to use this package. A symbol “⁂” in the mode line indicates that the julia-mode buffer is ready to interact with the julia-vterm REPL. Add the following line to your init file to automatically enable julia-vterm-mode in julia-mode buffers.

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

By default, the command named julia in your PATH is used. You can also specify a Julia executable by setting the julia-vterm-repl-program variable to the absolute path to it. The variable can contain switches for the julia command. For example, you can use julia command at a certain path, with 4 threads enabled, by the line like the following.

(setq julia-vterm-repl-program "/path/to/julia -t 4")

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). See below for other commands.

Key bindings

julia-vterm-mode

Key         Command / Description
------------------------------------------------------------------------------------------------
C-c C-z     julia-vterm-switch-to-repl-buffer
            Switch to the paired REPL buffer or to the one with a specified session name.
            With prefix ARG, prompt for session name.

C-<return>  julia-vterm-send-region-or-current-line
            Send the content of the region if the region is active, or send the current line.

C-c C-b     julia-vterm-send-buffer
            Send the whole content of the script buffer to the Julia REPL line by line.

C-c C-i     julia-vterm-send-include-buffer-file
            Send a line to evaluate the buffer's file using include() to the Julia REPL.
            With prefix ARG, Revise.includet() is used instead.

C-c C-d     julia-vterm-send-cd-to-buffer-directory
            Send cd() function call to the Julia REPL to change the current working directory of
            REPL to the buffer's directory.

julia-vterm-repl-mode

Key         Command / Description
------------------------------------------------------------------------------------------------
C-c C-z     julia-vterm-repl-switch-to-script-buffer
            Switch to the script buffer that is paired with the current Julia REPL buffer.

M-k         julia-vterm-repl-clear-buffer
            Clear the content of the Julia REPL buffer.

C-c C-t     julia-vterm-repl-copy-mode
            Enter copy mode.

julia-vterm-repl-mode (copy mode)

Key         Command / Description
------------------------------------------------------------------------------------------------
C-c C-t     julia-vterm-repl-copy-mode
            Exit copy mode.

<return>    julia-vterm-repl-copy-mode-done
            Copy the region to the kill ring and exit copy mode.

C-c C-r     vterm-reset-cursor-point
            Call the vterm command that moves point to where it should be.