Ich arbeite viel im Terminal und habe viel über meine bevorzugte Shell gelernt, zsh. Mit welchen Funktionen von zsh können Sie Ihre Produktivität bei der Arbeit steigern? Einer meiner Favoriten ist die Multi-Dir-Autovervollständigung. Anstatt also zu tippen, cd /fo{tab}/ba{tab}/ba{tab}
kann ich einfach so cd /fo/ba/ba{tab}
viele Tastenanschläge machen und speichern!
command-line
shell
zsh
Frew Schmidt
quelle
quelle
Antworten:
Habe gerade dieses kleine Juwel gefunden:
Diese Form von
cd
ersetzt alle Vorkommenold
im vollständigen Pfad des aktuellen Verzeichnisses durchnew
und versucht, das Arbeitsverzeichnis in den resultierenden Pfad zu ändern.Wenn sich Ihr Arbeitsverzeichnis beispielsweise befindet
/home/larry/code/backrub/server
und Sie zu diesem wechseln möchten,/home/sergei/code/backrub/server
müssen Sie nur Folgendes tun:quelle
Ich werde mich an Dinge halten, die Bash meines Wissens nicht können.
Lust auf Vollendung. Ja, bash hat einiges davon, aber zsh kennt mehr Befehle, ist oft genauer und hat viel mehr Konfigurationsmöglichkeiten.
Der
**
Glob**/foo
sucht z. B.foo
rekursiv nach Dateien, die in Unterverzeichnissen aufgerufen werden. (Und***/foo
folgt auch Symlinks.) Zwei Zeichen anstelle eines langenfind
Befehls (was schwer zu verstehen ist, wenn einige Dateinamen Sonderzeichen wie Leerzeichen und Anführungszeichen enthalten).Glob-Qualifizierer wie in
foo*(*)
(mögenfoo*
, behalten aber nur ausführbare Dateien bei),foo(.)
(nur reguläre Dateien, keine Verzeichnisse),foo(-@)
(nur baumelnde Symlinks),foo*(m-5)
(nur Dateien, die in den letzten 5 Minuten geändert wurden),foo*(om[1])
(die zuletzt geänderte Datei) , etc.autocd
: Wenn Sie einen Verzeichnisnamen als Befehl eingeben, wird dieser geändert (cd
oderpushd
je nachdem, wie Sie ihn konfiguriert haben). Dercd
Befehl ist drei Zeichen zu lang! Ich kann Bash nicht länger als 30 Sekunden verwenden, ohne den Schmerz zu spüren. Ich habe auch ein paar Einzelzeichenfunktionen, wie zzmv
eingebaute undWährend ich dabei bin, ist das
noglob
eingebaut.Die
precmd
undpreexec
Hook-Funktionen: Ichpreexec
setze den Titel meines Terminals so, dass er den ausgeführten Befehl enthält, undprecmd
ersetze den Befehl durch seinen Exit-Code. So etwas wiebg
(damit Strg + Z Strg + Z ein Programm anhält und sofort im Hintergrund fortsetzt).setopt append_history autocd extended_glob no_match
quelle
Die Fähigkeit von zsh, Dinge außer Dateien und Verzeichnissen automatisch zu vervollständigen.
Wenn beispielsweise das git-Paket installiert ist, zeigt git-sh {tab} Folgendes an:
quelle
Ich mag die globalen Aliase sehr
lass mich Dinge tun wie
und paging bekommen.
quelle
Wie von anderen erwähnt, ist die automatische Vervollständigung von zsh ausgezeichnet.
Sie können Ihre eigene Autovervollständigung für benutzerdefinierte Befehle einrichten, ohne zu viel Aufwand. So tappen Sie vollständige Benutzernamen als Argumente für finger ein:
Weitere Optionen, die ich gerne eingestellt habe:
Pushd und Popd sind auch ziemlich praktisch.
Es ist ärgerlich, dass die Schlüssel home und end bei zsh standardmäßig nicht wie bei anderen Shells funktionieren, aber Sie können dies beheben.
quelle
Aktivieren Sie die automatische Vervollständigung bei Verwendung
scp
auf einem Remote-Server.Die richtige Eingabeaufforderung zum Anzeigen zusätzlicher Informationen.
quelle