1

我刚刚从 bash 转到zsh。这是一个很棒的终端外壳,但我缺少一个属性 - 非标准可执行文件的文件名完成。

例如,如果 ls 给出thread_pool_examplesand thread_pools

在此处输入图像描述

然后键入du, 空格并tab自动完成公共前缀thread_pool,再单击一次将遍历选项:

在此处输入图像描述 在此处输入图像描述

单击Enter将选择突出显示的项目。

问题是这不适用于我的自定义脚本。例如,如果我运行rmf- 在我的路径中的 Python 可执行文件 - 并单击选项卡,则不会出现自动完成选项。

任何想法如何为每个可执行文件制作 zsh 自动完成文件名?

4

1 回答 1

1

老实说,IMO 在你的 shell 配置中有些东西正在破坏。尝试这样做来验证它:

zsh -f # starts a new shell ignoring your configuration
autoload compinit
compinit
./my-shell-script [TAB]

它以文件完成。这是默认设置。

FWIW,如果您想将特定完成者绑定到命令/别名等,您可以这样做

compdef _jstack jstack

# simple _files completion
compdef _files my-local-python-script

# restrict to some file extensions
compdef '_files -g "*.(eps|ps|pdf)"' okular 
于 2013-07-11T09:01:57.210 回答