.inputrcをリロードするにはどうすればよいですか?


98

バックグラウンド

readlineモジュールが読み込んでいる~/.inputrcと聞いたので、bashなどのプログラムでキーストロークの動作を変更します。

質問

端末プログラムを再起動せずに、変更した動作を確認するために編集後にこれを再読み込みするにはどうすればよいですか?


8
背景(間違っていない)
デニスウィリアムソン

3
コマンドを使用して.inputrcを読み込む方法を探してここに来ました。superuser.com/q/419670/56544
dfrankow

1
@CaptainLeptonそれを見た。端末はシェルと同じではありません。こうexec bashバッシュのセッションでは、新しいバッシュのセッションで現在のシェルセッションに置き換えられます。xterm端末です。
クサラナンダ

1
@Kusalananda説明をありがとう。いいアイデアですね。以前の実行可能ファイルを置き換えているので、bashを再起動するのではなく、現在のターミナルで新しいシェルを実行していると実行> exec bashを説明しますか?
キャプテンレプトン

1
はい、現在のシェルセッションを「再開」する方法はありません。これはそれを行う1つの方法です。@maxelostが提供したソリューションを使用することも別の方法です。
クサラナンダ

回答:


82

デフォルトでC-x C-rは、にバインドされていre-read-init-fileます。

説明については、Bashリファレンスマニュアルを参照してください。


4
これは私にはうまくいきません。.inputrcファイルで別のマッピングを試してみましたが、運もありません: "\ eX \ eR":re-read-init-file何か提案はありますか?
キャプテンレプトン

6
@Captain実際には、それは削除されますが、その間に削除されたキーストロークはクリアされません。たとえば、いくつかを追加すると、それらがロードされます。これらの唯一の解決策は、新たにbash -l初期化される新しい(ログインシェルのように動作するシェル)です。
ダニエルベック

私は編集し/etc/inputrcていましたが、使用~/.inputrcするのを妨げていたほとんど空でした/etc/。削除すると、変更が~/.inputrc読み込まれ/etc/inputrc、アクティブになりました。
悪徳

1
@Malvineous前に私はそれを見つけました。.に追加する$include /etc/inputrcと、~/.inputrcこの問題を回避できます。
mwfearnley

53

を使用して、コマンドラインから新しいエントリをリロードすることもできますbind -f ~/.inputrc。これにより、エントリが.inputrcにロードされます。「リロード」ではなく、ロードのみを行うことに注意してください。したがって、.inputrcから削除された行はリセットされません。

クリーンな状態からすばやくテストするには、実行してから、bashネストされた新しいシェル内で作業する(または新しいターミナルを起動する)だけです。


私が間違っている場合は修正してください。bind -fファイルではなくファイル名のみを実際に受け入れるため、bind -f <(echo 'one line with ~/.inputrc syntax')(または、ささいに)のようなものbind -f <(cat ~/.inputrc)は機能しません。これは少し面倒です。この点で私が何ができるか知っていますか?
エンリコマリアデアンジェリス


10

.inputrcで最初にバインディングを選択し、re-read-init-file関数をバインドした後:

set editing-mode vi
"\C-x\C-r": re-read-init-file

とを押しCTRLx、両方を離しCTRL、とを押しrます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.