Utiliser des marques avec des touches mortes

9

J'utilise une disposition de clavier dans laquelle le backtick ( `) est une touche morte .

Cela signifie que lorsque je tape un backtick suivi d'une voyelle (par exemple `a) ce que Vim voit est un caractère accentué ( à). Donc, si je fixe une marque avec, maje peux passer à la ligne de la marque avec 'a. Mais sauter à l'emplacement spécifique de la marque `ane fonctionnera pas.

J'ai trouvé une solution de contournement: en tapant une touche morte, je peux faire en sorte que Vim reçoive un backtick en frappant le backtick puis la barre d'espace. Donc si je veux aller marquer aje tape `␣a.

Y a-t-il un moyen de sauter à la marque sans avoir à frapper cet espace supplémentaire? Sans effets secondaires?

Gonçalo Ribeiro
la source
Vous ne pouvez pas utiliser de backticks de type 2 pour obtenir un backtick? Ou configurer votre système d'exploitation pour cela? C'est toujours une frappe supplémentaire, mais mieux que `+ espace ...
Martin Tournoij
@ Carpetsmoker No.Taper deux backticks donne normalement `` pour moi. Mais en mode Normal, il semble que quelque chose se passe: je tape `` a et Vim dit "E78: Marque inconnue". De showcmdje pense que Vim comprend cela comme à. Je voudrais également rendre le comportement du système d'exploitation indépendant. mapsemble faire le travail.
Gonçalo Ribeiro

Réponses:

12

Essayez d'en faire un mappage:

" Mapping dead keys in normal mode
nmap á 'a

De cette façon, lorsque Vim obtient l'accent a, il l'interprète comme `+a

L'utilisation nmappermet que cela se produise uniquement en mode normal; en mode insertion ou en mode commande, vous obtiendrez l'accent aque vous attendez.

Il est possible de l'appliquer à d'autres clés:

nmap à `a
nmap Á 'A
nmap À `A
nmap ç 'c
nmap Ç 'C
nmap é 'e
nmap è `e
nmap É 'E
nmap È `E
nmap í 'i
nmap ì `i
nmap Í 'I
nmap Ì `I
nmap ó 'o
nmap ò `o
nmap Ó 'O
nmap Ò `O
nmap ú 'u
nmap ù `u
nmap Ú 'U
nmap Ù `U
John O'M.
la source
Cela fonctionne. Et sans effets secondaires. Je devrais apprendre à utiliser des cartes. Je vous remercie.
Gonçalo Ribeiro
Je vous en prie. Heureux d'avoir pu aider.
John O'M.
Et le ^ (premier caractère doux de la ligne)? Puisqu'il s'agit d'une commande autonome, que peut-on faire? Le système d'exploitation met-il en cache la clé morte jusqu'à ce qu'une autre touche soit enfoncée?
Spidey