tło
Słyszałem, że moduł readline czyta ~/.inputrc
i tak zmienia zachowanie naciśnięć klawiszy w programach takich jak bash.
Pytanie
Jak mogę ponownie załadować to po edycji, aby zobaczyć zmienione zachowanie bez ponownego uruchamiania programu terminalowego?
exec bash
sesji Bash zastąpi bieżącą sesję powłoki nową sesją Bash.xterm
jest terminalem.Odpowiedzi:
Domyślnie
C-x C-r
jest powiązany zre-read-init-file
.Patrz Instrukcja Bash odniesienia dla wyjaśnienia.
źródło
bash -l
(powłoka, która zachowuje się jak powłoka logowania), która jest świeżo zainicjowana./etc/inputrc
ale miałem prawie pusty,~/.inputrc
co uniemożliwiało/etc/
użycie tego w. Usunięcie~/.inputrc
spowodowało, że przeczytałem/etc/inputrc
i uaktywniłem moje zmiany.$include /etc/inputrc
na szczyt~/.inputrc
, pozwoli to uniknąć tego problemu.Możesz także ponownie załadować nowe wpisy z wiersza poleceń, używając
bind -f ~/.inputrc
. Spowoduje to załadowanie wpisów do pliku .inputrc. Zauważ, że po prostu ładuje, a nie „przeładowuje” - więc nie resetuje żadnych linii, które zdarzyły się usunięte z .inputrc.Aby szybko przetestować z czystej tablicy, po prostu uruchom,
bash
a następnie pracuj w tej nowej zagnieżdżonej powłoce (lub uruchom nowy terminal).źródło
bind -f
tak naprawdę akceptuje tylko nazwę pliku, a nie plik, więc coś takiegobind -f <(echo 'one line with ~/.inputrc syntax')
(lub, trywialniebind -f <(cat ~/.inputrc)
) nie będzie działać. To trochę denerwujące. Czy wiesz, co mogę zrobić w tym zakresie?To zadziałało dla mnie
bind -f ~/.inputrc
https://unix.stackexchange.com/questions/153357/inputrc-file-not-sourcing-correctly/246422#246422
źródło
W .inputrc najpierw wybierz powiązanie, a po powiązaniu
re-read-init-file
funkcję:Naciśnij CTRLi x, zwolnij oba, naciśnij CTRLi r.
źródło