aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas de Beauchêne <thomas.de.beauchene@sap.com>2018-11-19 11:39:09 +0100
committerLukas Fürmetz <fuermetz@mailbox.org>2018-11-21 20:58:22 +0100
commit018e81c6ca9dca8cde2ccfb6889c6b72b7fab532 (patch)
tree0aded85f9ae1e4a7a45b5be48d47cb638de2ba6d
parent8be9316156be75a685c0636258b2fec2daaf5ab5 (diff)
enable yanking (pasting from clipboard / kill-ring)
-rw-r--r--vterm.el14
1 files changed, 13 insertions, 1 deletions
diff --git a/vterm.el b/vterm.el
index be41caf..2d209f7 100644
--- a/vterm.el
+++ b/vterm.el
@@ -45,7 +45,7 @@
:type 'number
:group 'vterm)
-(defcustom vterm-keymap-exceptions '("C-c" "C-x" "C-u" "C-g" "C-h" "M-x" "M-o" "C-v" "M-v")
+(defcustom vterm-keymap-exceptions '("C-c" "C-x" "C-u" "C-g" "C-h" "M-x" "M-o" "C-v" "M-v" "C-y")
"Exceptions for vterm-keymap.
If you use a keybinding with a prefix-key, add that prefix-key to
@@ -169,6 +169,7 @@ for different shell. "
(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)
+(define-key vterm-mode-map [remap yank] #'vterm-yank)
(define-key vterm-mode-map (kbd "C-c C-c") #'vterm-send-ctrl-c)
;; Function keys and most of C- and M- bindings
@@ -207,6 +208,17 @@ for different shell. "
(interactive)
(vterm-send-key "c" nil nil t))
+(defun vterm-yank ()
+ "Implementation of `yank' (paste) in vterm."
+ (interactive)
+ (vterm-send-string (current-kill 0)))
+
+(defun vterm-send-string (string)
+ "Send the string STRING to vterm."
+ (when vterm--term
+ (dolist (char (string-to-list string))
+ (vterm--update vterm--term (char-to-string char) nil nil nil))))
+
;;;###autoload
(defun vterm ()
"Create a new vterm."