Schreiben Sie strukturierte Befehle in mehreren Zeilen mit aktivierter Tabulatortaste

10

Ich möchte einen strukturierten Befehl in mehreren Zeilen schreiben als

$ for i in *;
 do
    file $i;
 done
bmdt.md: ASCII text
breakfast.md: ASCII text
brmdh.md: ASCII text
test.sh: Bourne-Again shell script text executable, ASCII text

aber finde die Registerkarte funktioniert nicht,

Wie kann ich die Tabulatortaste in der Bash-Konsole aktivieren?

Infinitesimalrechnung
quelle
4
Drücken Sie stattdessen die Strg-V-Taste. Die Registerkarte ist standardmäßig an die Datei- / Befehlsvervollständigung gebunden.
Mosvy

Antworten:

10

Wenn Sie Enternach Eingabe eines unvollständigen Befehls drücken , zeigt die bashShell eine Fortsetzungsaufforderung (die sekundäre Eingabeaufforderung $PS2) an, mit der Sie den eingegebenen Befehl ausführen können. Die Befehlszeilenbearbeitungsfunktionen der Shell zu diesem Zeitpunkt sind die gleichen wie bei der ursprünglichen Eingabeaufforderung (der primären Eingabeaufforderung $PS1). Dies bedeutet, dass der TabSchlüssel die Befehls- und Dateinamenvervollständigung wie gewohnt ausführt.

Verwenden Ctrl+V Taboder verwenden Sie Leerzeichen zum Einrücken, um ein Tabulatorzeichen einzufügen . Tabulatorzeichen (oder andere Literalzeichen) können immer eingefügt werden, wenn das Präfix " Ctrl+V."


Alternativ können Sie im Emacs-Befehlszeilen-Bearbeitungsmodus (der meiner Meinung nach die Standardeinstellung ist bash) Ctrl+X Ctrl+Eeinen Editor aufrufen , in den Sie Ihren Befehl eingeben können. Der verwendete Editor ist der von der EDITORShell / Umgebungsvariablen angegebene oder emacswenn diese Variable nicht festgelegt ist.

Drücken Escape vSie im Bearbeitungsmodus der Vi-Befehlszeile, um dasselbe zu tun.

Der Befehl wird nach dem Speichern und Beenden des Editors ausgeführt.

Kusalananda
quelle
Könnte ich fragen, was vi-Befehlszeile ist? Ich bin mir bewusst, dass Vim ein Editor ist, der im Voraus geöffnet, hineingegangen und bearbeitet werden sollte, anstatt direkt in den Befehl einzugeben und auszuführen.
Kalkül
1
@avirate Vim ist eine Variante des ursprünglichen Vi-Editors. "Vi-Befehlszeilen-Bearbeitungsmodus" ist ein Modus, den Sie aktivieren set -o viund der Ihnen die Möglichkeit gibt, Vi / Vim-Bearbeitungsbefehle in der Befehlszeile zu verwenden, z. B. ( Esc) dw, um bis zum Ende des aktuellen Wortes zu löschen usw. Verwenden Sie set -o emacsdiese Option , um zurückzukehren in den Emacs-Befehlszeilen-Bearbeitungsmodus.
Kusalananda
erstaunlich, ich suche und erforsche es sofort.
Kalkül
1
@avirate Beachten Sie, dass der Editor nicht im Voraus geöffnet werden muss. Wenn Sie drücken Ctrl+X Ctrl+E, öffnet die Shell es für Sie.
Kusalananda