2016-10-11 4 views
2

J'utilise le mode maléfique. Quand je tape M-x multi-term zsh s'ouvre. Puis je tape bcdef dans le terminal. Puis je tape ESC pour entrer en mode normal, puis b alors mon curseur est placé sur b du mot bcdef. Ensuite, je tape i pour entrer en mode insertion, puis je tape a pour insérer un a. Au lieu d'insérer le a où je voulais, emacs insère a à la fin du mot.Modifier correctement un tampon de shell avec le mode mal

Que se passe-t-il? comment puis-je atteindre le comportement normal souhaité?

cela se produit uniquement dans les tampons de shell.

+0

est le nom du tampon '* shell *', '' * terminaux *, ou '* * ansi terme', ou autre chose? Je ne suis pas familier avec 'multi-term', donc je ne suis pas sûr de l'émulateur de shell/terminal Emacs dans lequel vous vous trouvez. –

+0

Avez-vous trouvé la réponse? –

+0

oui. vous devez en fait taper ESC via un autre combo de touches. comme, choisissez C-C C-E. cela devrait produire un ESC qui n'est pas mangé par emacs et qui va directement à zsh. Jetez un oeil à mes fichiers de configuration github.com/ninrod/dotfiles – ninrod

Répondre

0

Vous devez produire un ESC qui est mangé par le terminal mais pas par emacs/evil. Si vous appuyez simplement sur ESC, puis emacs/evil va manger le ESC et ne pas envoyer le ESC au terminal.

Vous pouvez produire un ESC consommé par le terminal, mais pas par emacs, en appuyant sur C-C C-E en mode emacs. Voici ce que C-h k me dit:

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.