Come ricaricare .inputrc?


98

sfondo

Ho sentito che il modulo readline sta leggendo ~/.inputrced è così che cambia il comportamento delle sequenze di tasti in programmi come bash.

Domanda

Come posso ricaricare questo dopo la modifica per vedere il comportamento modificato senza riavviare il mio programma terminale?


8
Sfondo (non sbagliato) .
Dennis Williamson,

3
Sono venuto qui alla ricerca di come caricare .inputrc con un comando. superuser.com/q/419670/56544
domenica

1
@CaptainLepton L'ho visto. Il terminale non è uguale alla shell. Effettuare exec bashuna sessione Bash sostituirà la sessione shell corrente con una nuova sessione Bash. xtermè un terminale.
Kusalananda,

1
@Kusalananda Grazie per il chiarimento. Questa è una buona idea. Descriveresti forse l'esecuzione di> exec bash come l'esecuzione di una nuova shell nel terminale corrente anziché il riavvio di bash, mentre stai sostituendo il tuo eseguibile precedente?
Capitano Lepton,

1
Sì, non è possibile "riavviare" la sessione di shell corrente. Questo è un modo per farlo. L'utilizzo della soluzione fornita da @maxelost è un'altra.
Kusalananda,

Risposte:


82

Per impostazione predefinita, C-x C-rè associato a re-read-init-file.

Vedere il Manuale di riferimento di Bash per una spiegazione.


4
Questo non funziona per me. Ho provato una mappatura diversa nel file .inputrc e anche senza fortuna: "\ eX \ eR": re-read-init-file Qualche suggerimento?
Capitano Lepton,

6
@Captain In realtà, lo fa, tranne per il fatto che non cancella i tasti che sono stati eliminati nel frattempo. Se ad esempio ne aggiungi alcuni, vengono caricati. La tua unica soluzione per questi è una nuova bash -l(shell che si comporta come una shell di login) che è stata inizializzata di recente.
Daniel Beck

Stavo modificando /etc/inputrcma avevo un file quasi vuoto ~/.inputrcche impediva di utilizzare quello in /etc/uso. La rimozione ha ~/.inputrccausato la lettura /etc/inputrce ha reso attive le mie modifiche.
Malvineous,

1
@Malvineous Sono stato colto di sorpresa da quello prima .. se aggiungi $include /etc/inputrcin cima ~/.inputrc, evita questo problema.
mwfearnley,

53

Puoi anche ricaricare nuove voci dalla riga di comando usando bind -f ~/.inputrc. Ciò caricherà le voci in .inputrc. Nota che esegue solo un caricamento, non un "ricaricamento", quindi non reimposta le righe che hai rimosso da .inputrc.

Per testare rapidamente da una lavagna pulita, basta eseguire bashquindi lavorare all'interno di quella nuova shell nidificata (o avviare un nuovo terminale).


Vedo, correggimi se sbaglio, che bind -faccetta davvero solo un nome file e non un file, quindi qualcosa come bind -f <(echo 'one line with ~/.inputrc syntax')(o, banalmente, bind -f <(cat ~/.inputrc)) non funzionerà. Questo è un po 'fastidioso. Sai cosa potrei fare al riguardo?
Enrico Maria De Angelis,


10

In .inputrc prima scegli la tua associazione e dopo associa la re-read-init-filefunzione:

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

Premere CTRLe x, rilasciare entrambi, premere CTRLe r.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.