aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Fürmetz <fuermetz@mailbox.org>2019-07-31 16:29:34 +0200
committerGitHub <noreply@github.com>2019-07-31 16:29:34 +0200
commitee07b5a1e798a8b45c242de2bcdabc009ff055be (patch)
tree2be155294b40e0987077da241747a0b7b02ca8a7
parenteceae190ec3aef6a97fc5daed49c6016daf457f2 (diff)
parentf018462e1b533c74c458bfbb2a0a4b5a1622b982 (diff)
Merge pull request #107 from akermu/backtab_support
Add support for backtab
-rw-r--r--vterm-module.c2
-rw-r--r--vterm.el3
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>")) {
diff --git a/vterm.el b/vterm.el
index 51e9ee9..1c9e8f4 100644
--- a/vterm.el
+++ b/vterm.el
@@ -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))))