2016-10-11 10 views
2

Я использую злой режим. Когда я печатаю M-x multi-term zsh открывается.правильно отредактировать буфер оболочки с злым режимом

I then type bcdef в терминале. Затем я нажал ESC, чтобы войти в нормальный режим, затем b, поэтому мой курсор находится на b слова bcdef. Затем я нажал i, чтобы войти в режим ввода, а затем введите a, чтобы вставить a.

Вместо того, чтобы вставлять a, где я хотел, emacs вставляет a в конце слова.

Что происходит? как достичь желаемого нормального поведения?

Это происходит только в буферах оболочки.

+0

Является ли имя буфера '* оболочки *' '* терминал *' или '* ANSI срок *', или что-то еще? Я не знаком с 'multi-term', поэтому я не уверен, какой эмулятор/эмулятор Emacs вы используете. –

+0

вы нашли ответ? –

+0

есть. вам действительно нужно вводить ESC через другую комбинацию клавиш. например, выберите C-C C-E. который должен произвести ESC, который не съеден emacs и идет непосредственно к zsh. взгляните на мои конфигурационные файлы github.com/ninrod/dotfiles – ninrod

ответ

0

Вы должны произвести ESC, который съеден терминалом, но не emacs/evil. Если вы просто нажмете ESC, то emacs/evil съедят ESC и не отправят ESC на терминал.

Вы можете изготовить ESC, который есть на терминале, но не emacs, нажав C-C C-E в режиме 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.