ฉันพยายามแมป Ctrl และเครื่องหมายบวกด้วยกัน นี่คือสิ่งที่ฉันพยายามใน vimrc ของฉัน:
nnoremap <C-=> : echo "Hello" <CR>
อย่างไรก็ตามดูเหมือนว่าการแมปจะไม่ถูกทริกเกอร์ มีข้อเสนอแนะเกี่ยวกับสิ่งที่ฉันอาจทำผิดหรือเปล่า? ฉันใช้ MacVim
ฉันพยายามแมป Ctrl และเครื่องหมายบวกด้วยกัน นี่คือสิ่งที่ฉันพยายามใน vimrc ของฉัน:
nnoremap <C-=> : echo "Hello" <CR>
อย่างไรก็ตามดูเหมือนว่าการแมปจะไม่ถูกทริกเกอร์ มีข้อเสนอแนะเกี่ยวกับสิ่งที่ฉันอาจทำผิดหรือเปล่า? ฉันใช้ MacVim
คำตอบ:
Ctrl-=แต่น่าเสียดายที่ไม่มีวิธีที่เชื่อถือได้ของการทำแผนที่
เนื่องจากวิธีการที่ctrl+key
คอร์ดโต้ตอบกับเทอร์มินัลและแสดงอยู่ภายในการแมป Ctrl-m เฉพาะที่ Vim นั้นรับประกันว่าสามารถตรวจจับได้จึงเป็นสิ่งที่กำหนดไว้ในมาตรฐาน ASCII นี่คือรายการทั้งหมดของctrl+key
ชุดค่าผสมดังกล่าวและไบต์แต่ละชุดแทน
Ctrl-@ 0x00 NUL
Ctrl-A to Ctrl-Z 0x01 to 0x1A
Ctrl-a to Ctrl-z 0x01 to 0x1A
Ctrl-[ 0x1B ESC
Ctrl-\ 0x1C
Ctrl-] 0x1D
Ctrl-^ 0x1E
Ctrl-_ 0x1F
Ctrl-? 0x7F DEL
อย่างไรก็ตามโปรดทราบว่าสิ่งเหล่านี้ส่วนใหญ่มีฟังก์ชั่นใน Vim อยู่แล้วและบางฟังก์ชันนั้นเหมือนกันกับ / แยกไม่ออกจากการกดแป้นอื่น ๆ เช่นCTRL-M
มีรหัสคีย์เดียวกับEnter
ดังนั้นหากคุณจับคู่รหัสใดชุดหนึ่งคุณจะต้องจับคู่รหัสอื่นด้วย
ที่มา: Vim-FAQ
คุณอาจจะสามารถที่จะได้รับรอบข้อ จำกัด ข้างต้นโดยการกำหนดค่า terminal ของคุณเพื่อส่งบางไบต์ตามลำดับสำหรับการทำแผนที่ของคุณเช่นในหัวข้อกองล้นนี้แต่ที่แน่นอนจะมีอาการปวด โดยส่วนตัวฉันควรเลือกแผนที่อื่น
สิ่งนี้อาจได้รับการแก้ไขในที่สุด แต่ก็ไม่น่าเป็นไปได้เนื่องจาก Vim อาศัยเทอร์มินัลที่ใช้งานอยู่อย่างไรก็ตามมีความเป็นไปได้ที่จะทำงานใน Neovim ฉันไม่รู้ว่ามันใช้ได้หรือไม่