Eshell: aller à la ligne d'invite en appuyant sur la touche

8

Parfois, lorsque je fais défiler vers le haut dans eshell, le point quitte la ligne de commande pour rester dans la zone visible. Lorsque j'entre ensuite une commande, je n'entre pas la commande à l'invite, mais j'évalue le texte quelque part dans la sortie des commandes précédemment appelées. C'est assez ennuyeux.

Comment puis-je m'assurer que les retours eshell pointent vers l'invite de commande lorsque j'entre un caractère, comme dans les autres shells?

/ edit: Voici un aperçu de la situation. Je tape ls, puis je fais défiler vers le haut pour passer en revue la sortie, puis je décide que je veux faire un cd .., mais parce qu'il insère simplement la commande au point, il se révèle être une ordure.

eshell-scroll-point

Geier
la source
Je ne pense pas que ce soit ennuyeux. Dans Eshell, vous pouvez exécuter une commande depuis n'importe où et en utilisant la sortie précédente, non seulement après la dernière invite de commande, mais c'est évidemment une fonctionnalité très intéressante. Pour moi, cette fonctionnalité est la principale raison pour laquelle j'utilise Eshell. Pour aller à la dernière invite de commande, j'utilise M->.
xuchunyang
Y a-t-il la possibilité de fournir une capture d'écran d'un cas où le point quitte la ligne de commande et vous souhaitez retourner le point à l'invite de commande en insérant un caractère arbitraire? Le point gauche est-il sur la même ligne que la dernière invite? Aimez-vous revenir à la dernière invite? Que faire s'il y a du texte incomplet à la dernière invite?
Nom du
@xuchunyang: Le problème est vraiment que le point s'éloigne de l'invite lorsque je ne le veux pas (c'est-à-dire lorsque je fais défiler vers le haut, voir la capture d'écran). Donc, avoir le point rester à l'invite à moins que je ne le déplace quelque part par moi-même serait la «vraie» solution. Il semble que le point doit toujours être dans la zone visible dans emacs.
Geier

Réponses:

5
(setq eshell-scroll-to-bottom-on-input t)

devrait faire ce que vous voulez.

xuchunyang
la source
Cela semble fonctionner.
Nom du
1
Oui, ça marche. Voici un screencast: i.imgur.com/Mjzt8j2.gif
Geier
0

Je pense que ce que vous recherchez est le comportement de Plan 9 Smart Shell dans Emacs. Mickey Peterson en a parlé dans son récent livre Mastering Emacs , qui consiste à les ajouter à votre fichier init.el:

(require 'eshell)
(require 'em-smart)
(setq eshell-where-to-jump 'begin)
(setq eshell-review-quick-commands nil)
(setq eshell-smart-space-goes-to-end t)
Utilisateur Emacs
la source
Ne fonctionne pas :(
Geier
Trois options ont déjà la même valeur que vous avez définie (au moins dans Emacs 25 que j'utilise), vous ne pouvez donc pas les définir à nouveau maintenant.
xuchunyang