Eshell: Gehen Sie beim Drücken der Taste zur Eingabeaufforderungszeile

8

Wenn ich in Eshell nach oben scrolle, verlässt point manchmal die Eingabeaufforderungszeile, um im sichtbaren Bereich zu bleiben. Wenn ich dann einen Befehl eingebe, gebe ich den Befehl nicht an der Eingabeaufforderung ein, sondern füge den Text irgendwo in die Ausgabe der zuvor aufgerufenen Befehle ein. Das ist ziemlich nervig.

Wie kann ich sicherstellen, dass eshell wie bei anderen Shells auf die Eingabeaufforderung zurückgreift, wenn ich ein Zeichen eingebe?

/ edit: Hier ist ein Screencast der Situation. Ich tippe ls, dann scrolle ich nach oben, um die Ausgabe zu überprüfen, und entscheide dann, dass ich a cd ..ausführen möchte , aber da der Befehl nur an der Stelle eingefügt wird, stellt sich heraus, dass es sich um Müll handelt.

Eshell-Scroll-Punkt

Geier
quelle
Ich finde es nicht nervig. In Eshell können Sie einen Befehl von überall ausführen und die vorherige Ausgabe verwenden, nicht nur nach der letzten Eingabeaufforderung, es ist offensichtlich eine sehr coole Funktion. Für mich ist diese Funktion der Hauptgrund, warum ich Eshell verwende. Um zur letzten Eingabeaufforderung zu gelangen, verwende ich M->.
Xuchunyang
Gibt es die Möglichkeit, einen Screenshot eines Falls bereitzustellen, in dem der Punkt die Befehlszeile verlässt und Sie den Punkt durch Einfügen eines beliebigen Zeichens an die Eingabeaufforderung zurückgeben möchten? Befindet sich der linke Punkt in derselben Zeile wie die letzte Eingabeaufforderung? Möchten Sie zur letzten Eingabeaufforderung zurückkehren? Was ist, wenn bei der letzten Eingabeaufforderung unvollständiger Text vorhanden ist?
Name
@xuchunyang: Das Problem ist wirklich, dass sich der Punkt von der Eingabeaufforderung entfernt, wenn ich es nicht möchte (dh wenn ich nach oben scrolle, siehe den Screencast). Es wäre also die "echte" Lösung, wenn der Punkt an der Eingabeaufforderung bleibt, wenn ich ihn nicht selbst irgendwohin verschiebe. Scheint, als müsste der Punkt in Emacs immer im sichtbaren Bereich liegen.
Geier

Antworten:

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

sollte tun was du willst.

Xuchunyang
quelle
Das scheint zu funktionieren.
Name
1
Ja, das funktioniert. Hier ist ein Screencast: i.imgur.com/Mjzt8j2.gif
Geier
0

Ich denke, was Sie suchen, ist das Verhalten von Plan 9 Smart Shell in Emacs. Mickey Peterson hat dies in seinem kürzlich erschienenen Buch Mastering Emacs behandelt , in dem es darum geht, diese zu Ihrer init.el-Datei hinzuzufügen:

(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)
Emacs Benutzer
quelle
Funktioniert nicht :(
Geier
Es gibt drei Optionen, die bereits denselben Wert haben, den Sie festgelegt haben (zumindest in Emacs 25, das ich verwende), sodass Sie sie jetzt möglicherweise nicht erneut festlegen.
Xuchunyang