@@ -158,6 +158,8 @@ the executable."
158
158
(require 'color )
159
159
(require 'compile )
160
160
(require 'face-remap )
161
+ (require 'dabbrev )
162
+ (require 'thingatpt )
161
163
162
164
; ;; Options
163
165
@@ -515,6 +517,7 @@ Exceptions are defined by `vterm-keymap-exceptions'."
515
517
(define-key map (kbd " S-SPC" ) #'vterm-send-space )
516
518
(define-key map (kbd " C-_" ) #'vterm--self-insert )
517
519
(define-key map (kbd " C-/" ) #'vterm-undo )
520
+ (define-key map (kbd " M-/" ) #'vterm-dabbrev-expand )
518
521
(define-key map (kbd " M-." ) #'vterm-send-meta-dot )
519
522
(define-key map (kbd " M-," ) #'vterm-send-meta-comma )
520
523
(define-key map (kbd " C-c C-y" ) #'vterm--self-insert )
@@ -1259,5 +1262,23 @@ can find them and remove them."
1259
1262
(vterm--remove-fake-newlines)
1260
1263
(buffer-string )))
1261
1264
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
+
1262
1283
(provide 'vterm )
1263
1284
; ;; vterm.el ends here
0 commit comments