Steigern Sie Ihre Produktivität mit Zsh-Completions

Steigern Sie Ihre Produktivitat Mit Zsh Completions



Wir alle kennen Zsh. Es handelt sich um einen kostenlosen Open-Source-Shell-Interpreter, der Bash ähnelt, jedoch über mehr Funktionen und ein hohes Maß an Anpassungsmöglichkeiten verfügt.

Zsh verfügt über eine Vielzahl produktivitätssteigernder Funktionen wie Vervollständigungen. Die Zsh-Vervollständigung ist eine Funktion, die intelligente und kontextbezogene Tab-Vervollständigungen bereitstellt. Sie helfen Ihnen, Zeit zu sparen und Tippfehler zu reduzieren, indem sie Befehle, Dateipfade, Parameter und mehr vorschlagen und automatisch vervollständigen.

In diesem Tutorial besprechen wir ausführlich die Funktionalität und Verwendung von Zsh-Vervollständigungen. Wir beginnen mit den Grundlagen und gehen dann zu einer fortgeschritteneren Anpassung und Verwendung über.







Zsh installieren

Bevor Sie sich mit den Zsh-Vervollständigungen befassen, stellen Sie sicher, dass Zsh auf Ihrem System installiert ist. Um zu überprüfen, ob Zsh installiert ist, führen Sie den folgenden Befehl aus:



$ zsh --Ausführung

Wenn Sie Zsh nicht installiert haben, können Sie es schnell mit dem Paketmanager für Ihr System einrichten. Verwenden Sie apt auf einem Debian-basierten System wie folgt:



$ Sudo passendes Update
$ Sudo geeignet Installieren zsh

Unter macOS ist Zsh die Standard-Shell. Aber zur Bestätigung können Sie Homebrew verwenden, um es wie folgt zu installieren:





$ brauen Installieren zsh

Einrichten von Oh My Zsh

Die nächste Komponente, die wir benötigen, um die Zsh-Vervollständigungen nutzen zu können, ist Oh My ZSH. OMZ ist ein beliebtes Framework zum Verwalten der Zsh-Konfigurationen und zum Hinzufügen von Plugins.

Um es zu installieren, führen Sie den folgenden Befehl aus:



$ Sch -C ' $(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh) '

Dadurch sollte das Oh My Zsh-Framework heruntergeladen und auf Ihrem System installiert werden. Es erstellt eine Standarddatei „.zshrc“ in Ihrem Home-Verzeichnis, in der sich alle Konfigurationen für Ihr Zsh befinden.

Sie können diese Datei nach Ihren Wünschen bearbeiten und ändern, um alle gewünschten Funktionen ein- und auszuschließen.

Installieren von Zsh Completions

Abhängig von der Version von Oh My Zsh, die Sie installiert haben, werden die Zsh-Vervollständigungen automatisch installiert.

Wenn Sie es jedoch noch nicht konfiguriert haben, führen Sie den folgenden Befehl aus, um das Plugin zu klonen:

$ Git-Klon https: // github.com / zsh-Benutzer / zsh-Vervollständigungen ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh} / Brauch } / Plugins / zsh-Vervollständigungen

Bearbeiten Sie nach dem Klonen die Datei „.zshrc“ und fügen Sie den folgenden Eintrag zur Datei „.zshrc“ hinzu:

fpath+= ' ${ZSH_CUSTOM:-'$ZSH/custom'} /plugins/zsh-completions/src'

Speichern Sie die Datei und geben Sie die neue Konfiguration als Quelle ein, um die Änderungen zu übernehmen:

$ Quelle .zshrc

Grundlegende Tab-Vervollständigung

Zsh bietet standardmäßig eine grundlegende Tab-Vervollständigung. Wir können damit beispielsweise die Befehlsnamen, Optionen und Dateipfade vervollständigen.

Das folgende Beispiel zeigt das Beispiel der Befehlsvervollständigung in Zsh:

$ cl < TAB >
# automatische Vervollständigung:
$ klar

Dasselbe können wir auch für die Parametervervollständigung tun. Nehmen Sie das folgende Beispiel:

$ ls -l --co < TAB >

# automatische Vervollständigung:

$ ls -l --Farbe

Befehlsvervollständigungen

Wir können auch die benutzerdefinierten Vervollständigungen für verschiedene Befehle definieren. Angenommen, wir haben ein Skript namens „netprobe.sh“ mit den Unterbefehlen „dns“ und „vhosts“.

Die Vervollständigungen für die Unterbefehle können wir erstellen, indem wir in der Datei „~/.zshrc“ eine Funktion wie folgt definieren:

_netprobe ( ) {
Fall $state In
( Befehle )
_Argumente „1: :->Unterbefehl“ ;;
( Unterbefehl )
Fall $Wörter [ 1 ] In
( DNS )
_Argumente „--port[Portnummer]: :_ports“ ;;
( vhosts )
_Argumente „“ ;;
esac
;;
esac
}

Im gegebenen Beispiel definieren wir zunächst eine Funktion namens „_netprobe“, um die Vervollständigungen für den Befehl „netprobe“ zu verarbeiten.

Der Befehlsstatus verwaltet die Vervollständigung des Hauptbefehls „netprobe“.

Als Nächstes definieren wir den Unterbefehlsstatus, um die Vervollständigung der Unterbefehle „dns“ und „vhosts“ zu erleichtern.

Schließlich verwenden wir „_arguments“, um die erwarteten Argumente für jeden Unterbefehl anzugeben.

Um die benutzerdefinierte Vervollständigung zu aktivieren, können wir die Netprobe „compdef_netprobe“ zur Datei „.zshrc“ hinzufügen.

Anpassen der Vervollständigungen

Wie Sie sich vorstellen können, sind Zsh-Vervollständigungen in hohem Maße anpassbar, was es sehr einfach macht, alles nach Ihren Wünschen abzustimmen.

Im Folgenden sind einige gängige Anpassungsoptionen aufgeführt, die Sie verwenden können:

# benutzerdefinierte Vervollständigung für den Befehl „git“.
_git ( ) {
_Argumente '1: :( $(git --help | grep -o ' [a-z]' | tr -d '') )'
}
compdef _git Idiot

Das angegebene Beispiel definiert eine benutzerdefinierte Vervollständigung für den Befehl „git“. Sie können dieses Format für andere Befehle in Ihrem System verwenden.

zstyle ':completion:*:*:ls:*' Optionen '(-A)-a' '(-F)-f' '(-G)-g' '(-H)-h'

In dieser Syntax definieren wir die benutzerdefinierten Vervollständigungen für den Befehl „ls“.

Fuzzy-Matching

Es gibt einige erweiterte Funktionen, die Sie bei Vervollständigungen implementieren können. Eine dieser Funktionen ist die Fuzzy-Suche, die die Unterstützung regulärer Ausdrücke wie das Format der Befehlsvervollständigung ermöglicht.

Um die Fuzzy-Suche zu aktivieren, fügen Sie der Datei „.zshrc“ den folgenden Eintrag hinzu:

zstyle ':Fertigstellung:*' Matcher-Liste 'm:{a-zA-Z}={A-Za-z}'

Wenn Sie diese Option aktivieren, kann Zsh die Befehle und Dateien auch dann zuordnen, wenn ein Tippfehler oder eine andere Groß-/Kleinschreibung vorliegt.

Hostnamen automatisch vervollständigen – SSH

Sie können Zsh auch erlauben, die Remote-Hostnamen automatisch zu vervollständigen, beispielsweise beim Umgang mit SSH.

Fügen Sie den Eintrag wie folgt hinzu:

zstyle ':completion:*:hosts' Gastgeber $ ( Katze ~ / .ssh / bekannte_Hosts )

Dieser Befehl verwendet die Datei „known_hosts“ im Verzeichnis „.ssh“, um die verfügbaren Hosts und die Autovervollständigungsfunktion zu ermitteln.

Abschluss

In diesem Tutorial haben Sie alles gelernt, was Sie über die Autovervollständigungsfunktion in Zsh wissen müssen.