Skip to content

Commit e236e2d

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

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

vterm.el

Lines changed: 21 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,23 @@ 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+
(let ((symbol (thing-at-point 'symbol)))
1277+
(if symbol
1278+
(progn (dotimes (i (length symbol))
1279+
(vterm-send-backspace))
1280+
(vterm-send-string (vterm-dabbrev-expand-wrapper) t))
1281+
(vterm-send-string (vterm-dabbrev-expand-wrapper) t))))
1282+
12621283
(provide 'vterm)
12631284
;;; vterm.el ends here

0 commit comments

Comments
 (0)