按下 TAB 键时,zsh 自动完成 $PATH 中不可执行的文件

按下 TAB 键时,zsh 自动完成 $PATH 中不可执行的文件

我使用的是 oh-my-zsh,以及一些自定义脚本,可以自动将特定文件夹下的子目录添加到 PATH。以 android studio 为例,假设~/android-studio/bin包含在 PATH 中,按下TABstudio,zsh 给出提示:

➜  ~ studio
studio64.vmoptions  studio.png          studio.sh           studio.vmoptions

➜  bin ll studio*
-rw-r--r-- 1 j j  559 May  26 13:44 studio64.vmoptions
-rw-r--r-- 1 j j 9.6K May  26 13:44 studio.png
-rwxr-xr-x 1 j j 6.7K May  26 13:44 studio.sh
-rw-r--r-- 1 j j  566 May  26 13:44 studio.vmoptions

显然只有studio.sh我想要的可执行文件。有什么选项可以阻止 zsh 自动完成不可执行的命令吗?

更新:studio然后在家里输入CTRL+X h

➜  ~ studio
tags in context :completion::complete:-command-::
    commands builtins functions aliases suffix-aliases reserved-words jobs parameters  (_command_names _autocd) 
    commands                                                                           (_path_commands _command_names _autocd) 
    jobs                                                                               (_jobs _command_names _autocd) 
    parameters                                                                         (_parameters _command_names _autocd) 
    local-directories                                                                  (_cd _autocd)

相关内容