それが何であるか、何を引き起こすのかわからない場合は、キーバインディングを無効にするにはどうすればよいですか?
zsh
でキーモードをviモードに設定しましたbindkey -v
。
履歴検索を実行するには、キーを押してEsc「コマンドモード」に入り、/検索を開始します。ただし、早すぎると他の操作が行われますが、私は何も知らない!キーバインディングのようですが、Esc-/
それが何であるかわかりません。どうやって探して消えますか?
答え1
いくつかの検索の最後に、次のような答えが見つかりました。
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
だから気にしないと判断して_history-complete-older
削除しました。私はこれを私のものに追加しました.zshrc
:
# Unbind the escape-/ binding because it gets triggered when I try to do a history search with "/".
bindkey -r "^[/"
代わりに、別のキーに再バインドするには、次を使用できます。
bindkey -r "^[/"
bindkey "<some-other-key-combo>" _history-complete-older
答え2
この質問には2つの部分があります。
- マッピングの機能をどのように理解できますか?
- マッピングをバインド解除する方法は?
マッピングの機能をどのように理解できますか?
他の回答で述べたように
bindkey <key_combination>
これにより、キーの組み合わせに関連する zle コマンドが印刷されます。
マッピングをバインド解除する方法は?
bindkey -r <key_combination>
答え3
おそらく
% bindkey '^[/'
"^[/" _history-complete-older
%
または同様です。それがあなたが見つける方法です。
追加読書
- ポール・フォールスタッド(2015-12-02)。 」ZLE 組み込みコンポーネント」。Zハウジングマニュアル。 5.2。
答え4
KEYTIMEOUT
また、ZSHがマルチキーシーケンスを検出するのを待つ時間を示す設定も関連しており、次の設定によって最小化されます。
KEYTIMEOUT=1
極端に極端な感じがある場合は、ESCなどのすべてのバインディングを削除して、ZSHにEscキーを押すのに時間を無駄にする複数のキーシーケンスがないようにすることもできます。
bindkey -rpM viins '^['
bindkey -rpM vicmd '^['