aboutsummaryrefslogtreecommitdiff
path: root/Emacs/.config
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2024-10-06 12:29:37 +0100
committerAryadev Chavali <aryadev@aryadevchavali.com>2024-10-06 12:29:37 +0100
commitffec3c2db5fb87528771b1b698a932c12ad862ad (patch)
treee8cd0b9ae0b148a80392933f694875631e875f8c /Emacs/.config
parentef6de8a44b104a5267243dcced56eea72cb9a7e6 (diff)
downloaddotfiles-ffec3c2db5fb87528771b1b698a932c12ad862ad.tar.gz
dotfiles-ffec3c2db5fb87528771b1b698a932c12ad862ad.tar.bz2
dotfiles-ffec3c2db5fb87528771b1b698a932c12ad862ad.zip
Install VTerm for Emacs
Diffstat (limited to 'Emacs/.config')
-rw-r--r--Emacs/.config/emacs/config.org22
1 files changed, 22 insertions, 0 deletions
diff --git a/Emacs/.config/emacs/config.org b/Emacs/.config/emacs/config.org
index 7af4102..1effb5b 100644
--- a/Emacs/.config/emacs/config.org
+++ b/Emacs/.config/emacs/config.org
@@ -2143,6 +2143,28 @@ thankfully.
:after eshell
:hook (eshell-mode-hook . eshell-syntax-highlighting-mode))
#+end_src
+** VTerm
+Sometimes Eshell doesn't cut it; it can't run certain TUI applications
+easily, and if they don't have Emacs integration then you're out of
+luck. Emacs comes by default with some terminal applications that can
+run a system wide shell like SH or ZSH (~shell~ and ~term~ for
+example), but they're not exactly great. ~vterm~ is an external
+package using a shared library for terminal emulation, and is much
+better than the default Emacs stuff.
+
+Since my ZSH configuration enables vim emulation, using ~evil~ on top
+of it would lead to some weird states. Instead, use the Emacs state
+so vim emulation is completely controlled by the shell.
+#+begin_src emacs-lisp
+(use-package vterm
+ :straight t
+ :general
+ (shell-leader
+ "v" #'vterm)
+ :init
+ (with-eval-after-load "evil"
+ (evil-set-initial-state 'vterm-mode 'emacs)))
+#+end_src
** WAIT Elfeed
:PROPERTIES:
:header-args:emacs-lisp: :tangle no :results none