เป็นไปได้หรือไม่ที่จะกำหนดค่าโหมด bash vi เพื่อให้เริ่มต้นในโหมดคำสั่งแทนโหมดแทรก ? ฉันพบว่าฉันต้องกดEscมากเกินไป ดูเหมือนว่ามีความเป็นไปได้ที่จะระบุสิ่งนี้ใน zsh แต่ฉันไม่พบวิธีการทำเช่นนี้ใน bash / readline
เป็นไปได้หรือไม่ที่จะกำหนดค่าโหมด bash vi เพื่อให้เริ่มต้นในโหมดคำสั่งแทนโหมดแทรก ? ฉันพบว่าฉันต้องกดEscมากเกินไป ดูเหมือนว่ามีความเป็นไปได้ที่จะระบุสิ่งนี้ใน zsh แต่ฉันไม่พบวิธีการทำเช่นนี้ใน bash / readline
คำตอบ:
ฉันไม่คิดว่าเป็นไปได้ที่จะใช้GNU Readline Libraryมาตรฐาน
อย่างไรก็ตามคุณสามารถใช้xdotoolเพื่อแฮ็คธรรมดาเพื่อให้ได้ผลเหมือนกัน ต่อท้ายคำสั่งของคุณเพื่อ.bashrcจำลองการEscapeกดปุ่มจะทำให้แน่ใจว่าคำของคุณเปิดในโหมดคำสั่ง:
xdotool key Escape
คุณอาจต้องการใช้การหน่วงเวลาเล็กน้อยพร้อม--delayสวิตช์เพื่อป้องกันไม่ให้แจ้งให้คุณทราบ ...
โปรดทราบว่าสิ่งนี้มีแนวโน้มที่จะทำให้เกิดความยุ่งยากมากกว่าที่คุณคาดไว้: เทอร์มินัลถูกออกแบบมาเพื่อรับอินพุต การทำลายที่ (แม้ว่าจะมีเพียงเล็กน้อยเท่านั้น) อาจไม่สามารถพิสูจน์ได้ว่าเป็นความคิดที่ดี ...
ฉันนำมันกลับมามันไม่ทำงานกับการเลื่อนเคอร์เซอร์ มันใช้งานได้ แต่มีพฤติกรรมตลก ๆ ถ้าคุณถอดมันออก:PS1="$PS1 ^[
เปลี่ยนPS1ข้อความแจ้งของคุณ:
PS1="test $ \[^[[s^[^[[u\]"
^[การหลบหนีที่แท้จริงอยู่ที่ไหน( Ctrl+ V Esc)
การหลบหนีด้วยตัวเองในการเปลี่ยนตรงกลางเป็นโหมดคำสั่ง^[[sและการ^[[uหลบหนีการจัดเก็บและเรียกคืนตำแหน่งเคอร์เซอร์; ฉันก็พบว่ามีพฤติกรรมตลก ๆ
คำตอบคือไม่มี ไฟล์ bash ต้นทางที่เกี่ยวข้องคือbashline.c
Esckey การทำแผนที่เทียบเท่าเริ่มต้นสำหรับEscคือCtrl + ]