Hintergrund
Ich habe gehört, dass das readline- Modul liest ~/.inputrc
und auf diese Weise das Verhalten von Tastenanschlägen unter Programmen wie bash ändert.
Frage
Wie kann ich dies nach der Bearbeitung erneut laden, um das geänderte Verhalten zu sehen, ohne mein Terminalprogramm neu zu starten?
exec bash
in einer Bash - Sitzung wird die aktuelle Shell - Sitzung mit einer neuen Bash - Sitzung ersetzen.xterm
ist ein Terminal.Antworten:
Standardmäßig
C-x C-r
ist an gebundenre-read-init-file
.Weitere Informationen finden Sie im Bash-Referenzhandbuch .
quelle
bash -l
(Shell, die sich wie eine Anmeldeshell verhält), die neu initialisiert wird./etc/inputrc
aber ich hatte ein fast leeres~/.inputrc
, das verhinderte, dass das in/etc/
verwendet wurde. Durch das Entfernen wurde~/.inputrc
es gelesen/etc/inputrc
und meine Änderungen wurden aktiviert.$include /etc/inputrc
an die Spitze der~/.inputrc
, vermeidet es dieses Problem.Sie können neue Einträge auch über die Befehlszeile mit neu laden
bind -f ~/.inputrc
. Dadurch werden die Einträge in .inputrc geladen. Beachten Sie, dass es nur einen Ladevorgang ausführt, keinen "Neuladevorgang", sodass keine Zeilen zurückgesetzt werden, die Sie zufällig aus der .inputrc-Datei entfernt haben.Um einen schnellen Test von einem sauberen Slate durchzuführen, führen Sie einfach das Programm aus
bash
und arbeiten Sie dann in der neuen verschachtelten Shell (oder starten Sie ein neues Terminal).quelle
bind -f
nur wirklich ein Dateiname und keine Datei akzeptiert wird, so dass so etwasbind -f <(echo 'one line with ~/.inputrc syntax')
(oder, trivial gesagt,bind -f <(cat ~/.inputrc)
) nicht funktioniert. Das ist ein bisschen nervig. Wissen Sie, was ich in dieser Hinsicht tun könnte?Das hat bei mir funktioniert
bind -f ~/.inputrc
https://unix.stackexchange.com/questions/153357/inputrc-file-not-sourcing-correctly/246422#246422
quelle
Wählen Sie in .inputrc zuerst Ihre Bindung und binden Sie anschließend die
re-read-init-file
Funktion:Drücken Sie CTRLund x, Freigabe beide drücken CTRLund r.
quelle