Variable: claude-code-ide-ghostel-evil-escape
claude-code-ide-ghostel-evil-escape is a customizable variable defined
in claude-code-ide.el.
Value
evil
Documentation
How insert-state ESC is routed in the ghostel backend's Claude buffers.
Applied per buffer via evil-ghostel--escape-mode, so it overrides the
global evil-ghostel-escape default for Claude Code sessions only.
Claude Code runs as a full-screen TUI (alt-screen / DECSET 1049), so
evil-ghostel-escapes default auto routes ESC to the terminal and
never enters evil normal state. The default here is evil so ESC
switches to normal state for editing the prompt; note that Claude then
no longer receives ESC as its interrupt key.
Valid values match evil-ghostel-escape: auto, terminal, evil.
Set to nil to leave the buffer at the global evil-ghostel-escape
default. Has no effect unless the evil-ghostel package is loaded and
the terminal backend is ghostel.
Source Code
;; Defined in /nix/store/yjvbhwl7p6zrbw9xlnni7y4hra8sa3pl-emacs-packages-deps/share/emacs/site-lisp/claude-code-ide.el
(defcustom claude-code-ide-ghostel-evil-escape 'evil
"How insert-state ESC is routed in the ghostel backend's Claude buffers.
Applied per buffer via `evil-ghostel--escape-mode', so it overrides the
global `evil-ghostel-escape' default for Claude Code sessions only.
Claude Code runs as a full-screen TUI (alt-screen / DECSET 1049), so
`evil-ghostel-escape's default `auto' routes ESC to the terminal and
never enters evil normal state. The default here is `evil' so ESC
switches to normal state for editing the prompt; note that Claude then
no longer receives ESC as its interrupt key.
Valid values match `evil-ghostel-escape': `auto', `terminal', `evil'.
Set to nil to leave the buffer at the global `evil-ghostel-escape'
default. Has no effect unless the `evil-ghostel' package is loaded and
the terminal backend is `ghostel'."
:type '(choice (const :tag "Evil (ESC enters normal state)" evil)
(const :tag "Terminal (ESC sent to Claude)" terminal)
(const :tag "Auto (alt-screen heuristic)" auto)
(const :tag "Leave global default" nil))
:group 'claude-code-ide)