(reverse-i-search) ใน Bash


26

ฉันมักจะใช้CTRL+ rสำหรับ (reverse-i-search) แต่บางครั้งฉันก็ผ่านคำสั่งที่ฉันกำลังมองหา; หากฉันทำอีกครั้ง(reverse-i-search)จะไม่สามารถหาได้อีกต่อไป ฉันถือว่าตัวชี้ปัจจุบันของประวัติคำสั่งอยู่ก่อนคำสั่งที่ฉันค้นหา

ไม่มีใครรู้วิธีที่จะกลับไปที่คำสั่งปัจจุบันมากที่สุดในประวัติศาสตร์โดยไม่ต้องคลิก 1,000 ครั้งdown arrow?


1
การค้นหาย้อนกลับเป็นคุณลักษณะของ bash (และ readline libaries) ดังนั้นฉันจึงแก้ไขชื่อและคำถามเล็กน้อยเพื่อให้สะท้อนถึงสิ่งนั้น
Doug Harris

ถ้าคุณผ่านคำสั่งที่คุณต้องการCTRL+SHIFT+Rให้กลับไป
Ricky Robinson

คำตอบ:


7

มีเป็นคำถามที่คล้ายกันใน stackoverflow.com

คำตอบที่ดีที่สุดคือการใช้Ctrl+Gเพื่อยกเลิกการค้นหาปัจจุบัน


นี่ไม่ใช่คำตอบที่ดีที่สุด คำตอบที่ดีที่สุดคือคำตอบของเดนนิสวิลเลียมสัน: เพิ่มstty -ixonใน.bashrc(หรือในไฟล์ปรับแต่งอื่น ๆ ที่เกี่ยวข้อง) จากนั้นCtrl-Sทำตามขั้นตอนต่อไปในประวัติศาสตร์เช่นเดียวกับCtrl-Gขั้นตอนย้อนหลัง แรกCtrl-Sกดแป้นหลังจากCtrl-Gการเปลี่ยนแปลงreverse-i-searchการi-searchต่อไปCtrl-Sจะใช้เวลาขั้นตอนแรกไปข้างหน้า จากนั้นแต่ละCtrl-Sใช้เวลาหนึ่งก้าวไปข้างหน้ามากขึ้น
nrz

หรือหากคุณยกเลิกการค้นหา (เช่นกดปุ่ม esc หรือปุ่มลูกศร) คุณสามารถกด Esc ตามด้วย '>'
Superole

38

ที่จริงแล้วคำตอบอีกข้อสำหรับคำถามนั้นเป็นตัวเลือกที่ดีกว่า

ใน~/.bashrcเพิ่มบรรทัดต่อไปนี้:

stty -ixon

จากนั้นคุณสามารถใช้Ctrl- sเพื่อก้าวไปข้างหน้าผ่านประวัติศาสตร์ในลักษณะเดียวกับที่คุณใช้Ctrl- rเพื่อย้อนกลับ

สิ่งนี้จะทำงานเพื่อเริ่มการค้นหาไปข้างหน้าใหม่ (เรียกว่าi-searchตรงกันข้ามกับreverse-i-search) ในขณะที่เรียกดูผ่านประวัติศาสตร์ สมมติว่าคุณทำCtrl- rและพิมพ์ข้อความคำสั่งใกล้ปลายทางแล้วกดลูกศรขึ้นหลายครั้งเพื่อแก้ไขสิ่งที่คุณต้องการ (หรือเปลี่ยนใจ) ตอนนี้กดCtrl- sและพิมพ์อักขระสองสามตัวจากบรรทัดนั้น Zoooom! ตรงไปที่มัน


2
ความหมายของ stty -ixon คืออะไร? มันปิดใช้งานบางสิ่งที่อาจจำเป็นในสถานการณ์อื่น ๆ หรือไม่
Gregory Pakosz

7
@GregoryPakosz: ปิดการใช้งาน XON / XOFF ( การควบคุมการไหลของซอฟต์แวร์ ) ซึ่งไม่มีประโยชน์จากแป้นพิมพ์ตอนนี้เรากำลังสื่อสารในอัตราที่สูงกว่า 300 baud เล็กน้อย
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

ขอบคุณ googled ในขณะที่และมาถึงข้อสรุปเดียวกันมันก็ไร้ประโยชน์ส่วนใหญ่ในปัจจุบัน
Gregory Pakosz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.