C'est certes une question superficielle.
Bien que ansi-term
commence à se comporter correctement lorsque je l'ouvre pour la première fois, il semble se dégrader en mode `` modifiable '' après quelques commandes, par exemple, lorsque je le fais C-a
(début de la ligne) suivi de C-k
(tuer la ligne), il efface toute l'invite.
Pour ma raison d'esprit, y a-t-il un moyen de rendre les invites et la sortie précédente non modifiables (pour shell
)? (Mis à jour pour exclure ansi-term compte tenu des différences significatives.)
J'utilise zsh dans Emacs 24.4; Le système d'exploitation est LXDE (Ubuntu 14.04) via Virtual Box.
(Idéalement, je serais toujours en mesure de déplacer mon curseur ...)
C-c C-j
. Essayez de trouver cette valeur par défaut ou passez en mode char avecC-c C-k
.shell-mode
/term-mode
respectivement ne dérivent pas decomint-mode
, vous posez ici deux questions très différentes en même temps. Voulez-vous diviser cela en deux questions distinctes?Réponses:
COMINT modes (comme dérivée de
shell
,ielm
, ...) les fonctions de support de filtre, l'extrait suivant rend la sortie et rapide en lecture seule:Quant à
ansi-term
(qui n'est pas dérivé de comint ), il propose deux modes de fonctionnement,char mode
qui restent aussi fidèles que possible aux liaisons du shell et du logiciel qui y fonctionne etline mode
qui vous permettent d'éditer le tampon à votre guise. Vous devez généralement rester danschar mode
(lié àC-c C-k
) et parfois basculer surline mode
(lié àC-c C-j
) pour modifier la sortie de la commande.la source
Lors du mélange
term
avecshell-mode
, la variablecomint-use-prompt-regexp
semble être définie de temps en temps. Cela provoque un comportement un peu comme vous l'avez décrit: en mode shell C-a ira au début de la ligne, C-ktuera toute la ligne, y compris l'invite.Une solution simple consiste à réinitialiser
comint-use-prompt-regexp
avec C-: (setq comint-use-prompt-regexp nil), forçant le mode shell à utiliser les propriétés de texte dont les touches de déplacement du curseur sont conscientes.Il y a une description de comment cela fonctionne dans le manuel GNU Emacs ici: https://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Prompts.html
la source
Essayez de personnaliser la variable
comint-prompt-read-only
ent
.Cela affectera
shell-mode
et d'autres dériverontcomint-mode
, mais pasterm-mode
.la source