Tidak dapat meneruskan pencarian Bash history seperti halnya dengan CTRL-r


203

Saya mencoba mencari riwayat bash saya sama dengan CTRL- r, tetapi untuk meneruskan arah.

Sungguh menyakitkan bagi saya, ketika saya hanya menekan sekali terlalu sering CTRL- r, untuk menemukan perintah sebelumnya lagi.

Bagaimana Anda bisa meneruskan pencarian Bash history Anda seperti halnya dalam pencarian terbalik?

Jawaban:


321

Anda dapat mencari ke depan juga. Dari manual bash info, " 8.2.5 Mencari Perintah dalam Sejarah ":

Untuk mencari mundur dalam sejarah untuk string tertentu, ketik C-r. Mengetik C-spencarian maju melalui sejarah.

Masalah dengan Ctrl-S adalah kadang-kadang bertabrakan dengan kontrol aliran XON / XOFF (dalam Konsole misalnya). Pencarian itu adalah fitur readline, dan Anda harus bisa mengikatnya ke beberapa tombol lain. Pembaruan: Lebih sederhana dan lebih baik untuk menonaktifkan XON / XOFF dengan menjalankan

stty -ixon

4
Ini brilian, tapi saya menambahkan stty -ixon ke .profile saya dan sepertinya tidak berfungsi untuk tab baru. Ada ide tentang bagaimana membuat ini bekerja? Saya ingin XON / XOFF dinonaktifkan secara default.
John Gallagher

13
Seandainya ada orang lain yang memiliki masalah yang sama dengan saya - jika Anda menambahkan ini ke. Profil tidak akan berpengaruh. Hanya ketika Anda menambahkannya ke .bash_profile, keajaiban terjadi! Terima kasih atas tipnya - ini telah membuat saya gila selama bertahun-tahun.
John Gallagher

12
@ JohnGallagher Penting untuk dicatat adalah itu .bash_profiledan .profilehanya bersumber untuk shell login. Saya akan meletakkan ini di .bashrc(dari mana saya sumber .profile).
Victor Zamanian

13
[[ $- == *i* ]] && stty -ixondapat digunakan untuk menghindari masalah yang dijelaskan di sini
mMontu

3
Jika Anda menggunakan Putty dan tidak bisa / tidak ingin mempertahankan .bash_profilepada setiap mesin yang Anda hubungkan, jawaban pada pengguna super ini sangat bermanfaat.
fazy

41

Trik IMHO terbaik diaktifkan dengan pgupdan pgdown. masukkan saja ke dalam~/.inputrc

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

logout / login, ketikkan huruf pertama dan kemudian pgupatau pgdownuntuk mencari sepanjang sejarah

ctrl-R cari semua baris yang berisi kata-kata, sedangkan baris pencarian-pencarian-riwayat dimulai dengan kata-kata


2
Anda juga dapat menghapus komentar 2 baris ini di /etc/inputrc(mis. Di Ubuntu).
falconepl

2
Saya lebih suka mengikat ini ke atas dan ke bawah panah: "\ e [A": histori-search-backward dan "\ e [B": histori-search-forward
shmup

Bagaimana jika ini tidak berpengaruh pada bash?
Sören

26

Anda mungkin ingin mencoba https://github.com/dvorka/hstr yang memungkinkan pemfilteran "sarankan gaya kotak" dari riwayat Bash dengan pemesanan berdasarkan metrik (yakni opsional) yaitu jauh lebih efisien dan lebih cepat dalam arah maju dan mundur:

masukkan deskripsi gambar di sini

Hal ini dapat dengan mudah terikat untuk Ctrl-rdan / atauCtrl-s


5
Saya sedang jatuh cinta. Petunjuk cepat untuk menginstal di Ubuntu:sudo add-apt-repository ppa:ultradvorka/ppa; sudo apt-get update; sudo apt-get install hh; hh --show-configuration >> ~/.bashrc;
CivFan

14

Saya biasanya menekan ESCterminal, dan kemudian >. Setel ulang setidaknya dan Anda dapat mencoba klik lebih jarang CTRL+ R.


s / klik / tekan / Juga, Anda perlu menekan escape dua kali (pertama kali untuk melarikan diri dari pencarian mundur).
Croad Langshan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.