Variable: evil-insert-state-modes
evil-insert-state-modes is a customizable variable defined in
evil-states.el.
Value
(comint-mode erc-mode eshell-mode geiser-repl-mode gud-mode
inferior-apl-mode inferior-caml-mode
inferior-emacs-lisp-mode inferior-j-mode
inferior-python-mode inferior-scheme-mode
inferior-sml-mode internal-ange-ftp-mode
haskell-interactive-mode prolog-inferior-mode
racket-repl-mode reb-mode shell-mode slime-repl-mode
term-mode utop-mode wdired-mode)
Documentation
Modes that should come up in Insert state.
Source Code
;; Defined in ~/.emacs.d/elpa/evil-20251108.138/evil-states.el
(evil-define-state insert
"Insert state."
:tag " <I> "
:cursor (bar . 2)
:message "-- INSERT --"
:entry-hook (evil-start-track-last-insertion)
:exit-hook (evil-cleanup-insert-state evil-stop-track-last-insertion)
:input-method t
(cond
((evil-insert-state-p)
(add-hook 'post-command-hook #'evil-maybe-remove-spaces)
(add-hook 'pre-command-hook #'evil-insert-repeat-hook)
(setq evil-maybe-remove-spaces t)
(unless (eq evil-want-fine-undo t)
(evil-start-undo-step)))
(t
(remove-hook 'post-command-hook #'evil-maybe-remove-spaces)
(remove-hook 'pre-command-hook #'evil-insert-repeat-hook)
(evil-maybe-remove-spaces t)
(setq evil-insert-repeat-info evil-repeat-info)
(evil-set-marker ?^ nil t)
(unless (eq evil-want-fine-undo t)
(evil-end-undo-step))
(when (or (evil-normal-state-p evil-next-state)
(evil-motion-state-p evil-next-state))
(evil-move-cursor-back
(and (eolp) (not evil-move-beyond-eol)))))))