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?
Antworten:
Wenn Sie Enternach Eingabe eines unvollständigen Befehls drücken , zeigt die
bash
Shell 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 derEDITOR
Shell / Umgebungsvariablen angegebene oderemacs
wenn 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.
quelle
set -o vi
und 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 Sieset -o emacs
diese Option , um zurückzukehren in den Emacs-Befehlszeilen-Bearbeitungsmodus.Ctrl+X
Ctrl+E
, öffnet die Shell es für Sie.