emacs - 使用 evil-mode 正确编辑 shell 缓冲区

标签 emacs evil-mode

我正在使用 evil-mode 。当我输入 M-x multi-term zsh 时打开。

然后我在终端中输入 bcdef。然后我按 ESC 进入正常模式,然后按 b 所以我的光标放在 bcdef 字的 b 上.然后我点击 i 进入插入模式,然后我输入 a 插入一个 a

emacs 不是在我想要的地方插入 a,而是在单词的末尾插入 a

发生了什么事?我如何实现所需的正常行为?

这只发生在 shell 缓冲区中。

最佳答案

您必须生成一个 ESC,它会被终端吃掉,但不会被 emacs/evil 吃掉。如果你只是按 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.

关于emacs - 使用 evil-mode 正确编辑 shell 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39969264/

相关文章:

emacs - 用 Emacs + Evil 插入完整的行

emacs - evil-mode 中的负面争论

emacs - 能不能让emacs有类似010编辑器文件格式分析的功能?

emacs - 保存组织议程

emacs - 删除不满足正则表达式匹配的行

vim - Emacs + 邪恶 : non incremental search and persistent highlighting?

tmux - Spacemacs 转义键需要延迟才能工作

Emacs 邪恶 : general window movement remap

emacs - 如何显示信息页面(未安装在系统上)?

regex - 在 Emacs 的 C/C++ 模式下,将#if 0...#endif block 中的代码面更改为注释面