การกำหนดค่าโหมด Bash vi เป็นค่าเริ่มต้นไปที่โหมดคำสั่ง


14

เป็นไปได้หรือไม่ที่จะกำหนดค่าโหมด bash vi เพื่อให้เริ่มต้นในโหมดคำสั่งแทนโหมดแทรก ? ฉันพบว่าฉันต้องกดEscมากเกินไป ดูเหมือนว่ามีความเป็นไปได้ที่จะระบุสิ่งนี้ใน zsh แต่ฉันไม่พบวิธีการทำเช่นนี้ใน bash / readline

คำตอบ:


2

ฉันไม่คิดว่าเป็นไปได้ที่จะใช้GNU Readline Libraryมาตรฐาน

อย่างไรก็ตามคุณสามารถใช้xdotoolเพื่อแฮ็คธรรมดาเพื่อให้ได้ผลเหมือนกัน ต่อท้ายคำสั่งของคุณเพื่อ.bashrcจำลองการEscapeกดปุ่มจะทำให้แน่ใจว่าคำของคุณเปิดในโหมดคำสั่ง:

xdotool key Escape

คุณอาจต้องการใช้การหน่วงเวลาเล็กน้อยพร้อม--delayสวิตช์เพื่อป้องกันไม่ให้แจ้งให้คุณทราบ ...

โปรดทราบว่าสิ่งนี้มีแนวโน้มที่จะทำให้เกิดความยุ่งยากมากกว่าที่คุณคาดไว้: เทอร์มินัลถูกออกแบบมาเพื่อรับอินพุต การทำลายที่ (แม้ว่าจะมีเพียงเล็กน้อยเท่านั้น) อาจไม่สามารถพิสูจน์ได้ว่าเป็นความคิดที่ดี ...


1

ฉันนำมันกลับมามันไม่ทำงานกับการเลื่อนเคอร์เซอร์ มันใช้งานได้ แต่มีพฤติกรรมตลก ๆ ถ้าคุณถอดมันออก:PS1="$PS1 ^[


เปลี่ยนPS1ข้อความแจ้งของคุณ:

PS1="test $ \[^[[s^[^[[u\]"

^[การหลบหนีที่แท้จริงอยู่ที่ไหน( Ctrl+ V Esc)

การหลบหนีด้วยตัวเองในการเปลี่ยนตรงกลางเป็นโหมดคำสั่ง^[[sและการ^[[uหลบหนีการจัดเก็บและเรียกคืนตำแหน่งเคอร์เซอร์; ฉันก็พบว่ามีพฤติกรรมตลก ๆ



-1

ลอง set +o vi

set -o vi จะเข้าสู่โหมดแก้ไขอีกครั้ง

http://tldp.org/LDP/abs/html/options.html


ไม่ทำงาน: ปิดโหมด vi ...
jasonwryan

ใช่ฉันพยายาม ขวา. ฉันคิดได้ - ใช้ vim เปลี่ยน cmap (การอ้างอิง: help mode-switching in vim) สำหรับEsckey การทำแผนที่เทียบเท่าเริ่มต้นสำหรับEscคือCtrl + ]
Nikhil Mulley

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