มีวิธีใดบ้างที่จะเปิดใช้งาน Ctrl + L เพื่อล้างหน้าจอเมื่อตั้งค่า 'set -o vi' หรือไม่


54

เมื่อคุณกดCtrl+ Lในโหมดทุบตีเริ่มต้นหน้าจอจะถูกล้าง แต่เมื่อฉันเรียกใช้set -o viและกดCtrl+ Lการกดแป้นพิมพ์จะถูกพิมพ์ ( ^L) มีวิธีใดบ้างที่จะรักษาพฤติกรรมนี้

คำตอบ:


61

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 ของคุณเอง


1
จากความอยากรู้ทำไมต้องกังวลกับคำสั่ง vi หากมันถูกแมปแล้ว? เพียงเพื่อความสมบูรณ์หรือมีเหตุผลทางเทคนิคหรือไม่
Ken Bellows

2
@ KenBellows เพื่อความชัดเจนตามความเห็น (และฉันต้องการตัวอย่างในบล็อกคำสั่ง vi ด้วยเหตุผลด้านสุนทรียะอย่างแท้จริง)
jasonwryan

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