获取 zsh 内置命令的帮助(--help' 不起作用)

获取 zsh 内置命令的帮助(--help' 不起作用)

为什么与 Bash 不同,几乎所有 Zsh 可执行文件的“--help”选项都无法工作,它的对应项是什么来帮助用户对其执行操作?

答案1

TL、DR:按Alt+ H

我猜你是在询问 zsh 的帮助内置函数(),因为zsh可执行文件确实理解--help.

从 zsh 中获取有关 zsh 内置帮助的预期方法是使用run-help功能。不幸的是,尽管 zsh 的某些发行版(例如 Debian 和包括 Ubuntu 在内的衍生版本)在系统文件中启用了它,但默认情况下它并未启用zshrc

为了确保该run-help功能已启用,请将其放入您的~/.zshrc文件中:

if ((${+aliases[run-help]})); then unalias run-help; fi
autoload -Uz run-help

默认情况下,除非您使用 vi 编辑模式,否则run-help绑定到组合键^[hieEsc HAlt+ H。即使没有上面的行也是如此,但如果没有它们,就会直接run-help运行man,这对于内置函数不起作用。

开始键入程序名称为内置程序或可执行文件的命令,然后按^[h。光标可以位于命令名称内或参数内。这会调用man,但如果该命令是 zsh 内置命令,则会显示 zsh 手册中记录该内置命令的部分。当您退出时man,您将返回您正在输入的命令行。

暗星%别名 -Esch

阅读内置文档alias,然后退出 man reader。

暗星%别名 -

如果您使用 vi 编辑模式,您还需要绑定run-help到一个键。要在插入模式和命令模式下将其绑定到 Alt+H,您可以使用

bindkey -M viins '^[h' run-help
bindkey -M vicmd '^[h' run-help

至于为什么--help不起作用:--help是由GNU项目引入并推动的,连同长选项( --foo)。 Bash 是一个 GNU 组件,所以它自然地用于--help帮助。 Zsh 不是 GNU 组件,它只支持短选项(--foo技术上是选项的分组---f, and-o` 两次)。

相关内容