Skip to content

Commit 57be441

Browse files
committed
Add vterm-dabbrev-expand
1 parent fa39a07 commit 57be441

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

vterm.el

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ the executable."
158158
(require 'color)
159159
(require 'compile)
160160
(require 'face-remap)
161+
(require 'dabbrev)
162+
(require 'thingatpt)
161163

162164
;;; Options
163165

@@ -515,6 +517,7 @@ Exceptions are defined by `vterm-keymap-exceptions'."
515517
(define-key map (kbd "S-SPC") #'vterm-send-space)
516518
(define-key map (kbd "C-_") #'vterm--self-insert)
517519
(define-key map (kbd "C-/") #'vterm-undo)
520+
(define-key map (kbd "M-/") #'vterm-dabbrev-expand)
518521
(define-key map (kbd "M-.") #'vterm-send-meta-dot)
519522
(define-key map (kbd "M-,") #'vterm-send-meta-comma)
520523
(define-key map (kbd "C-c C-y") #'vterm--self-insert)
@@ -1259,5 +1262,21 @@ can find them and remove them."
12591262
(vterm--remove-fake-newlines)
12601263
(buffer-string)))
12611264

1265+
(defun vterm-dabbrev-expand-wrapper ()
1266+
"Return `dabbrev-expand' result."
1267+
(save-current-buffer
1268+
(setq-local buffer-read-only nil)
1269+
(call-interactively #'dabbrev-expand)
1270+
(thing-at-point 'symbol)))
1271+
1272+
;;;###autoload
1273+
(defun vterm-dabbrev-expand ()
1274+
"Provide similar behavior as `dabbrev-expand'."
1275+
(interactive)
1276+
(if (thing-at-point 'symbol)
1277+
(progn (vterm-send-C-w)
1278+
(vterm-send-string (vterm-dabbrev-expand-wrapper) t))
1279+
(vterm-send-string (vterm-dabbrev-expand-wrapper) t)))
1280+
12621281
(provide 'vterm)
12631282
;;; vterm.el ends here

0 commit comments

Comments
 (0)