如何为位于 ~/bin 中的脚本启用 Tab 自动完成功能?

如何为位于 ~/bin 中的脚本启用 Tab 自动完成功能?

如果我放入一个可执行文件,~/bin我只需输入文件名的前几个字母,然后点击tab让 shell 完成名称的其余部分。

虽然这适用于可执行程序,它似乎不适用于地狱脚本。这是期望的行为吗,还是我做错了什么?

答案1

即使脚本也需要设置可执行位。

答案2

您可能会将脚本命名为与 $PATH 中现有应用程序或可执行文件类似的名称(启动)(或者,正如 Oli 提到的,您忘记使其可执行)。

另一件事是,在 $PATH 中的可执行文件中使用语言扩展是一种不好的做法,请参阅此链接

答案3

我使用的zsh是 shell,在输入脚本后/usr/local/bin无法完成 tab 补全。正如另一个答案中暗示的那样,我检查了可执行位是否已设置。

事实证明,我必须source ~/.zshrc重新启动我的终端(实际上是将我注销然后重新登录)才能使我的脚本可通过制表符完成。

答案4

任何人在尝试使用 /usr/local/bin 中新安装的二进制命令时都会遇到 zsh 的自动完成问题,这可能是由于 zsh 使用自动完成缓存造成的。使用命令rehash生成新的自动完成缓存将解决该问题。这也意味着如果您手动删除命令,您可能还需要运行它来更新缓存。

相关内容