CTRL-rと同様に、検索Bash履歴を転送できない


203

私はCTRL- と同じようにbash履歴を検索しようとしていますrが、順方向です。

前のコマンドをもう一度見つけるのがあまりにも頻繁にCTRL-の場合、私にとっては苦痛でしrた。

逆検索と同様に、Bash履歴を順方向検索するにはどうすればよいですか?

回答:


321

前方に検索することもできます。bash infoマニュアルの「8.2.5履歴でのコマンドの検索」:

履歴内で特定の文字列を後方検索するには、と入力しC-rます。入力C-sすると、履歴が順方向に検索されます。

ただし、Ctrl-Sの問題は、XON / XOFFフロー制御(Konsoleなど)と衝突する場合があることです。ただし、検索はreadline機能であり、他のキーにバインドできるはずです。更新:実行してXON / XOFFを無効にするだけの方が簡単で優れています。

stty -ixon

4
これはすばらしいですが、.tyに.profileを追加すると、新しいタブでは機能しないようです。これを機能させる方法に関するアイデアはありますか?XON / XOFFをデフォルトで無効にしたい。
ジョンギャラガー、

13
他の誰かが私と同じ問題を抱えている場合-これを.profileに追加しても効果はありません。魔法をかけるのは、それを.bash_profileに追加したときだけです。すばらしいヒントをありがとう-これは何年もの間私を怒らせてきました。
ジョンギャラガー

12
@JohnGallagher重要なのは、ログインシェルのみをソース.bash_profileとして.profileいることです。私はこれを入れます.bashrc(私はから調達します.profile)。
Victor Zamanian 2012年

13
[[ $- == *i* ]] && stty -ixonここで説明されて
mMontu '19

3
PuTTYを使用していて、.bash_profile接続するすべてのマシンでメンテナンスをしたくない、またはしたくない場合は、このスーパーユーザーの回答が役に立ちます
2014年

41

IMHOの最高のトリックは、pgupおよびを使用して有効にすることpgdownです。それをあなたに入れて~/.inputrc

"\e[5~": history-search-forward
"\e[6~": history-search-backward

ログアウト/ログイン、最初の文字を入力してから、pgupまたはpgdown履歴全体を検索するには

ctrl-R 単語を含むすべての行を検索するのに対し、history-search-forward検索行は単語で始まる


2
これらの2行をコメント解除することもできます/etc/inputrc(例:Ubuntu)。
falconepl 2014年

2
私はこれを上下の矢印にバインドすることを好みます: "\ e [A":history-search-backwardおよび "\ e [B":history-search-forward
shmup

これがbashで効果がない場合はどうなりますか?
セーレン

26

https://github.com/dvorka/hstrを試してみると、(オプションの)メトリックスベースの順序付けでBash履歴の「推奨ボックススタイル」フィルタリングが可能になります。つまり、順方向と逆方向の両方ではるかに効率的で高速です。

ここに画像の説明を入力してください

これは、簡単にすることができバインドCtrl-r及び/またはCtrl-s


5
私は恋している。Ubuntuにインストールするための簡単な手順:sudo add-apt-repository ppa:ultradvorka/ppa; sudo apt-get update; sudo apt-get install hh; hh --show-configuration >> ~/.bashrc;
CivFan 2015

14

私は通常ESC、ターミナルを押し、次にを押し>ます。それは少なくともリセットし、それからあなたはあまり頻繁にクリックすることを試みることができませんCTRL+ R


s / click / press /また、エスケープを2回押す必要があります(逆方向検索からエスケープするには、最初に)。
Croad Langshan 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.