วิธีการรับชื่อรหัสที่จะเข้ารหัสสำหรับ keymap ใน vimrc?


10

ใน Emacs ผมสามารถกดCtrl-h, kเพื่ออธิบายที่สำคัญ ฉันสามารถรับชื่อคีย์ได้แม้จะไม่ได้กำหนดเช่น

C-x <C-M-end> is undefined

C-x <C-M-end>ดังนั้นฉันได้รู้ชื่อที่สำคัญคือ

แต่คุณจะรับชื่อคีย์สำหรับ Vim ได้อย่างไร?

ฉันต้องการตั้งค่า keymap สำหรับCtrl-Shift-VและShift-Insertแต่ฉันต้องใช้รหัสอะไร

เป็นไปได้หรือไม่ที่จะได้รับชื่อที่สำคัญได้ทันที?

คำตอบ:


2

ที่ใกล้เคียงที่สุดที่ฉันสามารถหาdescribe-key( Ctrl+ H, K) คือ:mapคำสั่ง มันจะแสดงรายการการแมปทั้งหมด

นอกจากนี้คุณยังสามารถทำงานได้:map <key name>แต่คุณต้องระบุ<key>โดยใช้ไวยากรณ์พิเศษที่ระบุไว้ในคีย์โน้ต

หรือคุณสามารถลอง:mapCtrl+ V<key>ซึ่งควรให้คุณกดปุ่มแทนที่จะต้องใช้ไวยากรณ์พิเศษ

หากต้องการผูกCtrl+ Shift+ Vให้ลองสิ่งนี้:

:map <C-S-v> whatever

หรือ

:mapCtrl+ V Ctrl+ Shift+V whatever

แต่ตรวจสอบให้แน่ใจว่าโปรแกรมเทอร์มินัลของคุณไม่ได้ใช้สิ่งนี้สำหรับสิ่งพิเศษเช่นวางมิฉะนั้น Vim จะไม่เห็นการกดปุ่ม

ยังเห็นแผนที่ Alt คีย์ซึ่งช่วยอธิบายว่าคุณAltสำคัญควรจะเขียนเป็นหรือ<M-x><A-x>


มันคือ Ctrl-h, k, ไม่ใช่ Ctrl-X, k ซึ่งหมายถึง kill buffer
XièJìléi

ขออภัยแก้ไขแล้ว
Mikel

ฉันไม่แน่ใจว่าMหรือจะได้รับการแมปไปA Altแต่<M-h>, <M-l>ก็ไม่ได้ผล ฉันไม่รู้ว่าชื่อคีย์นั้นไม่ถูกต้องหรือยังไม่ได้ส่งเหตุการณ์สำคัญไปยัง Vim ไม่มีบันทึกไม่มีเงื่อนงำ
XièJìléi

ใช่Altเป็นเรื่องยากเพราะขั้วมากที่สุดส่งESCแล้วxเมื่อAlt+xถูกกดและวิธีการที่ไม่เป็นกลุ่มรู้ว่าคุณไม่ได้กดแล้วESC xโดยทั่วไปAltใช้งานได้เฉพาะใน Gvim
Mikel

5

ในการค้นหาว่าคีย์หรือคีย์ผสมใดบ้างที่ส่งออกเป็นกลุ่มฉันมักจะเปิดบัฟเฟอร์ว่างด้วย " :enew" เข้าสู่โหมดแทรกแล้วกดcontrol-vคีย์หรือคีย์ผสมที่ฉันต้องการระบุ เคล็ดลับ control-v นี้ยังสามารถทำงานกับ: -command line ดังนั้นการกำหนดการแมปสำหรับการทดสอบนั้นค่อนข้างง่าย ตัวอย่างเช่น " :map " control-vและคีย์ผสม " :echo 'it works'"


0

เพียงพิมพ์Ctrl+ Von-the-fly และแป้นที่คุณต้องการกด ถ้าคุณไม่พบผลที่คาดว่าจะ (ชอบเช่น<c-space>, <c-cr>, <M-i>, ... ) มันก็หมายความว่าคุณกำลังใช้เป็นกลุ่มและไม่ gvim วิธีที่เป็นกลุ่มเข้าใจถึงคีย์ที่พิมพ์จะเชื่อมโยงกับการกำหนดค่าเครื่องปลายทางของคุณ gvim ใช้คำจำกัดความของตัวเองดังนั้นจึงไม่มีอะไรจะกำหนดค่า

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