lil*_*jwg 6 zsh zsh-completion
有时我想要一个文件名而不是zsh为我猜测的.例如,我有一个没有正确.png后缀的PNG文件,这使得zsh认为它不是图片,并且当我输入Tab完成参数时不会列出它display.
我想知道是否有是完成了一个文件名的任何地方上下文,就像一个键序列^XC的_correct_filename,或者如何配置的zsh做的事情吗?
您可以添加键绑定以执行您想要的操作:
zle -C complete complete-word complete-files
bindkey '^X\t' complete
complete-files () { compadd - $PREFIX* }
Run Code Online (Sandbox Code Playgroud)
编辑:已添加$PREFIX
您可以将这些行添加到您的~/.zshrc文件中.
当你按下时,这会使完成列表中的所有文件Ctrl- x Tab在每一步而不是Tab.您可以选择适合您的其他按键组合.
或者要使ImageMagick完成始终包含所有文件,尝试编辑(先备份)文件/usr/share/zsh/functions/Completion/Unix/_imagemagick(或类似文件)并更改此项以注释掉以现有行开头_files并添加显示的新行:
if (( $# )); then
# _files "$@" -g "*.(#i)(${~formats//:/|})(-.)"
_files "$@"
return
fi
Run Code Online (Sandbox Code Playgroud)
小智 5
丹尼斯的回答没有为我扩展波形符,所以我会得到类似complete-files: no matches found: ~/ma*当我尝试在 上调用它时的信息foo ~/ma。不过,我确实在zsh FAQ中找到了一个可以扩展它们的替代方案:
zle -C complete-file complete-word _generic
zstyle ':completion:complete-file::::' completer _files
bindkey '^xF' complete-file
Run Code Online (Sandbox Code Playgroud)