Shell: Wie gehe ich an den Zeilenanfang, wenn ich mich in einem Bildschirm befinde?

70

Ich bin in einem Bildschirm (Bildschirm -Ra). Ich habe ein langes Kommando und bin am Ende. Wie können Sie an den Zeilenanfang gehen, anstatt den Pfeil nach links zu halten?

STRG-A funktioniert, wenn ich mich in einem normalen Fenster befinde, aber wenn ich mich innerhalb eines Bildschirms befinde und STRG-A drücke, erhalte ich die Meldung "Kein anderes Fenster" - scheinbar wird STRG-A auf den Bildschirm gesendet.

Wie springt man in einem Bildschirm an den Anfang einer Zeile?

user11498
quelle
3
Schnellkorrektur: Drücken Sie die HomeTaste, um zum Anfang und Endzum Ende der Zeile zu gelangen.
1
Dies hängt auch stark von der Shell und dem Eingabemodus ab, die Sie verwenden, obwohl ich davon ausgehe, dass Sie bash und die Standard-Emacs-Bindungen verwenden.
Patrick
1
@hesse gegeben Ihre Tastatur hat eine HomeTaste. Nicht immer der Fall
Matteo
Das OP könnte an dieser verwandten Frage interessiert sein .
Dotancohen

Antworten:

81

Verwenden Sie Ctrl- a aoder ändern Sie den Escape-Tastenanschlag des Bildschirms (Option -e).

angus
quelle
6
Wenn Sie nicht sicher sind, drücken Sie Ctrl- a, lassen Sie beide Tasten los und drücken Sie dann a. Mache nicht den gleichen Fehler, den ich gemacht habe Ctrl. Gute Referenzkarte für diese und andere Tastenkombinationen: aperiodic.net/screen/quick_reference
Yzmir Ramirez
6

Entweder können Sie die screenBindungen ändern oder Sie können die Bindungen Ihrer Shell ändern. Angenommen, Ihre Shell ist bash, sollte die Ausgabe von bind -p | grep \C-adie aktuelle Aktion anzeigen, an die Sie gebunden sind Ctrl+A. Verwenden Sie das folgende Formular, um diese Aktion an etwas anderes zu binden:

$ bind '"\C-p": beginning-of-line'

Dadurch wird Ctrl+Pder Cursor an den Zeilenanfang gesetzt. Denken Sie an die Anführungszeichen im Ausdruck. Um eine Bindung aufzuheben, setzen Sie sie einfach auf nichts:

$ bind '"\C-a": '

Verwenden Sie zum Auflisten aller mit der Aktion verknüpften Eingabesequenzen Folgendes:

$ bind -p | grep beginning-of-line

Um die Bindungen dauerhaft zu machen, können Sie die Anweisungen in Ihre ~/.bashrcDatei einfügen und ausgeben source ~/.bashrc.


quelle
6

Ctrl- x- Ctrl- xErmöglicht das Aufrufen des ersten Zeichens in einer readline-kompatiblen Umgebung wie Bash, Python und MySQL. GNU SCREEN ignoriert dies sicher. Keine kundenspezifische Konfiguration notwendig.

Wenn Sie dies anstelle von Ctrl- a- verwenden a, verwenden Sie eine konsistente Tastenkombination - Sie müssen nicht bedenken, ob Sie sich in GNU SCREEN befinden oder nicht.

Für alle Interessierten können Sie mit derselben Tastenkombination auch ans Ende der Zeile gehen, wenn Sie bereits am Anfang stehen.

Tankman 六四
quelle
5
Eigentlich C-x C-xist exchange-point-and-mark. Es kommt nur vor, dass die Markierung standardmäßig am Anfang der Zeile steht. Mit können Sie C-spacedie Marke an einer anderen Stelle setzen.
Ivan Andrus
Ivan, was kannst du normalerweise tun, nachdem du einen Punkt ausgetauscht und markiert hast? Vielen Dank.
Susheel Javadi