zsh:如何在python脚本名称后自动完成文件名?

时间:2013-07-11 06:54:12

标签: macos autocomplete zsh oh-my-zsh

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

例如,如果ls提供thread_pool_examplesthread_pools

enter image description here

然后输入du,空格和标签会自动填充公共前缀thread_pool,而另一次点击会迭代选项:

enter image description here enter image description here

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

问题是这不适用于我的自定义脚本。例如,如果我在路径中运行rmf - Python可执行文件 - 并单击制表符,则不会显示自动填充选项。

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

1 个答案:

答案 0 :(得分:1)

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

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