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 emacs
andを使います。bind -p | grep history
必要なコマンドは次のとおりです。
bind '"\C-p": previous-history'
bind '"\C-n": next-history'
私はset -o vi
これが正しいコマンドであることを確認するためにこれをテストしました。
また、これはhelp
シェルの組み込みコマンドを学習するために使用することです。それ自体は、とhelp
同様にシェル組み込み関数です。type
bind