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

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

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

换句话说,我该如何翻译:

重击:

hw(){ echo "hello world"; }
bind -x '"\C-h": hw;'

到 zsh?

答案1

它不会使用原始函数。他们需要通过以下方式包装在“小部件”中

zle -N widgetname funcname

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

 zle -N hw{,}

然后可以这样做:

bindkey ^h hw

,导致Ctrl+h运行hw运行该hw函数的小部件。

答案2

这对我在 xterm 终端上的 zsh 5.8.1 上有效。我在 zshrc 中定义了以下内容,以快速创建脚本语言/测试的模板。例如,shell 脚本的模板(模板的):

# Function and keybind defined in .zshrc:
create-template (){
cat << EOF > template.sh
#!/usr/bin/bash
# Your template goes here ...
EOF
echo "template.sh created"
}

bindkey -s "^E" 'create-template^M'

相关内容