Saya berada dalam posisi yang agak tidak biasa menggunakan dua tata letak keyboard yang berbeda secara teratur ( Programmers-Dvorak dan Turkish-F ). Layout ini sangat berbeda satu sama lain dan saya hanya bisa mahir dalam vim dengan satu set memori otot. Saya cukup mahir dengan perintah vim di tata letak Dvorak, tetapi hampir mustahil untuk digunakan jika keyboard saya ada di tata letak Turkish-F. Sayangnya saya secara teratur mengedit file dalam bahasa Inggris dan Turki dan bahkan bahasa campuran. Kemahiran saya sedemikian rupa sehingga saya bisa mengetik bahasa mana pun di tata letak keyboard masing-masing dengan cukup baik, tetapi otak saya menolak untuk menyilangkannya dan mengetikkan bahkan beberapa huruf kata dalam bahasa Turki dari tata letak Dvorak atau sebaliknya.
Saya memiliki binding dua kunci salut untuk mengubah tata letak di Xorg, tetapi bahkan ini membuat saya dengan alur kerja yang canggung dalam vim saat mengedit file bahasa campuran:
<vim commands…>i<switch to tr>…content…<escape><switch to en><vim commands…>
Saya ingin dapat mempersingkat ini menjadi sesuatu seperti:
<vim commands…><leader>i…content…<escape><vim commands…>
... sedemikian rupa sehingga menggunakan <leader>i
set :imap
nilai untuk meniru tata letak Turki tanpa mengubah tata letak keyboard sistem. Pada saat yang sama, i
akan beralih ke mode memasukkan tetapi tanpa nilai tambahan :imap
. Nilai-nilai itu sendiri mudah, saya hanya perlu pemetaan alfabet seperti ini:
:imap a u
:imap A U
:imap o i
:imap O İ
"etc.
Pertanyaannya adalah, bagaimana menyiapkan dua mode insert, salah satu modus insert normal dan satu semu insert modus yang identik kecuali untuk sekelompok pemetaan, dan bagaimana saya bisa memicu mode ini dengan <leader>i
, <leader>a
, dll?
:imap
adalah bahwa itu akan bekerja bahkan dalam sesi ssh jarak jauh atau ketika $DISPLAY
tidak diatur.
InsertEnter
danInsertLeave
autocmds, yang dapat Anda gunakan untuk beralih tata letak secara otomatis. Khususnya, padaInsertLeave
Anda dapat memeriksa apakah itu Turki, jika ya, beralih ke Dvorak, atur bendera, dan ketika Anda memasukkan masukkan lagi beralih kembali ke Turki jika itu adalah kasus terakhir kali Anda meninggalkan mode memasukkan.