bind Schlüssel zum vollständigen Dateinamen, wo der Kontext, in Zsh ist
-
27-09-2019 - |
Frage
Manchmal möchte ich einen Dateinamen statt, was für mich zsh Vermutungen. Zum Beispiel habe ich eine PNG-Datei ohne eine richtige .png
Suffix, das es ist kein Bild zsh denken läßt, und es wird nicht auflisten, wenn ich Tab
, um ein vollständiges Argument von display
geben.
Ich frage mich, ob es eine Tastenfolge ist, dass abgeschlossen ist für einen Dateinamen, wo der Kontext ist, wie ^XC
für _correct_filename
, oder wie man configure zsh das, was zu tun?
Lösung
Sie können einen Schlüssel hinzufügen Bindung zu tun, was Sie wollen:
zle -C complete complete-word complete-files
bindkey '^X\t' complete
complete-files () { compadd - $PREFIX* }
Edit: Added $PREFIX
Sie können diese Zeilen in Ihrer ~/.zshrc
Datei hinzufügen.
Das macht den Abschluss Liste aller Dateien, wenn Sie die Taste Strg - x Tab bei jedem Schritt anstelle von Tab . Sie könnten eine andere Tastenkombination, dass zu Ihnen passt wählen.
oder zu ImageMagick Vervollständigungen immer machen alle Dateien, versuchen Bearbeitung (ein Backup zuerst) die Datei /usr/share/zsh/functions/Completion/Unix/_imagemagick
(oder ähnlich) und diese ändern, um die bestehende Linie auszukommen, die mit _files
beginnt und fügen Sie den neuen gezeigt:
if (( $# )); then
# _files "$@" -g "*.(#i)(${~formats//:/|})(-.)"
_files "$@"
return
fi
Andere Tipps
Dennis' Antwort war erweitern Tilde nicht für mich, so dass ich Sachen wie complete-files: no matches found: ~/ma*
bekommen würde, wenn ich versuchte es auf foo ~/ma
aufzurufen. Ich habe eine andere in der zsh FAQ finden, die sie erweitern, aber:
zle -C complete-file complete-word _generic
zstyle ':completion:complete-file::::' completer _files
bindkey '^xF' complete-file