ฉันอยู่ในตำแหน่งที่ผิดปกติเล็กน้อยเมื่อใช้รูปแบบแป้นพิมพ์สองแบบที่แตกต่างกันเป็นประจำ ( โปรแกรมเมอร์ - DvorakและTurkish-F ) เลย์เอาต์เหล่านี้ค่อนข้างจะแตกต่างจากกันและฉันสามารถมีความเชี่ยวชาญเป็นกลุ่มด้วยความทรงจำของกล้ามเนื้อหนึ่งชุด ฉันค่อนข้างชำนาญในการใช้คำสั่ง vim ในเค้าโครง Dvorak แต่แทบจะเป็นไปไม่ได้เลยที่จะใช้ถ้าแป้นพิมพ์ของฉันอยู่ในรูปแบบ Turkish-F น่าเสียดายที่ฉันแก้ไขไฟล์เป็นประจำทั้งภาษาอังกฤษและตุรกีและแม้แต่ภาษาผสม ความสามารถของฉันเป็นเช่นนั้นฉันสามารถพิมพ์ภาษาใดก็ได้ในรูปแบบแป้นพิมพ์ตามลำดับ แต่สมองของฉันปฏิเสธที่จะไขว้พวกเขาและพิมพ์แม้แต่ตัวอักษรสองสามคำในภาษาตุรกีจากเค้าโครง Dvorak หรือในทางกลับกัน
ฉันมีการผูกสองปุ่มเพื่อแสดงความยินดีสำหรับการเปลี่ยนเลย์เอาต์ใน Xorg แต่สิ่งนี้ทำให้ฉันมีเวิร์กโฟลว์ที่น่าอึดอัดใจในกลุ่มเมื่อแก้ไขไฟล์ภาษาแบบผสม:
<vim commands…>i<switch to tr>…content…<escape><switch to en><vim commands…>
ฉันอยากจะตัดทอนสิ่งนี้ให้สั้นลงเช่น:
<vim commands…><leader>i…content…<escape><vim commands…>
... เช่นการใช้<leader>i
ชุดของ:imap
ค่าเพื่อเลียนแบบเค้าโครงภาษาตุรกีโดยไม่เปลี่ยนเค้าโครงแป้นพิมพ์ของระบบ ในเวลาเดียวกันi
จะเปลี่ยนเป็นโหมดแทรก แต่ไม่มี:imap
ค่าเพิ่มเติม คุณค่าของตัวเองนั้นง่ายฉันแค่ต้องการการแมปตัวอักษรแบบนี้:
:imap a u
:imap A U
:imap o i
:imap O İ
"etc.
คำถามคือวิธีการที่จะติดตั้งสองโหมดแทรกโหมดแทรกหนึ่งปกติและหนึ่งหลอกแทรกโหมดที่เหมือนกันยกเว้นสำหรับพวงของแมปและวิธีการที่ฉันสามารถเรียกโหมดเหล่านี้ด้วย<leader>i
, <leader>a
ฯลฯ ?
:imap
มันคือว่ามันจะทำงานได้แม้ในเซสชั่น ssh ระยะไกลหรือเมื่อ$DISPLAY
ไม่ได้กำหนดไว้
InsertEnter
และInsertLeave
autocmds ซึ่งคุณสามารถใช้เพื่อสลับเค้าโครงโดยอัตโนมัติ โดยเฉพาะอย่างยิ่งInsertLeave
คุณสามารถตรวจสอบว่าเป็นภาษาตุรกีได้หรือไม่ให้เปลี่ยนเป็น Dvorak ตั้งค่าสถานะและเมื่อคุณใส่ส่วนแทรกอีกครั้งให้เปลี่ยนกลับเป็นภาษาตุรกีหากเป็นกรณีล่าสุดที่คุณออกจากโหมดแทรก