vi 編集モードの inputrc で cmd モードバインディングを設定する

vi 編集モードの inputrc で cmd モードバインディングを設定する

.inputrcviキーバインディングを使用しています

set editing-mode vi

次に、現在の入力履歴で順方向検索と逆方向検索を使用してK実行するコマンドモードの新しいバインディングを追加します。J私は試した:

C-K:history-search-backward
C-J:history-search-forward

...しかし、これは通常、コマンドモードではCtrl Shift Kなく挿入モードでこの検索にバインドされるように設定されます。Shift K

私が使用している場合:

K:history-search-backward
J:history-search-forward

...その後、挿入モードで文字KとJを検索する必要があります(実際には必要ありません)。

新しいコマンドモードキーを設定する構文は何ですか.inputrc

ベストアンサー1

確立されたこれ、私の結論は、変更する必要があるキーストロークではなく.inputrc(論理的に言えば)適用されるコンテキストであるということです。

$if mode=vi
set keymap vi-command
K:history-search-backward
J:history-search-forward
$endif

もう別の難しさがあります。コマンドモードでは、カーソルは挿入モードのように最後の文字ではなく行の最後の文字にのみ配置できるため、検索されたパターンには最後の文字は含まれません。たとえば、-を入力してfin実行すると、検索も完了します。Esc shiftKfifilefind

効率的な解決策はないと思うので、最も便利な方法であるCtrl挿入モードに慣れる必要があります。shiftK

おすすめ記事