Wie lade ich .inputrc neu?

25691
Captain Lepton

Hintergrund

Ich habe gehört, dass das Readline- Modul liest, ~/.inputrcund so ändert es das Verhalten von Tastenanschlägen unter Programmen wie Bash.

Frage

Wie kann ich das nach der Bearbeitung erneut laden, um das geänderte Verhalten zu sehen, ohne mein Terminalprogramm neu zu starten?

81
Hintergrund * (nicht falsch) *. Dennis Williamson vor 13 Jahren 8
Gibt es eine Möglichkeit, Readline anzurufen, um die Historie neu zu laden? Wie "xmonad ---- reompile && xmonad --restart" für das Nachladen von XMonad? Ehtesh Choudhury vor 12 Jahren 0
Ich bin hergekommen, um nach .inputrc mit einem Befehl zu suchen. http://superuser.com/q/419670/56544 dfrankow vor 11 Jahren 3
Starten Sie einfach Bash neu. Kusalananda vor 8 Jahren 0
@Kusalananda, es scheint, als hätten Sie die Frage nicht richtig gelesen. "Wie kann ich diese nach der Bearbeitung erneut laden, um das geänderte Verhalten _ ohne Neustart meines Terminalprogramms_ zu sehen?" Captain Lepton vor 8 Jahren 0
@CaptainLepton Ich habe das gesehen. Das Terminal ist nicht mit der Shell identisch. Wenn Sie in einer Bash-Sitzung `exec bash` ausführen, wird die aktuelle Shell-Sitzung durch eine neue Bash-Sitzung ersetzt. "xterm" ist ein Terminal. Kusalananda vor 8 Jahren 1
@Kusalananda Danke für die Klarstellung. Das ist eine gute Idee. Würden Sie das Ausführen von> exec bash vielleicht als das Ausführen einer neuen Shell im aktuellen Terminal bezeichnen, anstatt bash neu zu starten, da Sie Ihre vorherige ausführbare Datei ersetzen? Captain Lepton vor 8 Jahren 1
Ja, es gibt keine Möglichkeit, die aktuelle Shell-Sitzung "neu zu starten". Dies ist eine Möglichkeit, dies zu tun. Die Lösung, die @maxelost gab, ist eine andere. Kusalananda vor 8 Jahren 1

4 Antworten auf die Frage

74
maxelost

Standardmäßig C-x C-rist an gebunden re-read-init-file.

Weitere Informationen finden Sie im Bash-Referenzhandbuch .

Das funktioniert bei mir nicht. Ich habe ein anderes Mapping in der .inputrc-Datei ausprobiert und auch kein Glück: "\ eX \ eR": re-read-init-file Irgendwelche Vorschläge? Captain Lepton vor 13 Jahren 2
@Captain Tatsächlich ist dies der Fall, mit der Ausnahme, dass Tastenanschläge, die in der Zwischenzeit gelöscht wurden, nicht gelöscht werden. Wenn Sie beispielsweise einige hinzufügen, werden sie geladen. Die einzige Lösung dafür ist eine neue `bash -l` (Shell, die sich wie eine Login-Shell verhält), die neu initialisiert wird. Daniel Beck vor 13 Jahren 6
Ich habe gerade `/ etc / inputrc` bearbeitet, aber ich hatte ein fast leeres` ~ / .inputrc`, das die Verwendung von '/ etc / `' verhinderte. Durch das Entfernen von ~ / .inputrc wurde `/ etc / inputrc` gelesen und meine Änderungen wurden aktiviert. Malvineous vor 6 Jahren 0
41
studgeek

You can also reload new entries from command line using bind -f ~/.inputrc. That will load the entries in .inputrc. Note that it just does a load, not a "reload" - so it doesn't reset any lines you happen to have removed from the .inputrc.

To quickly test from a clean slate, just run bash then work inside that new nested shell (or start a new terminal).

11
rofrol

This worked for me

bind -f ~/.inputrc

https://unix.stackexchange.com/questions/153357/inputrc-file-not-sourcing-correctly/246422#246422

10
Antonio Bardazzi

In .inputrc first choose your binding and after bind the re-read-init-file function:

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

Press CTRL and x, release both, press CTRL and r.