有时我想要一个文件名而不是zsh为我猜测的。例如,我有一个没有正确.png
后缀的PNG文件,这使得zsh认为它不是图片,当我输入Tab
来完成{{1}的参数时,它不会列出它}。
我想知道在上下文所在的文件名是否有完整的键序列,例如display
^XC
,或者如何配置zsh来执行该操作?
答案 0 :(得分:7)
您可以添加键绑定以执行您想要的操作:
zle -C complete complete-word complete-files
bindkey '^X\t' complete
complete-files () { compadd - $PREFIX* }
修改:添加了$PREFIX
您可以将这些行添加到~/.zshrc
文件中。
当你在每一步按 Ctrl - x Tab 而不是 Tab 。你可以选择另一种适合你的击键组合。
或者要使ImageMagick完成始终包含所有文件,请尝试编辑(先备份)文件/usr/share/zsh/functions/Completion/Unix/_imagemagick
(或类似文件)并更改此选项以注释掉以_files
开头的现有行添加显示的新内容:
if (( $# )); then
# _files "$@" -g "*.(#i)(${~formats//:/|})(-.)"
_files "$@"
return
fi
答案 1 :(得分:0)
丹尼斯的答案并没有为我扩展,所以当我试图在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