Seperti yang saya katakan di komentar, pemetaan di tidak dirancang untuk melakukan apa yang ingin Anda lakukan. Opsi yang menarik untuk use case ini adalah langmap
.
Opsi ini memungkinkan untuk menjaga perilaku atau keyboard Anda dalam mode sisipkan dan mengubah perilaku di mode lain.
Untuk menggunakannya, Vim harus dikompilasi +langmap
, Anda dapat memeriksa apakah opsi ini diaktifkan echo has('langmap')
: jika perintah mengembalikan 1
opsi diaktifkan, Anda harus menyiapkan pengaturan dengan opsi ini (untuk mengetahui bagaimana melakukannya, itu adalah pertanyaan lain).
Ketika diaktifkan, opsi mengambil pasangan karakter misalnya set langmap += à@
akan memungkinkan Anda untuk menambahkan à
di buffer Anda ketika Anda berada dalam mode insert dan Anda mengetik a à
tetapi mengetik à
dalam mode normal benar-benar akan memicu a @
(contoh ini dapat berguna pada azerty keyboard untuk mempermudah pekerjaan dengan makro).
Untuk menggunakan langmap di yunani Anda dapat mengikuti contoh yang diberikan dalam :h 'langmap'
menambahkan baris ini ke Anda vimrc
(Menyalin baris ini dari sini mungkin bukan ide yang baik karena saya benar - benar tidak yakin dengan pengkodean, mungkin menarik garis langsung dari file bantuan mungkin lebih aman) :
:set langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζz
Sekarang dari apa yang saya mengerti dalam komentar Anda itu tetap menjadi masalah ketika Anda mencoba menggunakan perintah yang telah ditentukan: ketika Anda mengetik perintah, perilaku mode penyisipan akan dipicu alih-alih perilaku langmap yang ditentukan. Sayangnya saya tidak yakin saya punya solusi yang bagus untuk itu. Satu ide bisa jadi untuk mendefinisikan kembali perintah misalnya seperti itu:
command λς lw
Dengan cara ini ketika Anda akan mengetik perintah λς
Vim akan mengeksekusi lw
tetapi saya melihat beberapa kelemahan untuk metode ini:
- Mungkin sangat menyakitkan di pantat untuk mendefinisikan ulang semua perintah yang ingin Anda gunakan.
- Perintah yang ditentukan pengguna harus dimulai dengan huruf kapital, dan sekarang saya tahu betapa nyamannya melakukannya di Yunani.
Jadi mungkin sebuah plugin yang disarankan oleh @Alexander Myshov dalam jawabannya untuk pertanyaan ini bisa berguna (karena saya tidak pernah mencoba semua ini, saya tidak tahu apakah mereka menyelesaikan masalah tetapi sepertinya mereka melakukannya).
langmap
opsi (lihat dokumen yang menyertakan contoh tata letak yunani). Opsi ini sebenarnya dibuat untuk membantu berurusan dengan keyboard non latin seperti yunani atau cyril. Ini memungkinkan Anda untuk menentukan pasangan simbol yang akan ditafsirkan secara normal dalam mode insert tetapi akan diganti dalam mode lain, mungkin ini akan membantu Anda.