Bashで Ctrl+r コマンドはとても便利です、私はタイプします Ctrl+rwhatever
そしてそれは私の履歴で単語whatever
を含むコマンドを検索します。しかし、whatever
と入力して、その単語を検索してヒットしたいことに気付いた場合 Ctrl+r 何も起こりません。
キーを押して、入力したかのように動作させる方法はありますか? Ctrl+rwhatever
の代わりにwhatever
Ctrl+r?
.inputrc
に次のものがあります。
"\C-p": history-search-backward
ただし、これは行の先頭が同じ場合にのみ機能します。
すでに入力したものを使用して、bashの履歴を簡単に検索できます。
curl -I http://superuser.com
と入力したばかりで、入力し忘れたとします。 Ctrl+r 最初:
$ curl -I http://superuser.com
履歴をi-searchしたい場合は、行頭firstに移動します((Ctrl+a)、i-search(Ctrl+r)とタイプ Ctrl+y。これは、すでに入力したテキスト全体の内容を使用して検索する必要があります。
(reverse-i-search)`curl -I http://superuser.com': curl -I http://superuser.com/faq
または、 Ctrl+w の代わりに Ctrl+y 入力したテキストの最初の単語だけを使用して検索するには:
(reverse-i-search)`curl': curl -I http://superuser.com/faq
これらすべてを1回のキーストロークで実行する場合は、1つのキーをキーボードマクロにバインドできます。使用したい場合は、たとえば、 F12 実行:
$ bind '"\e[24~":"\C-a\C-r\C-y"'
それはセッションの間続きます。
~/.inputrc
でマクロを定義するだけです。
"\e[24~":"\C-a\C-r\C-y"
ここでは、一重引用符omitに注意してください。
この回答 便利だと思うかもしれません。
Ctrl-R
(または必要に応じて.bashrc
)に追加して、2番目の.inputrc
を避けます。
bind '"\er":"\C-a\C-r\C-y\C-r"' # alt-r = ctr-a ctr-r ctr-y ctr-r
これにより、ALT-RがCTR-A CTR-R CTR-Y CTR-Rにマップされます。
\C-xr
(CTR-X CTR-R)です