aboutsummaryrefslogtreecommitdiff
path: root/vterm.el
diff options
context:
space:
mode:
Diffstat (limited to 'vterm.el')
-rw-r--r--vterm.el26
1 files changed, 25 insertions, 1 deletions
diff --git a/vterm.el b/vterm.el
index 7e5a259..fb2f2b8 100644
--- a/vterm.el
+++ b/vterm.el
@@ -129,12 +129,25 @@ be send to the terminal."
:sentinel #'ignore))))
;; Keybindings
-(define-key vterm-mode-map [t] #'vterm--self-insert)
+;; (define-key vterm-mode-map [t] #'vterm--self-insert)
(define-key vterm-mode-map [mouse-1] nil)
(define-key vterm-mode-map [mouse-2] nil)
(define-key vterm-mode-map [mouse-3] nil)
(define-key vterm-mode-map [mouse-4] #'ignore)
(define-key vterm-mode-map [mouse-5] #'ignore)
+(define-key vterm-mode-map [(tab)] #'vterm--self-insert)
+(define-key vterm-mode-map (kbd "TAB") #'vterm--self-insert)
+(define-key vterm-mode-map (kbd "<backspace>") #'vterm--self-insert)
+(define-key vterm-mode-map (kbd "M-<backspace>") #'vterm--self-insert)
+(define-key vterm-mode-map [left] #'vterm--self-insert)
+(define-key vterm-mode-map [right] #'vterm--self-insert)
+(define-key vterm-mode-map [up] #'vterm--self-insert)
+(define-key vterm-mode-map [down] #'vterm--self-insert)
+(define-key vterm-mode-map [home] #'vterm--self-insert)
+(define-key vterm-mode-map [end] #'vterm--self-insert)
+(define-key vterm-mode-map [escape] 'vterm--self-insert)
+(define-key vterm-mode-map [remap self-insert-command] 'vterm--self-insert)
+
(dolist (prefix '("M-" "C-"))
(dolist (char (cl-loop for char from ?a to ?z
collect char))
@@ -159,6 +172,17 @@ be send to the terminal."
(setq key (upcase key)))
(vterm--update vterm--term key shift meta ctrl)))))
+
+(defun vterm-send-key (key &optional shift meta ctrl)
+ "Sends key to libvterm."
+ (when vterm--term
+ (let* ((inhibit-redisplay t)
+ (inhibit-read-only t)
+ (key key))
+ (when (and shift (not meta) (not ctrl))
+ (setq key (upcase key)))
+ (vterm--update vterm--term key shift meta ctrl))))
+
(defun vterm ()
"Create a new vterm."
(interactive)