diff --git a/modules/shell/siren-vterm.el b/modules/shell/siren-vterm.el index ea5ac3c..76524ed 100644 --- a/modules/shell/siren-vterm.el +++ b/modules/shell/siren-vterm.el @@ -15,6 +15,7 @@ :bind (:map vterm-mode-map + ("C-c [" . vterm-copy-mode) ("M-i" . windmove-up) ("M-k" . windmove-down) ("M-j" . windmove-left) @@ -23,13 +24,23 @@ ("M-I" . windmove-swap-states-up) ("M-J" . windmove-swap-states-left) ("M-L" . windmove-swap-states-right)) + (:map vterm-copy-mode-map + ("C-g" . siren-vterm-copy-mode-cancel) + ("C-c [" . vterm-copy-mode)) :custom (vterm-always-compile-module t) + (vterm-kill-buffer-on-exit t) + (vterm-max-scrollback 50000) :init (defun siren-vterm-mode-setup () - (hl-line-mode -1))) + (hl-line-mode -1)) + + (defun siren-vterm-copy-mode-cancel () + "Clear mark if mark is active, otherwise exit vterm-copy-mode." + (interactive) + (if mark-active (deactivate-mark) (vterm-copy-mode -1)))) (provide 'siren-vterm) ;;; siren-vterm.el ends here