diff options
| author | Steven Allen <steven@stebalien.com> | 2024-02-03 15:25:57 -0800 |
|---|---|---|
| committer | Youmu <condy0919@gmail.com> | 2024-02-05 09:44:07 +0800 |
| commit | 29212d123f1d2622332c02ca55b3a81faee1af76 (patch) | |
| tree | 34e7b9f72b212c9f1e330415172d3fe2cdabd0b4 /modes | |
| parent | 8c84f9bc89fe56e71b56519f886085ddcbc671cf (diff) | |
vterm: implement replace
Implements evil's "replace" operator ("r") for vterm.
Diffstat (limited to 'modes')
| -rw-r--r-- | modes/vterm/evil-collection-vterm.el | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/modes/vterm/evil-collection-vterm.el b/modes/vterm/evil-collection-vterm.el index bafef53..ccc9edc 100644 --- a/modes/vterm/evil-collection-vterm.el +++ b/modes/vterm/evil-collection-vterm.el @@ -75,6 +75,7 @@ also uses `evil-mode'." (declare-function vterm-cursor-in-command-buffer-p "vterm") (declare-function vterm-beginning-of-line "vterm") +(declare-function vterm-insert "vterm") (evil-define-motion evil-collection-vterm-first-non-blank () "Move the cursor to the first non-blank character @@ -199,6 +200,14 @@ Save in REGISTER or in the kill-ring with YANK-HANDLER." (t (evil-collection-vterm-delete beg line-end type register yank-handler))))) +(evil-define-operator evil-collection-vterm-replace (beg end type register yank-handler) + :motion evil-forward-char + (interactive "<R>") + (let ((replacement (make-string (- end beg) (read-char)))) + (evil-collection-vterm-delete beg end type register yank-handler) + (vterm-insert replacement) + (vterm-goto-char (1- end)))) + (evil-define-operator evil-collection-vterm-change (beg end type register yank-handler) (evil-collection-vterm-delete beg end type register yank-handler) (evil-collection-vterm-insert)) @@ -280,6 +289,7 @@ But don't allow the cursor to move bellow the last prompt line." "i" 'evil-collection-vterm-insert "I" 'evil-collection-vterm-insert-line "u" 'vterm-undo + "r" 'evil-collection-vterm-replace "c" 'evil-collection-vterm-change "C" 'evil-collection-vterm-change-line "s" 'evil-collection-vterm-substitute |
