เมื่อคุณกดCtrl+ Lในโหมดทุบตีเริ่มต้นหน้าจอจะถูกล้าง แต่เมื่อฉันเรียกใช้set -o vi
และกดCtrl+ Lการกดแป้นพิมพ์จะถูกพิมพ์ ( ^L
) มีวิธีใดบ้างที่จะรักษาพฤติกรรมนี้
เมื่อคุณกดCtrl+ Lในโหมดทุบตีเริ่มต้นหน้าจอจะถูกล้าง แต่เมื่อฉันเรียกใช้set -o vi
และกดCtrl+ Lการกดแป้นพิมพ์จะถูกพิมพ์ ( ^L
) มีวิธีใดบ้างที่จะรักษาพฤติกรรมนี้
คำตอบ:
Ctrl+ Lถูกผูกไว้ในโหมดคำสั่ง vi แต่ไม่ได้อยู่ในโหมดแทรก ไม่มีการผูกค่าเริ่มต้นสำหรับclear-screen
ในโหมดแทรก ควรระบุการโยง Readline ใน~/.inputrc
เช่น:
set editing-mode vi
$if mode=vi
set keymap vi-command
# these are for vi-command mode
Control-l: clear-screen
set keymap vi-insert
# these are for vi-insert mode
Control-l: clear-screen
$endif
สิ่งนี้จะผูกCtrl+ Lเพื่อล้างหน้าจอทั้งในโหมดปกติและโหมดแทรก โดยธรรมชาติหากคุณต้องการใช้ในโหมดเดียวให้ลบตัวเลือกที่เกี่ยวข้องออก
มีรายการคำสั่ง readline มากมายที่คุณสามารถใช้เพื่อกำหนด bash shell ของคุณเอง
ใส่บรรทัดนี้ในbashrc
:
bind -m vi-insert "\C-l":clear-screen