Evil+Term: Go to char-mode when inserting at point-max

master
Pierre Neidhardt 2017-08-03 14:34:49 +01:00
parent b64988584e
commit 56367fce22
1 changed files with 10 additions and 11 deletions

View File

@ -2,20 +2,19 @@
(evil-set-initial-state 'term-mode 'insert) (evil-set-initial-state 'term-mode 'insert)
(defun evil-term-line-mode-and-normal () (defun evil-term-char-mode-entry-function ()
(interactive) (interactive)
(term-line-mode) (when (and (= (point) (point-max)) (term-in-line-mode))
(evil-normal-state)) (term-char-mode)))
(defun evil-term-char-mode-and-insert () (defun evil-term-char-mode-exit-function ()
(interactive) (interactive)
(term-char-mode) (when (term-in-char-mode)
(evil-insert-state)) (term-line-mode)))
(evil-define-key 'insert term-raw-map (defun evil-term-setup ()
[escape] 'evil-term-line-mode-and-normal) (add-hook 'evil-insert-state-entry-hook 'evil-term-char-mode-entry-function nil t)
(add-hook 'evil-insert-state-exit-hook 'evil-term-char-mode-exit-function nil t))
(evil-define-key '(normal insert) term-mode-map (add-hook 'term-mode-hook 'evil-term-setup)
"\C-c\C-k" 'evil-term-char-mode-and-insert)
(provide 'init-evil-term) (provide 'init-evil-term)