我尝试clear
仅当 zsh shell 中的终端输入为空时才将双击绑定到命令。
到目前为止,我所实现的总是使用双击删除,但如果可能的话,我想添加条件,将以下内容添加到 .zshrc:
bindkey -s '\t\t' 'clear^M'
也许,我是否需要使用键绑定调用自定义函数来检查输入是否为空?
有什么办法可以解决这个问题吗?
谢谢!
答案1
可以使用以下代码实现此行为:
if ! typeset -f magic-double-tab-cmd >/dev/null; then
function magic-double-tab-cmd {
echo 'clear'
}
fi
function magic-double-tab {
# Only run magic-double-tab commands when the command line is empty and
# when on the first line (PS1)
if ! (( $#BUFFER )) && [[ "$CONTEXT" == start ]]; then
BUFFER=$(magic-double-tab-cmd)
zle accept-line -w
fi
}
zle -N magic-double-tab
bindkey '\t\t' magic-double-tab
摘自魔法输入存储库。
这与 magic-enter 插件的做法类似,但使用的是 tab 键。