mirror of
https://github.com/vale981/py-vterm-interaction.el
synced 2025-03-05 10:01:41 -05:00
64 lines
3.4 KiB
Org Mode
64 lines
3.4 KiB
Org Mode
# -*- eval: (visual-line-mode 1) -*-
|
|
#+STARTUP: showall
|
|
|
|
[[https://melpa.org/#/julia-vterm][file:https://melpa.org/packages/julia-vterm-badge.svg]] [[https://stable.melpa.org/#/julia-vterm][file:https://stable.melpa.org/packages/julia-vterm-badge.svg]]
|
|
|
|
* 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 [[https://github.com/tpapp/julia-repl][julia-repl]]. But it had a display performance issue due to the limited performance of its backend terminal emulator, term.el. That's the reason why I made julia-vterm. Actually, julia-repl seems to have added support for vterm in January 2021, so I think one doesn't need to choose julia-vterm for display performance now.
|
|
|
|
Another possible reason might be Org Babel support by [[https://github.com/shg/ob-julia-vterm.el][ob-julia-vterm]]. It is still under development but you might be interested.
|
|
|
|
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.
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(add-hook 'julia-mode-hook #'julia-vterm-mode)
|
|
#+END_SRC
|
|
|
|
You can install the package manually if necessary. First make sure [[https://github.com/JuliaEditorSupport/julia-emacs][julia-mode]] and [[https://github.com/akermu/emacs-libvterm][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.
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(package-install-file "/path-to-download-dir/julia-vterm.el")
|
|
#+END_SRC
|
|
|
|
** 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= |
|