vterm returns to where it was entering insert

This commit is contained in:
Matt Briggs 2020-02-22 18:46:08 -05:00
parent 23d6ec70db
commit bfd6d5ede8
2 changed files with 19 additions and 0 deletions

View file

@ -55,3 +55,15 @@ If prefix ARG is non-nil, cd into `default-directory' instead of project root."
default-directory
(or (doom-project-root) default-directory))))
(vterm)))
;;;###autoload
(defun +vterm-remember-insert-point-h ()
"Remember point when leaving insert mode."
(setq-local +vterm-insert-point (point)))
;;;###autoload
(defun +vterm-goto-insert-point-h ()
"Go to the point we were at when we left insert mode."
(when +vterm-insert-point
(goto-char +vterm-insert-point)
(setq-local +vterm-insert-point nil)))

View file

@ -15,6 +15,13 @@
(setq vterm-kill-buffer-on-exit t)
(when (featurep! :editor evil)
(defvar +vterm-insert-point nil)
(add-hook 'vterm-mode-hook
(lambda ()
(add-hook 'evil-insert-state-exit-hook '+vterm-remember-insert-point-h nil t)
(add-hook 'evil-insert-state-entry-hook '+vterm-goto-insert-point-h nil t))))
(add-hook 'vterm-mode-hook #'doom-mark-buffer-as-real-h)
;; Modeline serves no purpose in vterm
(add-hook 'vterm-mode-hook #'hide-mode-line-mode))