การแมป Ctrl พร้อมเครื่องหมายเท่ากับ


10

ฉันพยายามแมป Ctrl และเครื่องหมายบวกด้วยกัน นี่คือสิ่งที่ฉันพยายามใน vimrc ของฉัน:

nnoremap <C-=>    : echo "Hello" <CR> 

อย่างไรก็ตามดูเหมือนว่าการแมปจะไม่ถูกทริกเกอร์ มีข้อเสนอแนะเกี่ยวกับสิ่งที่ฉันอาจทำผิดหรือเปล่า? ฉันใช้ MacVim



1
ดูเหมือนว่าคำถามประเภทนี้กำลังเกิดขึ้นบ่อยครั้ง: VIM วิธีการแมปรหัสรวม: ctrl + shift + w +,
mMontu

@mMontu ใช่มันเป็นคำถามที่พบรัก ฉันสงสัยว่ามันจะเป็นความคิดที่ดีที่จะเขียนโพสต์ที่เป็นที่ยอมรับในการเป็นตัวแทนของตัวละครภายในของรหัส termcodes และสิ่งที่กลุ่มสามารถ / ไม่สามารถแมป
James

คำตอบ:


17

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 ฉันไม่รู้ว่ามันใช้ได้หรือไม่


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