另一个例子:如果我运行
谁能告诉我这些键序列是什么?我知道如果我输入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