2016-08-18 15 views
1

逆の検索履歴(Ctrl + R)コマンドをiTermの別のコマンドの組み合わせにマップしようとしていますが、どんな助けもありがとう。iTermの逆キー検索(Ctrl + R)を別のキーの組み合わせに変更する方法

+1

これはiTermとは関係がありません。これは端末エミュレータとは別に 'bash'によって行われます。 'readline'の設定に関するbashのドキュメントを読んでください:https://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands – Barmar

+0

なぜiTermはこのキーをマップできないのですか?他のコマンドと同じように組み合わせますか? – user1686342

+0

コマンドはiTermによって最初に拘束されず、 'bash'と' zsh'でバインドされています。 'xterm'、' gnome-Terminal'などで同じバインディングを取得しますか? – Barmar

答えて

2

readlineと言った方が正しいです。

bindコマンド(try help bind)を使用してバインドを編集できます。この特定の問題については

は、のは、コントロール-Rをするためにバインドされているものを見てみましょう:

$ bind -P |grep C-r 
re-read-init-file can be found on "\C-x\C-r". 
reverse-search-history can be found on "\C-r". 
revert-line can be found on "\M-\C-r". 

[OK]をクリックします。そのうちの1つはControl-Rを意味するちょうど\C-rです。レッツダブルチェック:

$ bind -q reverse-search-history 
reverse-search-history can be invoked via "\C-r". 

man readlineが含まれては:

reverse-search-history (C-r) Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search.

右に見えること。どのように変更するのですか?代わりに⌘-Bを使用するとします。 readline-speakのMeta-b(別名\M-b)です。

のは、それを試してみましょう:

$ bind '\M-b:reverse-search-history' 
$ bind -q reverse-search-history 
reverse-search-history can be invoked via "\C-r", "\M-b". 

は⌘-Bを押すと、今だけではControl-Rのような逆検索をトリガします。 Control-Rは依然として拘束されています。

$ bind -r '\C-r' 
$ bind -q reverse-search-history 
reverse-search-history can be invoked via "\M-b". 

この変更は現在のシェルセッションで有効ですが、次にシェルを呼び出すと消滅します。変更を永続化するには、次の手順を実行します。

$ echo '"\M-b": reverse-search-history' >> ~/.inputrc 

~/.inputrcは、所望の結合が含まれています。 readline構成(シェルを含む)でそれを使用するプログラムは、指定したバインディングを使用するようになりました。

+0

優れた応答。ありがとう – user1686342

+0

問題はありません。私はstackoverflowが存在する前にこれを理解しなければなりませんでした。私はこれがいかにイライラすることができるかを知っています。 – Eric

関連する問題