Das executable
Tag ruft _files -g '*(-*)
in diesem Fall auf. Dann _files
ruft mehr _tags
, so dass es notwendig wäre, diese zu spezifizieren implizit angegebenen Tags in den Abschluss - Funktionen auch.
zstyle -e ':completion:*:*:-command-:*:*' tag-order ' reply=( "executables:Executables:Executables builtins:Builtins:Builtins commands:Commands:Commands aliases:Aliases:Aliases functions:Functions:Functions parameters:Variables:Variables reserved-words:Keywords:Keywords globbed-files directories" "-" ) '
Es wäre nützlich, Folgendes hinzuzufügen globbed-files
und directories
in diesem Fall:
% ls -al total 80 drwxr-xr-x 3 t t 4096 May 18 08:27 . drwxrwxrwt 16 root root 69632 May 18 15:27 .. drwxr-xr-x 2 t t 4096 May 18 08:27 directory -rwxr-xr-x 1 t t 0 May 18 08:27 executable-file -rw-r--r-- 1 t t 0 May 18 08:27 test % ./<TAB> Executables directory/ executable-file*
Bei der obigen Einstellung werden Verzeichnisse und lokale ausführbare Dateien jedoch in derselben Gruppe "Ausführbare Dateien" gespeichert. Wenn wir möchten, dass "Verzeichnisse" in andere Gruppen aufgenommen werden, können wir das file-patterns
direkt angeben und so verwenden:
zstyle ':completion:*:*:-command-:*:*' file-patterns \ '*(#q-*):executables:Executables *(-/):directories:Directories' zstyle -e ':completion:*:*:-command-:*:*' tag-order ' reply=( "executables:Executables:Executables builtins:Builtins:Builtins commands:Commands:Commands aliases:Aliases:Aliases functions:Functions:Functions parameters:Variables:Variables reserved-words:Keywords:Keywords directories:Directories" - ) '
Im folgenden Beispiel befinden sich "Verzeichnis" und "ausführbare Datei" in getrennten Gruppen:
% ls -al total 80 drwxr-xr-x 3 t t 4096 May 18 08:27 . drwxrwxrwt 15 root root 69632 May 18 15:24 .. drwxr-xr-x 2 t t 4096 May 18 08:27 directory -rwxr-xr-x 1 t t 0 May 18 08:27 executable-file -rw-r--r-- 1 t t 0 May 18 08:27 test % ./<TAB> Executables executable-file* Directories directory/
Im Folgenden ist das kleinste .zshrc-Beispiel dargestellt:
autoload -Uz compinit && compinit zstyle ':completion:*:*:*:*:*' group-name '' zstyle ':completion:*:descriptions' format '%B%F%d%f%b' zstyle ':completion:*:*:*:*:*' menu 'select' # This comment out block is just for a reminder of my answer's first half. # zstyle -e ':completion:*:*:-command-:*:*' tag-order ' # reply=( # "executables:Executables:Executables # builtins:Builtins:Builtins # commands:Commands:Commands # aliases:Aliases:Aliases # functions:Functions:Functions # parameters:Variables:Variables # reserved-words:Keywords:Keywords # globbed-files directories" # "-" # ) # ' zstyle ':completion:*:*:-command-:*:*' file-patterns \ '*(#q-*):executables:Executables *(-/):directories:Directories' zstyle -e ':completion:*:*:-command-:*:*' tag-order ' reply=( "executables:Executables:Executables builtins:Builtins:Builtins commands:Commands:Commands aliases:Aliases:Aliases functions:Functions:Functions parameters:Variables:Variables reserved-words:Keywords:Keywords directories:Directories" - ) '
Aktualisiert: Kommentieren Sie den nicht benötigten Block aus.