Zsh,即使有一个空的 zshrc 文件,似乎也为我的路径中的每个可执行文件提供自动完成选项。例如,打字ch<tab>
给我提供了大约 30 个选项,太多了,无法让自动完成变得有用。
我可以设置 zsh 查找完成选项的路径,以便我可以缩小范围并获得更多有用的建议吗?
答案1
事实并非如此,考虑到 Linux,尤其是 Fedora 现在几乎将所有内容都推入了/usr/bin
.然而!您可以排除或包含某些内容,具体取决于您是否有“仅完成这些内容”的已知列表
% zstyle ':completion:*:*:-command-:*' fake-always chmod chown
% zstyle ':completion:*:*:-command-:*' ignored-patterns 'ch*'
% ch
chmod chown
或者想要剔除一些你从未使用过的特定的恼人的冲突完成
% exec zsh
% zstyle ':completion:*:*:-command-:*' ignored-patterns '(chat|chroot)'
% ...
尽管将来您可能会摸不着头脑,为什么一些长期以来被忽略的命令没有出现在完成列表中(不,这完全没有发生在我身上,您为什么要问)
% zstyle | grep command