我希望有一个可以为我执行命令的绑定键。在当前状态下,当我点击Ctrl + f
终端时,我会看到该命令,并且必须按 Enter 键。我希望也许按键绑定能为我做到这一点。我目前有
bindkey -s ^f "tmux-sessionizer\n"
我是否卡住了,无法按回车键,或者我可以做些什么?
答案1
如果您在空提示符下按 Ctrl+F (至少在默认配置中),您发布的代码确实会运行tmux-sessionizer
(至少在默认配置中 - 实际上您可能有非常有用的extended_glob
选项集,这需要引用^
,例如bindkey '^f' 'tmux-sessionizer\n'
)。但如果您在非空提示符下按下它,它通常不会做任何有用的事情,并且可能会做一些坏事。运行外部命令的更好方法是不使用 shell 输入,而是直接运行它。为了这:
function run-tmux-sessionizer { tmux-sessionizer; zle redisplay; }
zle -N run-tmux-sessionizer
bindkey '^f' run-tmux-sessionizer
答案2
你不能这样做桀骜独自bindkey
指挥。但是,如果您安装我的zsh-edit
插入,那么你可以使用这个:
bind '^F' 'tmux-sessionizer'