การใช้เครื่องหมายด้วยกุญแจที่ตายแล้ว


9

ฉันใช้รูปแบบแป้นพิมพ์ที่ backtick ( `) เป็นกุญแจสำคัญที่ตายแล้ว

ซึ่งหมายความว่าเมื่อฉันพิมพ์ backtick ตามด้วยสระ (ตัวอย่าง`a) สิ่งที่ Vim เห็นคืออักขระที่เน้นเสียง ( à) ดังนั้นถ้าฉันทำเครื่องหมายไว้กับฉันสามารถข้ามไปยังบรรทัดของเครื่องหมายที่มีma 'aแต่การกระโดดไปยังตำแหน่งเฉพาะของเครื่องหมายด้วย`aจะไม่ทำงาน

ฉันพบวิธีแก้ปัญหาสำหรับสิ่งนี้: เมื่อพิมพ์คีย์ที่ตายแล้วฉันสามารถทำให้ Vim รับ backtick ได้โดยการกด backtick และสเปซบาร์ ดังนั้นถ้าฉันต้องการที่จะไปทำเครื่องหมายฉันประเภทa`␣a

มีวิธีที่จะข้ามไปที่เครื่องหมายโดยไม่ต้องกดช่องว่างนั้นหรือไม่? ไม่มีผลข้างเคียงหรือไม่


ไม่สามารถใช้ backticks ประเภท 2 เพื่อรับ backtick ได้หรือไม่ หรือกำหนดค่าระบบปฏิบัติการของคุณเพื่อทำเช่นนั้น? นั่นคือยังคงเป็น keystoke พิเศษ แต่ดีกว่า + `พื้นที่ ...
มาร์ติน Tournoij

@Carpetsmoker ไม่พิมพ์สอง backticks ตามปกติส่งผลให้ `` สำหรับฉัน แต่ในโหมดปกติดูเหมือนว่ามีสิ่งอื่นเกิดขึ้น: ฉันพิมพ์ `` a และ Vim บอกว่า "E78: ไม่ทราบเครื่องหมาย" จากshowcmdที่ผมคิดว่าเป็นกลุ่มเข้าใจเรื่องนี้เป็น `à นอกจากนี้ฉันต้องการทำให้ระบบปฏิบัติการเป็นอิสระ mapดูเหมือนว่าจะทำงาน
Gonçalo Ribeiro

คำตอบ:


13

ลองทำให้เป็นแผนที่:

" Mapping dead keys in normal mode
nmap á 'a

ด้วยวิธีนี้เมื่อ Vim ได้รับการเน้นเสียงมันจะตีความว่าเป็น`+a

การใช้nmapช่วยให้สิ่งนี้เกิดขึ้นในโหมดปกติเท่านั้น ในโหมดแทรกหรือโหมดคำสั่งคุณจะได้รับการเน้นเสียงaตามที่คุณคาดหวัง

เป็นไปได้ที่จะใช้สิ่งนี้กับปุ่มอื่น ๆ :

nmap à `a
nmap Á 'A
nmap À `A
nmap ç 'c
nmap Ç 'C
nmap é 'e
nmap è `e
nmap É 'E
nmap È `E
nmap í 'i
nmap ì `i
nmap Í 'I
nmap Ì `I
nmap ó 'o
nmap ò `o
nmap Ó 'O
nmap Ò `O
nmap ú 'u
nmap ù `u
nmap Ú 'U
nmap Ù `U

1
มันใช้งานได้ และไม่มีผลข้างเคียง ฉันควรเรียนรู้การใช้แผนที่ ขอบคุณ.
Gonçalo Ribeiro

ไม่เป็นไร ดีใจที่ฉันสามารถช่วย
John O'M

สิ่งที่เกี่ยวกับ ^ (ตัวอักษรตัวแรกของบรรทัด) ตั้งแต่นี้เป็นคำสั่งแบบสแตนด์อโลนสิ่งที่สามารถทำได้? ระบบปฏิบัติการแคชคีย์ตายจนกว่าจะมีการกดคีย์อื่นหรือไม่?
Spidey

0
" US-intl keyboard dead key re-mappings
nmap à `a|nmap á 'a
nmap ć 'c
nmap è `e|nmap é 'e
nmap ǵ 'g
nmap ì `i|nmap í 'i
nmap ḱ 'k
nmap ĺ 'l
nmap ḿ 'm
nmap ǹ `n|nmap ń 'n
nmap ò `o|nmap ó 'o
nmap ṕ 'p
nmap ŕ 'r
nmap ś 's
nmap ù `u|nmap ú 'u
nmap ǜ `v|nmap ǘ 'v
nmap ẁ `w|nmap ẃ 'w
nmap ỳ `y|nmap ý 'y
nmap ź 'z

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