linux - ZSH 绑定(bind)键反向查找

标签 linux unix key zsh

谁能告诉我这些的键序列是什么? 我知道如果我执行 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

最佳答案

Tip: I've now published a more sophisticated version of the code below as part of the zsh-edit plugin.


您可以使用此函数进行反向绑定(bind)键查找:

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

希望您可以从那里弄清楚键盘上的实际键是什么。 🙂


关于linux - ZSH 绑定(bind)键反向查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6878862/

相关文章:

linux - 如何比较两个 DateTime 字符串并以小时为单位返回差异? ( bash shell )

c - 拦截系统调用

linux - 在 bash 中获取随机站点名称

linux - 搜索 HTM 文件并在第一行添加

arrays - 从目录中获取所有文件并将它们放入数组中

javascript - 从 Javascript/Typescript 数组中删除子对象重复项

c++ - hashtable,unorderd_map 迭代器使用

c - 命名管道未按预期工作。同一条消息被一遍又一遍地阅读

java - 顺序 key 生成器(java)

Java TreeMap 获取方法