Comme je l'ai dit dans les commentaires, les mappages ne sont pas conçus pour faire ce que vous voulez faire. Une option intéressante pour ce cas d'utilisation est langmap
.
Cette option permet de conserver le comportement ou votre clavier en mode insertion et de changer son comportement dans les autres modes.
Pour l'utiliser, Vim doit être compilé avec +langmap
, vous pouvez vérifier que cette option est activée avec echo has('langmap')
: si la commande retourne 1
l'option est activée sinon vous devrez obtenir une configuration avec cette option activée (pour savoir comment faire, il est une autre question).
Lorsqu'elle est activée, l'option prend des paires de caractères par exemple set langmap += à@
vous permettra d'ajouter un à
dans votre tampon lorsque vous êtes en mode insertion et que vous tapez a à
mais taper à
en mode normal déclenchera en fait un @
(cet exemple peut être utile sur azerty claviers pour faciliter le travail avec les macros).
Pour utiliser langmap en grec, vous pouvez suivre l'exemple donné en :h 'langmap'
ajoutant cette ligne à votre vimrc
(Copier cette ligne à partir d'ici peut ne pas être une bonne idée car je ne suis vraiment pas sûr de l'encodage, retirer la ligne directement du fichier d'aide est probablement plus sûr) :
: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
Maintenant, d'après ce que je comprends dans vos commentaires, cela reste un problème lorsque vous essayez d'utiliser des commandes prédéfinies: lorsque vous tapez une commande, le comportement du mode d'insertion sera déclenché à la place du comportement défini par langmap. Malheureusement, je ne suis pas sûr d'avoir une bonne solution pour cela. Une idée pourrait être de redéfinir des commandes par exemple comme ça:
command λς lw
De cette façon, lorsque vous taperez la commande que λς
Vim exécutera, lw
mais je vois plusieurs inconvénients à cette méthode:
- Il pourrait être très difficile de redéfinir toutes les commandes que vous souhaitez utiliser.
- Les commandes définies par l'utilisateur doivent commencer par une majuscule, et j'ai maintenant idée à quel point il est pratique de le faire en grec.
Alors peut-être qu'un plugin suggéré par @Alexander Myshov dans sa réponse à cette question pourrait être utile (comme je n'en ai jamais essayé, je ne sais pas s'ils résolvent le problème, mais il semble qu'ils le fassent).
langmap
option (voir le document qui comprend un exemple de mise en page grecque). Cette option a été faite pour aider à gérer les claviers non latins comme le grec ou le cyrilique. Il vous permet de définir des paires de symboles qui seront interprétées normalement en mode insertion mais seront remplacées dans d'autres modes, peut-être que cela vous aidera.