我刚从bash转到zsh。这是一个很棒的终端shell,但是我缺少一个属性 - 非标准可执行文件的文件名完成。
例如,如果ls提供thread_pool_examples
和thread_pools
:
然后输入du
,空格和标签会自动填充公共前缀thread_pool
,而另一次点击会迭代选项:
点击 Enter 将选择突出显示的项目。
问题是这不适用于我的自定义脚本。例如,如果我在路径中运行rmf
- Python可执行文件 - 并单击制表符,则不会显示自动填充选项。
如何为每个可执行文件制作zsh自动完成文件名?
答案 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