J'essaie de mapper la Altclé de la manière suivante:
:map <A-j> j
:map <A-k> k
mais ça ne marche pas (on sonne sur Alt + j/ Alt + k).
Qu'est-ce que je manque?
J'utilise Terminal sur OSX, il en va de même sur Linux distant.
Sur Ctrl + v, Alt + jj'ai: ?~H~F
( ∆
quand encoding=utf-8
).
Sur Ctrl + v, Alt + kj'ai: ?~Z
( ˚
quand encoding=utf-8
).
Exécuter vim sans plugins ( -u NONE
) ne fait aucune différence.
key-bindings
terminal
Kenorb
la source
la source
Alt
(presse, pas tenir) et ensuitej
travailler? Il fautxterm
au moins que je sois prêtmetaSendsEscape
àtrue
faire en sorte que ces séquences fonctionnent ... Je ne sais pas si vous avez le même problème, et je n'utilise pas OSX, je ne peux donc pas tester ...Alt
, relâcher, puisj
ou toute autre touche fonctionne normalement. J'ai vérifié et trouvé l'option 'Utiliser l'option en tant que clé méta' , je l'ai activée et cela fonctionne maintenant. Donc, le réglage ametaSendsEscape
fait l'affaire, merci.Réponses:
C'est comme ça que je fais sur Linux ou Cygwin:
Commencez par vérifier quels caractères sont envoyés par votre terminal lorsque vous appuyez sur ALT+ J:
Pour ce faire, je vais à la console et lance
sed -n l
(vous pouvez également utilisercat
pour cela). Ensuite, j'appuie sur ALT+ Jet vois que les caractères à l'écran sont^[j
.Je remplace
^[
par\e
(parce que c'est ce qui est envoyé par mon terminal lorsque j'appuie sur esc) et la chaîne finale pour moi est\ej
.Puis je l'écris à mon
.vimrc
:Et la cartographie fonctionne.
la source
:set <M-j>=\ej
pièce. Que dois-je rechercher?:help :set-termcap
Avec l’aide de Carpetsmoker , il semble que Terminal n’ait pas été configuré pour «Utiliser l’option Alt / option comme clé méta» (cela est particulièrement courant pour les terminaux à interface graphique).
Pour Terminal sur OSX, cela se trouve dans Préférences -> Paramètres -> onglet Clavier -> "Utiliser l’option comme clé méta" . Vérification: Comment puis-je changer le terminal pour utiliser l’option comme clé méta? ( Mavericks ).
Pour XTerm, vérifiez: La configuration de XTerm sur la valeur par défaut sur Meta Sends Escape indique:
Ensuite, les mappages standard avec des Altclés telles que:
fonctionne bien.
Pour de l' aide, voir:
:h :map-alt-keys
.la source
:h :map-alt-keys
comme une autre source d'informationSemblable à la réponse de Kossak, mais un peu plus simple, en mappant les touches à appuyer littéralement.
Soit en mode normal après avoir appuyé sur :, soit inséré dans votre
.vimrc
, mappez l’entrée directement en commençant le mappage:puis appuyez sur Ctrl+ Vpuis sur la frappe pour enregistrer, par exemple Alt+ ←. Cela montrera quelque chose comme ça:
mais chacun
^[
correspond à un seul caractère d'échappement littéral et la coloration syntaxique doit l'indiquer. Remplacez le ou les caractères d'échappement par le texte<Esc>
et ajoutez la commande que vous souhaitez utiliser:Je sais que OP mappait Alt+ lettres, mais j’ai utilisé des flèches pour montrer comment procéder pour quelque chose qui peut ne pas être mappé par défaut.
la source
Cela fonctionne pour moi sur Ubuntu 16.04 xfce terminal (et alacritty rust terminal)
Définissez le déclencheur de l'extrait de code ultisnip sur
Meta-/
(comme pour l'extrait de code emacs)Voici maintenant je tape
^[/
vimEn mode insertion
Ctrl-V Alt-/
(
Meta
est laAlt
touche sur le clavier de mon PC)la source
Si
Control+V
suivi deALT-x
shows^[x
(tapez terminal), vous pouvez le réparer avec ce petit script de vim.wikia.com :Ajoutez à .vimrc pour tous les mappages de touches alt.
la source