使用邪恶模式正确编辑 shell 缓冲区
properly editing a shell buffer with evil-mode
我正在使用邪恶模式。当我输入 M-x multi-term
时,zsh 打开。
然后我在终端中输入 bcdef
。然后我点击 ESC
进入正常模式,然后点击 b
所以我的光标放在 bcdef
单词的 b
上。然后我点击 i
进入插入模式,然后我输入 a
插入一个 a
。
emacs 没有在我想要的地方插入 a
,而是在单词的末尾插入了 a
。
这是怎么回事?我如何实现所需的正常行为?
这只发生在 shell 缓冲区中。
您必须生成一个被终端吃掉但不被 emacs/evil 吃掉的 ESC
。如果你只按 ESC
,那么 emacs/evil 将吃掉 ESC
而不会将 ESC
发送到终端。
您可以通过在 emacs 模式下点击 C-C C-E
来生成一个被终端而不是 emacs 吃掉的 ESC
。这是 C-h k
告诉我的:
C-c C-e runs the command term-send-esc (found in term-raw-map), which
is an interactive compiled Lisp function in
‘~/code/sources/dotfiles/emacs/elpa/multi-term-20160619.233/multi-term.el’.
It is bound to C-c <escape>, C-c C-e, <emacs-state> C-c <escape>.
(term-send-esc)
Send ESC in term mode.
我正在使用邪恶模式。当我输入 M-x multi-term
时,zsh 打开。
然后我在终端中输入 bcdef
。然后我点击 ESC
进入正常模式,然后点击 b
所以我的光标放在 bcdef
单词的 b
上。然后我点击 i
进入插入模式,然后我输入 a
插入一个 a
。
emacs 没有在我想要的地方插入 a
,而是在单词的末尾插入了 a
。
这是怎么回事?我如何实现所需的正常行为?
这只发生在 shell 缓冲区中。
您必须生成一个被终端吃掉但不被 emacs/evil 吃掉的 ESC
。如果你只按 ESC
,那么 emacs/evil 将吃掉 ESC
而不会将 ESC
发送到终端。
您可以通过在 emacs 模式下点击 C-C C-E
来生成一个被终端而不是 emacs 吃掉的 ESC
。这是 C-h k
告诉我的:
C-c C-e runs the command term-send-esc (found in term-raw-map), which
is an interactive compiled Lisp function in
‘~/code/sources/dotfiles/emacs/elpa/multi-term-20160619.233/multi-term.el’.
It is bound to C-c <escape>, C-c C-e, <emacs-state> C-c <escape>.
(term-send-esc)
Send ESC in term mode.