.İnputrc dosyasını nasıl yeniden yüklerim?


98

Arka fon

Readline modülünün okuduğunu ~/.inputrcve bash gibi programlar altında tuş vuruşlarının davranışını değiştirdiğini duydum .

Soru

Terminal programımı yeniden başlatmadan değiştirilen davranışı görmek için düzenleme sonrasında bunu nasıl yeniden yükleyebilirim?


8
Arkaplan (yanlış değil) .
Dennis Williamson,

3
Buraya .inputrc komutunun nasıl yükleneceğini aramaya geldim. superuser.com/q/419670/56544
dfrankow

1
@ CaptainLepton Bunu gördüm. Terminal kabukla aynı değildir. exec bashBash oturumunda yapmak , geçerli kabuk oturumunu yeni bir Bash oturumu ile değiştirir. xtermbir terminaldir.
Kusalananda

1
@Kusalananda Açıklama için teşekkürler. Bu iyi bir fikir. Run> exec bash komutunu, önceki çalıştırılabilir anahtarınızı değiştirirken, bash komutunu yeniden başlatmak yerine, geçerli terminalde yeni bir kabuk çalıştırmak olarak tanımlar mısınız?
Yüzbaşı Lepton,

1
Evet, mevcut kabuk oturumunu "yeniden başlatmanın" yolu yoktur. Bu yapmanın bir yolu. @ Maxelost'un verdiği çözümü kullanmak başka bir şeydir.
Kusalananda

Yanıtlar:


82

Varsayılan olarak, C-x C-rbağlıdır re-read-init-file.

Açıklama için Bash Referans Kılavuzuna bakınız .


4
Bu benim için çalışmıyor. .İnputrc dosyasında farklı bir eşleme denedim ve şansım da yoktu: "\ eX \ eR": re-read-init-file Herhangi bir öneriniz var mı?
Yüzbaşı Lepton

6
@ Kaptan Bu arada, silinen tuş vuruşlarını temizlememesi dışında aslında yapar . Örneğin, bazı eklerseniz, yüklenir. Bunlar için tek çözümünüz bash -l, yeni başlatılan yeni bir giriş (kabuk gibi davranan bir kabuk).
Daniel Beck

Düzenliyordum, /etc/inputrcancak ~/.inputrcbirinin /etc/kullanılmasını engelleyen neredeyse boş bir yerim vardı . Çıkarılması, değişiklikleri ~/.inputrcokumam /etc/inputrcve değişiklikler yapmamı sağladı .
Malvineous

1
@Malvineous Daha önce de yakalandım .. $include /etc/inputrcüstüne eklerseniz ~/.inputrc, bu sorunu önler.
mwfearnley

53

Ayrıca yeni girişleri komut satırından kullanarak yeniden yükleyebilirsiniz bind -f ~/.inputrc. Bu girişleri .inputrc içinde yükleyecektir. Sadece bir "yeniden yükleme" değil, sadece bir yükleme yaptığını unutmayın. Bu nedenle, .inputrc dosyasından çıkardığınız satırları sıfırlamaz.

Temiz bir sayfadan hızlı bir şekilde test etmek için, sadece koşup bashyeni yuvalanmış kabuğun içinde çalışın (veya yeni bir terminal başlatın).


Görüyorsun, beni yanlış yaparsam düzelt, bu bind -fsadece bir dosya adını kabul ediyor, bir dosyayı değil, yani bind -f <(echo 'one line with ~/.inputrc syntax')(veya, önemsiz şekilde bind -f <(cat ~/.inputrc)) gibi bir şey çalışmaz. Bu biraz can sıkıcı bir durum. Bu konuda ne yapabilirim biliyor musun?
Enrico Maria De Angelis


10

.İnputrc içinde ilk önce bağlayıcınızı seçin ve sonra re-read-init-fileişlevi bağlayın :

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

Basın CTRLve x, yayın hem basın CTRLve r.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.