Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A simple vterm-based mode for an inferior Julia REPL process in Emacs

License

Notifications You must be signed in to change notification settings

shg/julia-vterm.el

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 

Repository files navigation

https://melpa.org/packages/julia-vterm-badge.svg https://stable.melpa.org/packages/julia-vterm-badge.svg

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 typical 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.

FYI, python-vterm and ob-python-vterm are also under development to offer a similar workflow for Python.

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 correctly.

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 enable julia-vterm-mode in julia-mode buffers automatically.

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

By default, the command named julia in your PATH is used. You can use a Julia executable in any path by setting the julia-vterm-repl-program variable to its absolute path. The variable can contain switches for the julia command. For example, you can use a julia executable 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

M-x julia-vterm-repl (or M-x julia if no other packages define it before julia-vterm is loaded) opens an inferior Julia REPL buffer.

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

Both of the above operations open a REPL with the default session name main. You can specify a different session name by using the prefix argument C-u. A new session will be created and opened if there is no REPL with that session name.

You can also specify a session name by defining a file local variable julia-vterm-session (or julia-session if no other packages pre-define it). If the variable is defined, C-c C-z will open a REPL with that session name.

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.

C-c M-r     julia-vterm-repl-restart
            Restart the current inferior Julia process. A new Julia REPL will be opened in
            the same Emacs window, and the working directory and environment will be
            restored from the previous REPL process when possible. With prefix ARG,
            confirmation is skipped.

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.

About

A simple vterm-based mode for an inferior Julia REPL process in Emacs

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •