将快捷键绑定到 zsh 中的 shell 函数

PSk*_*cik 11 keyboard-shortcuts zsh

在 zsh 中,如何将键盘快捷键绑定到函数?

换句话说,我如何翻译:

重击:

hw(){ echo "hello world"; }
bind -x '"\C-h": hw;'
Run Code Online (Sandbox Code Playgroud)

去zsh?

PSk*_*cik 11

它不会原始的函数。他们需要通过做

zle -N widgetname funcname
Run Code Online (Sandbox Code Playgroud)

两者可以具有相同的名称:

 zle -N hw{,}
Run Code Online (Sandbox Code Playgroud)

那么可以这样做:

bindkey ^h hw
Run Code Online (Sandbox Code Playgroud)

,导致Ctrl+h运行hw运行该hw功能的小部件。

  • 如果小部件名称与函数名称相同,则仅给出小部件名称就足够了:`zle -N name`。 (4认同)