ทางลัดเดียวเพื่อส่งต่อการค้นหาหลังจากค้นหา Ctrl-R ย้อนกลับ


13

ฉันใช้Ctrl+ Rตลอดเวลา แต่บ่อยครั้งที่ฉันต้องผ่านคำสั่งที่ฉันตามมาเพราะฉันกดมันเร็วเกินไป

เพื่อส่งต่อการค้นหาCtrl+ Sสามารถใช้บริการที่มีให้ก็ไม่ได้ใช้สถานีแรก (konsole ในกรณีของฉันซึ่งstty -ixonใน~/.bashrcการแก้ไขได้)

อย่างไรก็ตามฉันต้องกดสองครั้ง: เมื่อดูเหมือนว่าจะเข้ามาi-searchหลังจากอยู่ในreverse-i-searchโหมดและครั้งที่สองที่จะย้อนกลับจริง ๆ

มีวิธีลบความจำเป็นในการกดปุ่มลัดสองครั้งหรือไม่?


3
เช่นเดียวกับ Ctrl-R Ctrl-S ตัวแรกจะรอให้สตริงค้นหา อันที่สองใช้สตริงการค้นหาเดียวกันกับที่คุณใช้มาก่อน (ด้วย Ctrl-R ในสถานการณ์ของคุณ) ฉันรู้วิธีหลีกเลี่ยงสองขั้นตอนเหล่านั้นไม่ได้ readlineไม่มีฟังก์ชัน "ค้นหาสตริงเดียวกันในอีกทางหนึ่งรอบ"
xhienne

คำตอบ:


11

นี่คือวิธีการที่แตกต่างกัน หากคุณพอใจกับคำสั่งการแก้ไข vi พื้นฐาน bash สนับสนุนโหมด vi สำหรับการแก้ไขบรรทัดคำสั่ง ถ้าคุณเกลียดชัง vi คุณจะไม่ชอบสิ่งนี้ แต่ถ้าคุณสามารถทนได้คุณอาจพบว่ามันดีกว่าและมีการกดแป้นน้อยกว่า

set -o vi

การค้นหาประวัติใช้งานได้ดังนี้:

  • Esc เพื่อเข้าสู่โหมดคำสั่ง
  • / เพื่อเริ่มการค้นหา
  • พิมพ์ข้อความของสตริงค้นหา
  • Enter เพื่อทำการค้นหา
  • n เพื่อไปที่นัดต่อไป
  • N เพื่อข้ามกลับไปยังการแข่งขันก่อนหน้า
  • i เพื่อกลับสู่โหมดแทรก
  • Enter เพื่อเรียกใช้คำสั่ง

รูปแบบ vi เทียบเท่ากับ Ctrl-R และ Ctrl-S คือnและNตามลำดับ และพวกเขาไม่ต้องการแตะสองครั้ง ที่น่าสนใจ!
Nathaniel M. Beaver

2

เห็นได้ชัดว่าการค้นหาประวัติทุบตีต้องการการกดครั้งแรกของทางลัดเพื่อให้คุณทราบทิศทางที่คุณกำลังค้นหาจากนั้นกดครั้งที่สองเพื่อทำการค้นหาจริง ฉันไม่คิดว่าเป็นไปได้ที่จะเปลี่ยนวิธีการทำงานโดยไม่ต้องแก้ไขซอร์สโค้ด

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

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

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