bash の履歴補完を変更して、すでに行にあるものを補完するにはどうすればよいですか? 質問する

bash の履歴補完を変更して、すでに行にあるものを補完するにはどうすればよいですか? 質問する

数か月前に、上矢印キーを押すと、その行にすでにある内容に基づいて bash 履歴が自動補完されるコマンドを見つけました。

$ vim fi

プレス

$ vim file.py

新しいコンピューターにこれを設定したいのですが、大きな履歴を保存するときに多くの時間を節約できるからです。問題は、それがどこで言及されていたのかをどうしても思い出せないことと、残念ながら bash の参考資料やチュートリアルを延々と読んでも役に立たないことです。

誰かコマンドを知っていますか?

ベストアンサー1

おそらく次のようなもの

# ~/.inputrc
"\e[A": 履歴を後方に検索
"\e[B": 履歴検索前へ

または同等に、

# ~/.bashrc
[[ $- == *i* ]]の場合
それから
    '"\e[A": 履歴を後方に検索' をバインドする
    '"\e[B": 履歴検索前方' をバインドする
フィ

(if ステートメントは対話モードをチェックします)

previous-history通常、Up と Down はそれぞれReadline 関数にバインドされていますnext-history。私は、Up/Down の通常の操作を置き換えるのではなく、PgUp/PgDn をこれらの関数にバインドすることを好みます。

# ~/.inputrc
"\e[5~": 履歴を後方に検索
"\e[6~": 履歴検索前へ

を変更した後~/.inputrc、シェルを再起動するか、Ctrl+ XCtrl+を使用してRを再度読み込むように指示します~/.inputrc


ちなみに、関連するドキュメントをお探しの場合は、以下をご覧ください。

BashはGNU Readline ライブラリシェルのプロンプトと履歴用。

おすすめ記事