2016-10-11 63 views
2

我使用邪惡模式。當我輸入M-x multi-term時zsh打開。正確編輯與邪惡模式的shell緩衝區

然後我在終端中輸入bcdef。然後我打ESC進入正常模式,然後b,所以我的光標位於bcdef字的b。然後我點擊i進入插入模式,然後輸入a插入a

emacs不是在我想要的位置插入a,而是將a插入到單詞的末尾。

發生了什麼事?我如何達到理想的正常行爲?

這隻發生在shell緩衝區中。

+0

是緩衝區'的名字*殼*','*端子*'或'* ANSI長期*',還是其他什麼東西?我不熟悉'multi-term',所以我不確定你在找哪個Emacs shell /終端仿真器。 –

+0

你找到答案了嗎? –

+0

是的。你實際上必須通過另一個鍵組合鍵入ESC。像,選擇C-C C-E。那應該產生一個不被emacs吃掉並直接進入zsh的ESC。看看我的配置文件github.com/ninrod/dotfiles – ninrod

回答

0

你必須生成一個ESC,它被終端吃掉,但不是emacs/evil。如果您只按ESC,那麼emacs/evil會吃掉ESC,而不會將ESC發送到終端。

您可以通過在emacs模式下打C-C C-E來生成終端所使用的ESC,但不能使用emacs。以下是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.