ZSH Bindkey反向查找



谁能告诉我这些键序列是什么?我知道如果我输入cat并键入按键,我可以得到它的代码但我如何反转这个过程来弄清楚按什么键来表示行首呢?

bindkey '^[^[[D' backward-word
bindkey '^[^[[C' forward-word
bindkey '^[[5~' up-line-or-history
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
bindkey '^[[6~' down-line-or-history
bindkey '^[[5D' beginning-of-line
bindkey '^[[5C' end-of-line
bindkey '^[[3~' delete-char
bindkey '^?' backward-delete-char 
bindkey '^[^N' newtab
bindkey '^[[Z' reverse-menu-complete

提示:我现在已经发布了一个更复杂的版本代码,作为zsh-edit的一部分插件。


可以使用这个函数进行反向bindkey查找:

reverse-bindkey-lookup() {
  print ${(k)terminfo[(Re)$(print -b - $1)]}
}

例如,当我运行:

% reverse-bindkey-lookup '^[[Z'

我得到如下输出:

cbt kcbt

这些值你可以通过

来查找
% man terminfo

,按/搜索。


对于上面的例子,我发现:

back_tab                    cbt      bt     back tab (P)

key_btab                    kcbt     kB     back-tab key

另一个例子:如果我运行
% reverse-bindkey-lookup '^[[3~'

kdch1

man terminfo说是

key_dc                      kdch1    kD     delete-character key

希望你能从中找出键盘上的实际键是什么。🙂


我不知道如何在一般情况下进行反向查找,只是为我的终端(应该模仿xterm)提供一些信息。这是通过CtrlV (quoted-insert)完成的;将^[替换为e

  • e[5~/e[6~ are PgUpPgDn
  • e[A e[D是箭头键
  • ^? is ←退格
  • e[3~ is Delete

相关内容

  • 没有找到相关文章

最新更新