Arama Bash geçmişi CTRL-r ile benzer şekilde iletilemiyor


203

Ben olduğu gibi benzer benim bash arama geçmişini çalışıyorum CTRL- rama ileri yöne.

Sadece bir kere daha vurmak zaman, benim için bir ağrı oldu CTRL- ryine önceki komutu bulmak için.

Bash geçmişinizi ters aramadaki gibi nasıl yönlendirebilirsiniz?

Yanıtlar:


322

Siz de ileriye doğru arama yapabilirsiniz. Bash el kitabından, " 8.2.5 Geçmişte Komutları Arama ":

Geçmişte belirli bir dizeyi geriye doğru aramak için yazın C-r. C-sGeçmişte ileriye doğru aramalar yazmak .

Ancak Ctrl-S ile ilgili sorun bazen XON / XOFF akış kontrolü ile çarpışmasıdır (örneğin Konsole'da). Ancak arama bir okuma satırı özelliğidir ve onu başka bir tuşa bağlayabilmeniz gerekir. Güncelleme: Daha basit ve daha iyi, sadece XON / XOFF'u çalıştırarak devre dışı bırakmaktır

stty -ixon

4
Bu mükemmel, ama stpro -ixon .profile benim eklemek ve yeni sekmeler için çalışmıyor gibi görünüyor. Bu işin nasıl yapılacağına dair bir fikrin var mı? XON / XOFF'un varsayılan olarak devre dışı bırakılmasını isterim.
John Gallagher

13
Başkasının yaptığım aynı sorunu olması durumunda - bunu .profile dosyasına eklerseniz etkili olmaz. Sadece .bash_profile dosyasına eklediğinizde sihir gerçekleşir! Harika bir ipucu için teşekkürler - bu beni yıllardır deli ediyordu.
John Gallagher

12
@JohnGallagher Unutulmaması gereken önemli olan .bash_profileve .profilesadece giriş mermileri için kaynaklanmış olmasıdır. Ben bunu .bashrc(hangi kaynak .profile) koymak .
Victor Zamanian

13
[[ $- == *i* ]] && stty -ixonburada açıklanan
mMontu

3
PuTTY kullanıyorsanız ve .bash_profilebağlandığınız her makinede bakım yapmak istemiyorsanız / sürdürmek istemiyorsanız , süper kullanıcı üzerindeki bu yanıt bir tedavi işlevi görür.
fazy

41

En iyi hile IMHO ile sağlıyor pgupve pgdown. sadece onu içine koy~/.inputrc

"\e[5~": history-search-forward
"\e[6~": history-search-backward

oturumu kapatın / oturum açın, ilk harfleri yazın ve ardından pgupveya pgdowngeçmişte arama yapmak için

ctrl-R kelimeleri içeren tüm satırları araırken, tarihle ileriye doğru arama satırlarını kelimelerle başlayan


2
Ayrıca bu 2 satırı da açabilirsiniz /etc/inputrc(örn. Ubuntu'da).
falconepl

2
Bunu yukarı ve aşağı oka bağlamayı tercih ederim: "\ e [A": geçmiş-arama-geri ve "\ e [B": geçmiş-arama-ileri
shmup

Bunun bash üzerinde bir etkisi yoksa ne olur?
Sören

26

Bash geçmişinin (isteğe bağlı) metrik tabanlı siparişle "öneri stili" filtrelemesine izin veren https://github.com/dvorka/hstr adresini deneyebilirsiniz , yani ileri ve geri yönlerde çok daha verimli ve hızlıdır:

resim açıklamasını buraya girin

Kolayca edilebilir bağlı için Ctrl-rve / veyaCtrl-s


5
Aşığım. Ubuntu'ya hızlı kurulum talimatları:sudo add-apt-repository ppa:ultradvorka/ppa; sudo apt-get update; sudo apt-get install hh; hh --show-configuration >> ~/.bashrc;
CivFan

14

Genellikle ESCterminalde ve sonra >. En azından sıfırlar ve daha az tıklamayı CTRL+ deneyebilirsiniz R.


s / click / press / Ayrıca, kaçış tuşuna iki kez basmanız gerekir (geriye doğru aramadan ilk kez kaçmak için).
Croad Langshan
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.