Come ho detto nei commenti, le mappature non sono progettate per fare quello che vuoi fare. Un'opzione interessante per questo caso d'uso è langmap
.
Questa opzione consente di mantenere il comportamento o la tastiera in modalità inserimento e modificarne il comportamento nelle altre modalità.
Per usarlo è necessario compilare Vim +langmap
, è possibile verificare che questa opzione sia abilitata con echo has('langmap')
: se il comando restituisce 1
l'opzione è abilitata altrimenti dovrete ottenere una configurazione con questa opzione abilitata (per sapere come farlo, esso è un'altra domanda).
Quando è abilitato, l'opzione accetta coppie di caratteri, ad esempio set langmap += à@
ti permetterà di aggiungere un à
nel tuo buffer quando sei in modalità inserimento e digiti un à
ma digitando à
in modalità normale in realtà attiverà un @
(questo esempio può essere utile su azerty tastiere per facilitare il lavoro con le macro).
Per usare langmap in greco puoi seguire l'esempio dato :h 'langmap'
nell'aggiunta di questa riga alla tua vimrc
(Copiare questa riga da qui potrebbe non essere una buona idea poiché non sono davvero sicuro della codifica, probabilmente strappare la linea direttamente dal file di aiuto è probabilmente più sicuro) :
: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
Ora, da quello che ho capito nei tuoi commenti, rimane un problema quando si tenta di utilizzare comandi predefiniti: quando si digita un comando, verrà attivato il comportamento in modalità inserimento anziché il comportamento definito langmap. Purtroppo non sono sicuro di avere una buona soluzione per questo. Un'idea potrebbe essere quella di ridefinire i comandi per esempio in questo modo:
command λς lw
In questo modo quando digiterai il comando λς
che eseguirà Vim lw
ma vedo diversi svantaggi di questo metodo:
- Potrebbe essere un enorme dolore nel culo ridefinire tutti i comandi che vuoi usare.
- I comandi definiti dall'utente devono iniziare con una lettera maiuscola e ora ho idea di quanto sia conveniente farlo in greco.
Quindi forse un plugin suggerito da @Alexander Myshov nella sua risposta a questa domanda potrebbe essere utile (dato che non ho mai provato nessuno di questi non so se risolvono il problema ma sembra che lo facciano).
langmap
opzione (vedi il documento che include un esempio per il layout greco). Questa opzione è stata fatta per aiutare a gestire tastiere non latine come greche o cirilliche. Ti permette di definire coppie di simboli che verranno interpretati normalmente in modalità inserimento ma che verranno sostituiti in altre modalità, forse questo ti aiuterà.