現在、zleキーマップ/モードは何ですか?

現在、zleキーマップ/モードは何ですか?

たとえば、正しいキーの組み合わせをタップしてviinsターミナルに入ったときに忘れてしまった場合、いつ戻ったのかをどうやって知ることができますか?基本モードとは何か、どうすればわかりますか?ガイドはこう言います。

間違ったモードの場合、〜/ .zshrcの "bindkey -e"を使用してemacsモードに切り替え、 "bindkey -v"を使用するとviモードに切り替えます。

しかし、何はいモデル?入力する前に知りたいです。私が知っている限り、$ KEYMAP特殊変数のみを使用できます。以内にman zshzlezleウィジェットを使用していますが、zshellユーザーガイドで現在のモードを決定する方法に関する情報が見つかりません。

どんな助けや洞察力でも大変感謝いたします。

ベストアンサー1

要約:aを実行するbindkey -lL mainと、単語の前にキーマップ名が表示されますmain

私が読んだことの中から文書「現在」キーマップは名前で表示されているようですmain。これは通常、viinsまたはemacsキーマップのエイリアスです。

もっと遠く下にそれは次のように言います:

-l                (小文字「L」)

すべての既存のキーマップ名をリストします。引数が指定されると、対応するキーマップのみがリストされます。

このオプションも使用している場合は、-Lキーマップを作成または接続するためのバインディングキーコマンドとして一覧表示されます。 ' bindkey -lL main'は、''(存在する場合)に接続されているキーマップと、標準のmainemacsまたはviエミュレーションが適用されるかどうかを示します。このオプションは.safeこの方法では生成できないため、キーマップは表示されません。ただし、 " "もbindkey -lL .safeエラーとして報告されず、何も出力しません。

したがって、aを実行すると(通常の状況では)キーマップの1つが「現在の」キーマップのエイリアスであることをbindkey -lL確認できます。bindkey -Amain

キーマップが存在しない場合はキーマップに入りますがmain、これは非常に不便ですが、問題を解決するのに十分機能的です。.safeこれが発生した場合は、bindkey -dキーマップをリセットする必要があります。

おすすめ記事