diff options
| -rw-r--r-- | vterm-module.c | 2 | ||||
| -rw-r--r-- | vterm.el | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/vterm-module.c b/vterm-module.c index bf9483c..edf8237 100644 --- a/vterm-module.c +++ b/vterm-module.c @@ -546,6 +546,8 @@ static void term_process_key(Term *term, unsigned char *key, size_t len, vterm_keyboard_end_paste(term->vt); } else if (is_key(key, len, "<tab>")) { vterm_keyboard_key(term->vt, VTERM_KEY_TAB, modifier); + } else if (is_key(key, len, "<backtab>") || is_key(key, len, "<iso-lefttab>")) { + vterm_keyboard_key(term->vt, VTERM_KEY_TAB, VTERM_MOD_SHIFT); } else if (is_key(key, len, "<backspace>")) { vterm_keyboard_key(term->vt, VTERM_KEY_BACKSPACE, modifier); } else if (is_key(key, len, "<escape>")) { @@ -244,6 +244,7 @@ If nil, never delay") ;; Keybindings (define-key vterm-mode-map [tab] #'vterm--self-insert) +(define-key vterm-mode-map [backtab] #'vterm--self-insert) (define-key vterm-mode-map [backspace] #'vterm--self-insert) (define-key vterm-mode-map [M-backspace] #'vterm--self-insert) (define-key vterm-mode-map [return] #'vterm--self-insert) @@ -291,7 +292,7 @@ If nil, never delay") (when vterm--term (let ((inhibit-redisplay t) (inhibit-read-only t)) - (when (and shift (not meta) (not ctrl)) + (when (and (not (symbolp last-input-event)) shift (not meta) (not ctrl)) (setq key (upcase key))) (vterm--update vterm--term key shift meta ctrl)))) |
