Bashで次のレコードと前のレコードを再バインドする方法は?

Bashで次のレコードと前のレコードを再バインドする方法は?

viキーバインディングを使用するようにBashを設定しましたが、Emacsスタイルとバインディングを維持して記録を繰り返したいとset -o vi思います。 bash(1)の「Binding」セクションを読み、次のバリエーションを試しました。Ctrl-pCtrl-n

bind -m vi-insert "\C-p": previous-history
bind -m vi-insert "\C-n": next-history

しかし、私が実行したコマンドのどれもbind効果がないようです。以降の出力はbind -P変更されません。これらのコマンドのキーバインディングをどのように変更できますか?

ベストアンサー1

からhelp bind

The non-option argument syntax is equivalent to
that found in ~/.inputrc, but must be passed as a single argument:
e.g., bind '"\C-x\C-r": re-read-init-file'.

私は必要な引数を見つけるためにset -o emacsandを使います。bind -p | grep history

必要なコマンドは次のとおりです。

bind '"\C-p": previous-history'
bind '"\C-n": next-history'

私はset -o viこれが正しいコマンドであることを確認するためにこれをテストしました。


また、これはhelpシェルの組み込みコマンドを学習するために使用することです。それ自体は、とhelp同様にシェル組み込み関数です。typebind

おすすめ記事