NHD*_*aly 7 keyboard-shortcuts zsh
如果我不知道键绑定是什么或触发什么,如何禁用键绑定?
我将我的zsh键模式设置为 vi 模式,通过bindkey -v.
要进行历史搜索,我按Esc进入“命令模式”,然后/开始搜索。但是,如果我按得太快,它会做其他事情,但我不知道是什么!我假设Esc-/是一些键绑定,但我不知道它是什么。我如何找到它并将其关闭?
NHD*_*aly 11
经过一番搜索,我找到了答案:
要发现escape sequence组合键正在触发什么,请遵循以下出色的答案:
echo "CtrlVEsc/"
对我来说,它显示为:echo "^[/"。CtrlV强制以下键显示为转义序列而不是被解释。所以现在我们知道我们正在尝试找到绑定到"^[/".
要列出所有 zsh 键绑定,只需执行bindkey不带参数:
$ bindkey
"^A"-"^C" self-insert
"^D" list-choices
"^E"-"^F" self-insert
"^G" list-expand
"^H" backward-delete-char
...
"^Y"-"^Z" self-insert
"^[" vi-cmd-mode
"^[," _history-complete-newer
"^[/" _history-complete-older ### <--- Here it is.
"^[M" vi-up-line-or-history
"^[OA" vi-up-line-or-history
...
"^\\\\"-"~" self-insert
"^?" backward-delete-char
"\M-^@"-"\M-^?" self-insert
Run Code Online (Sandbox Code Playgroud)
因此,在决定我不在乎 之后_history-complete-older,我只想将其删除。我将此添加到我的.zshrc:
# Unbind the escape-/ binding because it gets triggered when I try to do a history search with "/".
bindkey -r "^[/"
Run Code Online (Sandbox Code Playgroud)
相反,如果您只想将其重新绑定到其他某个键,则可以使用:
bindkey -r "^[/"
bindkey "<some-other-key-combo>" _history-complete-older
Run Code Online (Sandbox Code Playgroud)
大概是
% bindkey '^[/'
"^[/" _history-complete-older
%
Run Code Online (Sandbox Code Playgroud)
或类似。这就是你如何发现的。
这个问题有两个部分,
正如其他答案中提到的
bindkey <key_combination>
Run Code Online (Sandbox Code Playgroud)
这将打印与组合键相关的 zle 命令
bindkey -r <key_combination>
Run Code Online (Sandbox Code Playgroud)
参考 - http://zsh.sourceforge.net/Guide/zshguide04.html#l95
| 归档时间: |
|
| 查看次数: |
8838 次 |
| 最近记录: |