ไม่สามารถส่งต่อค้นหาประวัติการทุบตีแบบเดียวกับ CTRL-r


203

ฉันพยายามค้นหาประวัติทุบตีของฉันเช่นเดียวกับCTRL- rแต่เพื่อส่งต่อทิศทาง

มันเป็นความเจ็บปวดสำหรับฉันเมื่อฉันเพิ่งกดหนึ่งครั้งบ่อยเกินไปCTRL- rเพื่อค้นหาคำสั่งก่อนหน้าอีกครั้ง

คุณจะส่งต่อการค้นหาประวัติทุบตีของคุณคล้ายกันในการค้นหาแบบย้อนกลับได้อย่างไร

คำตอบ:


321

คุณสามารถค้นหาไปข้างหน้าเช่นกัน จากคู่มือข้อมูล bash " 8.2.5 กำลังค้นหาคำสั่งในประวัติศาสตร์ ":

C-rหากต้องการค้นหาย้อนหลังในประวัติศาสตร์สำหรับสตริงโดยเฉพาะอย่างยิ่งประเภท พิมพ์C-sการค้นหาไปข้างหน้าผ่านประวัติ

ปัญหาเกี่ยวกับ Ctrl-S คือบางครั้งการชนกับการควบคุมการไหลของ XON / XOFF (ใน Konsole เป็นต้น) อย่างไรก็ตามการค้นหาเป็นคุณสมบัติ readline และคุณควรจะผูกมันไว้กับคีย์อื่น อัปเดต: เรียบง่ายและดีกว่าเพียงปิดการใช้งาน XON / XOFF โดยการเรียกใช้

stty -ixon

4
นี่เป็นสิ่งที่ยอดเยี่ยม แต่ฉันเพิ่ม stty -ixon ใน. profile ของฉันและดูเหมือนจะไม่ทำงานกับแท็บใหม่ มีความคิดเห็นเกี่ยวกับวิธีการทำงานนี้หรือไม่? ฉันชอบที่ XON / XOFF ถูกปิดการใช้งานโดยค่าเริ่มต้น
John Gallagher

13
ในกรณีที่คนอื่นมีปัญหาเดียวกันกับที่ฉันทำ - ถ้าคุณเพิ่มสิ่งนี้ลงในโปรไฟล์. มันจะไม่มีผล มันก็ต่อเมื่อคุณเพิ่มลงใน. bash_profile ว่าความมหัศจรรย์เกิดขึ้น! ขอบคุณสำหรับเคล็ดลับที่ยอดเยี่ยม - สิ่งนี้ทำให้ฉันเป็นบ้ามาหลายปีแล้ว
John Gallagher

12
@JohnGallagher สิ่งสำคัญที่ควรทราบคือ.bash_profileและ.profileมีที่มาสำหรับเชลล์ล็อกอินเท่านั้น ฉันจะใส่ไว้ใน.bashrc(ซึ่งฉันมาจาก.profile)
Victor Zamanian

13
[[ $- == *i* ]] && stty -ixonสามารถใช้เพื่อหลีกเลี่ยงปัญหาที่อธิบายไว้ที่นี่
mMontu

3
ในกรณีที่คุณใช้ PuTTY และไม่สามารถ / ไม่ต้องการบำรุงรักษา.bash_profileในทุกเครื่องที่คุณเชื่อมต่อคำตอบนี้สำหรับผู้ใช้ระดับสูงจะได้รับการปฏิบัติ
fazy

41

ที่ดีที่สุดของ IMHO เคล็ดลับคือการเปิดใช้งานด้วยและpgup pgdownเพียงแค่ใส่มันในของคุณ~/.inputrc

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

ออกจากระบบ / เข้าสู่ระบบพิมพ์ตัวอักษรตัวแรกและจากนั้นpgupหรือpgdownเพื่อค้นหาตลอดประวัติศาสตร์

ctrl-R ค้นหาทุกบรรทัดที่มีคำในขณะที่ history-search-forward ค้นหาบรรทัดเริ่มต้นด้วยคำ


2
คุณสามารถยกเลิกการใส่เครื่องหมาย 2 บรรทัดใน/etc/inputrc(เช่นใน Ubuntu)
falconepl

2
ฉันต้องการผูกสิ่งนี้กับลูกศรขึ้นและลง: "\ e [A": history-search-backward และ "\ e [B": history-search-forward
shmup

เกิดอะไรขึ้นถ้าสิ่งนี้ไม่มีผลในการทุบตี?
Sören

26

คุณอาจต้องการลองhttps://github.com/dvorka/hstrซึ่งอนุญาตให้มีการกรอง "แนะนำสไตล์กล่อง" ของประวัติทุบตีด้วยการสั่งซื้อตามเมตริก (ตัวเลือก) เช่นมีประสิทธิภาพและรวดเร็วกว่าทั้งในทิศทางไปข้างหน้าและข้างหลัง:

ป้อนคำอธิบายรูปภาพที่นี่

สามารถผูกกับCtrl-rและ / หรือCtrl-s


5
ฉันกำลังมีความรัก. คำแนะนำอย่างรวดเร็วในการติดตั้งบน Ubuntu:sudo add-apt-repository ppa:ultradvorka/ppa; sudo apt-get update; sudo apt-get install hh; hh --show-configuration >> ~/.bashrc;
CivFan

14

ฉันมักจะกดESCใน terminal >แล้ว มันรีเซ็ตอย่างน้อยแล้วคุณอาจจะลองคลิกมักจะน้อยเกินไป+CTRLR


s / คลิก / กด / นอกจากนี้คุณจะต้องกด Escape สองครั้ง (ครั้งแรกเพื่อหลบหนีจากการค้นหาย้อนหลัง)
Croad Langshan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.