From 4aa504f7bfdcfb9710bb4d2e305685b3979b1dc1 Mon Sep 17 00:00:00 2001 From: jixiufeng Date: Thu, 8 Nov 2018 14:31:43 +0800 Subject: make other keybinding with prefix like super- hyper- works. --- vterm.el | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) 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 "") #'vterm--self-insert) +(define-key vterm-mode-map (kbd "M-") #'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) -- cgit v1.0