Bash

Autovervollständigung mit dem Bash complete Befehl implementieren

Dieser Artikel stellt vor, wie man Autovervollständigung mit dem complete-Befehl auf der Bash-Sprachbefehlszeile für Linux-PCs, Server und Ubuntu implementiert. Auch Vervollständigung genannt. Tab-Vervollständigung. Auf Englisch heißt es Autocompletion. Es ist eine praktische Funktion. Einige Leute implementieren möglicherweise angepasste Autovervollständigung mit fzf, aber fzf ist fzf, und obwohl es in Go geschrieben ist...

Shou Arisaka
2 Min. Lesezeit
3. Okt. 2025

Dieser Artikel stellt vor, wie man Autovervollständigung mit dem complete-Befehl auf der Bash-Sprachbefehlszeile für Linux-PCs, Server und Ubuntu implementiert.

Auch Vervollständigung genannt. Tab-Vervollständigung. Auf Englisch heißt es Autocompletion. Es ist eine praktische Funktion.

Wie implementiert man also eine solche Autovervollständigung?

Einige Leute implementieren möglicherweise angepasste Autovervollständigung mit fzf, aber fzf ist fzf, und obwohl es in Go geschrieben ist, ist es schwer, und für eine kleine Implementierung ist es zu viel.

Ich habe meine eigene benutzerdefinierte Funktion implementiert, und wenn ich mit dieser Funktion Tab-Vervollständigung verwende, möchte ich nur, dass sie Befehle oder Funktionen wie der type-Befehl vervollständigt. Ich möchte Kandidaten ähnlich der Tab-Vervollständigung des cd-Befehls bereitstellen.

Wenn Sie eine benutzerdefinierte Funktion namens types() implementiert haben und Tab-Vervollständigung mit Befehlen als Kandidaten ähnlich wie type durchführen möchten, tun Sie Folgendes:

complete -A command types

Image

Wenn Sie Kandidaten ähnlich der Tab-Vervollständigung des cd-Befehls bereitstellen möchten:

complete -F _cd hoge

Diese könnten nützlich sein:

-A action Die Aktion kann eine der folgenden sein, um eine Liste möglicher Vervollständigungen zu generieren:

-C command Der Befehl wird in einer Subshell-Umgebung ausgeführt, und seine Ausgabe wird als mögliche Vervollständigungen verwendet.

-F function Die Shell-Funktion wird in der aktuellen Shell-Umgebung ausgeführt. Bei der Ausführung ist $1 der Name des Befehls, dessen Argumente vervollständigt werden, $2 ist das zu vervollständigende Wort und $3 ist > das Wort, das dem zu vervollständigenden Wort vorausgeht, wie oben beschrieben (siehe Programmable Completion). Wenn sie fertig ist, werden die möglichen Vervollständigungen aus dem Wert der COMPREPLY-Array-Variablen abgerufen.

Mit der Option -A können Sie Tab-Vervollständigungskandidaten auf vorlagenähnliche Weise einfach zuweisen. Wählen Sie Ihren Lieblingswert aus dem Folgenden: ``` alias arrayvar binding builtin command directory disabled enabled export file function group helptopic hostname job keyword running service setopt shopt signal stopped user variable ``` Für eine detaillierte Erklärung siehe die folgende Referenz:

Bash Reference Manual bash - What’s the use of complete command? - Ask Ubuntu

Wenn Sie sich die bash_completion-Datei ansehen, werden Sie verstehen, aber der Code ist komplex und Sie haben keine Lust, ihn zu lesen. Selbst type _cd ergibt keinen Sinn, was geschrieben steht…

Ich denke, die diesmal vorgestellte Methode ist gut für einfache Autovervollständigung, aber für diejenigen, die komplexe Autovervollständigung implementieren möchten, empfehle ich die Verwendung von fzf.

fzfでBashコマンドラインをめっちゃ便利にする

Diesen Artikel teilen

Shou Arisaka 3. Okt. 2025

🔗 Links kopieren