chiave si legano al nome del file completo ovunque il contesto è in Zsh
-
27-09-2019 - |
Domanda
A volte voglio un nome invece di quello che zsh congetture per me. Per esempio, ho un file PNG senza un adeguato suffisso .png
, il che rende zsh pensare che non è un quadro e non elencherà quando digito Tab
alle argomentazioni complete di display
.
Mi chiedo se c'è una sequenza di tasti che completa per un nome di file, ovunque il contesto è, come ^XC
per _correct_filename
, o come configurare zsh di fare la cosa?
Soluzione
È possibile aggiungere una chiave vincolante per fare ciò che si vuole:
zle -C complete complete-word complete-files
bindkey '^X\t' complete
complete-files () { compadd - $PREFIX* }
Modifica Aggiunto $PREFIX
È possibile aggiungere queste righe al file ~/.zshrc
.
che rende l'elenco di completamento di tutti i file quando si preme Ctrl - x Tab ad ogni passo, invece di Tab . Si poteva scegliere un'altra combinazione di tasti che vi si addice.
o per effettuare completamenti ImageMagick sono sempre comprensivi di tutti i file, provare a modificare (fare un backup prima) il file /usr/share/zsh/functions/Completion/Unix/_imagemagick
(o simili) e cambiare questo per commentare la linea esistente che inizia con _files
e aggiungere quello nuovo mostrato:
if (( $# )); then
# _files "$@" -g "*.(#i)(${~formats//:/|})(-.)"
_files "$@"
return
fi
Altri suggerimenti
Risposta Dennis' non espandere tilde per me, quindi vorrei avere roba come complete-files: no matches found: ~/ma*
quando ho provato a richiamare su foo ~/ma
. Ho trovato un supplente nella zsh FAQ che li si espanderà, però:
zle -C complete-file complete-word _generic
zstyle ':completion:complete-file::::' completer _files
bindkey '^xF' complete-file