Fügen Sie der Vervollständigung der Registerkarte zsh Zeichenfolgen für alle Befehle und Argumente hinzu - Befehlszeile, zsh, Vervollständigung der Registerkarte

Ich möchte die Schlüsselwörter hinzufügen foo und bar Wird zu den Ergebnissen der automatischen Vervollständigung für einen Befehl oder ein Argument hinzugefügt.

z.B:

cd <TAB> sollte in den vorschlägen zusätzlich zu den vorhandenen abschlüssen foo und bar geben

blah <TAB> sollte in den vorschlägen zusätzlich zu den vorhandenen abschlüssen foo und bar geben.

Die zsh-Vervollständigungsartikel, die ich gelesen habeErwähnen Sie Methoden, um Vervollständigungen zu bestimmten Befehlen hinzuzufügen, aber keine, um zu globalen Vervollständigungen einen Satz von Wörtern hinzuzufügen (oder wenn es eine globale Vervollständigungsliste gibt, die immer existiert).

Antworten:

3 fĂĽr Antwort â„– 1

Musste das Handbuch von zshcompsys durchforsten, um die richtigen Befehle herauszufinden

Der folgende Code am Ende von ~ / .zshrc funktioniert fĂĽr mich

function _my_completions() {
local -a mywords
mywords=( foo bar )
compadd -a mywords
}
compdef _my_completions -first-

Die wichtige Flagge ist hier der Kontext -first- . Wie in der Manpage von zshcompsys beschrieben

-first-
This is tried before any other completion function.  The function called may set the _compskip parameter
to one of various values: all: no further completion is attempted; a string containing the
substring patterns: no pattern completion functions will be called; a string containing default: the
function for the `-default-" context will not be called, but functions defined for commands will

Lies jetzt