
CtrlBashは+でリバース検索機能を提供しますR。その後、コマンドの一部を入力すると、履歴にそのエントリが表示されます。
これが私の歴史だとしましょう。
vim foo1
vim foo2 # I want to go here
vim foo3 # this is where I land, how to go back?
を探していますfoo
。Ctrl+ をもう一度クリックすると、R次に適切なクエリが表示されます。早すぎて、期待した結果を超えて、それがvim foo3
現れ、今は戻りたい状況に頻繁に遭遇しますvim foo2
。
だから私の質問は:リバース検索でナビゲートする方法は?
答え1
forward-search-history
デフォルトでは、バインドされた関数を介してアクセスできますctrl+s。残念ながら、デフォルトではシグナルctrl+s伝達に使用されるため、xoff
検索方向を変更するために使用することはできません。問題を解決する方法は2つあります。 1つはxoff/xon
信号伝送を無効にすること、もう1つはキーバインディングを変更することです。forward-search-history
xon/xoff 無効
stty -ixon
端末で実行または追加することで、記録機能を~/.bashrc
使用できます。ctrl+sforward-search-history
制御フローの詳細については、以下を確認してください。端末で誤ってCtrl-Sを押した後にロックを解除する方法は?そしていくつかの答え
キーバインディングの変更
デフォルトの動作を変更したくない場合は、ctrl+swithのキーバインディングを変更できます。ほとんどのキーはすでにbashで定義されているので、創造性を発揮する必要があるかもしれません。forward-search-history
bind
bind "\C-t":forward-search-history
ctrl+tこれは順方向検索履歴に関連付けられますが、デフォルトでctrl+t実行されます。transpose-chars
答え2
bashが提供するデフォルトの逆方向および順方向検索の代わりに、次のことを見ることができます。
富士、自己記述された「コマンドラインファジーファインダー」です。
これはbash(および他の端末)のデフォルトのリバース検索を置き換えます。
その利点は次のとおりです。
- 履歴コマンドリストの印刷
- 時間または関連性基準の並べ替えを切り替えるには、Ctrl + Rをもう一度押します。
- 矢印キー(またはCtrl + J / Ctrl + K)でナビゲートできます。
- 複数ピン検索可能
私のワークフローは、私が制御しているコンピュータの基本的な逆検索ではなく、fzfに完全に依存しています。