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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top