如何理解bindkey

Arn*_*Roa 6 keyboard-shortcuts zsh

从这个页面获取有关如何自定义 zsh 的信息,我遇到了这个

# oh wow!  This is killer...  try it!
bindkey -M vicmd "q" push-line
Run Code Online (Sandbox Code Playgroud)

我无法找到 bindkey 的手册页,也无法理解所绑定的密钥是什么、-M意味着什么以及是什么vicmd

所以我不知道如何知道美化器杀手功能是什么:)

Gil*_*il' 7

% type bindkey\nbindkey is a shell builtin\n
Run Code Online (Sandbox Code Playgroud)\n

因此它的文档位于 zsh 手册中,而不是其自己的手册页中。虽然有 sa man zshbuiltinsbindkey但内置函数没有记录在那里,因为它是 zsh 的半自治部分(行编辑器 zle)的一部分,因此它记录在man zshzle.

\n

run-help bindkey您可以通过在 zsh 中运行或M-h在光标位于命令上时按 来查找文档bindkey。这需要run-help正确设置,但由于某种原因默认情况并非如此:它是man. 要获得有用的run-help,请将这些行放入您的.zshrc

\n
unalias run-help 2>/dev/null\nautoload -U run-help\n
Run Code Online (Sandbox Code Playgroud)\n

或者,使用man zshall. 或者,如果您正在浏览手册的超文本版本,请使用函数 index,它也列出了内置函数。

\n
\n

vicmd是vi 命令模式下使用的键盘映射。push-line是一个编辑器小部件,它有自己的索引。所以这个命令使q\xe2\x80\x9cpause\xe2\x80\x9d 成为 vi 命令模式下的当前行(由于某种原因,这个确实有用的功能在 emacs 模式下默认只绑定到一个键)。

\n