2010-06-23 18 views
7

Dans mon cas, le bouton de déplacement vers la droite est ;cartographie vim ctrl-;

Je veux Ctrl; pour déplacer le curseur de 7 caractères vers la droite. J'ai essayé la mise en correspondance ci-dessous vimrc, mais il ne fonctionne pas:

nmap <c-;> 7;

Répondre

11

Comme le commentaire précédent le dit, il semble que ";" ne peut pas être sous la forme <C-;>.

Vous pouvez tester en tapant Ctrl + V + séquence de touches.

Ctrl + V + ; ne donne que ; alors que Ctrl +V + L donner ^L. Donc, je suppose que vim ne peut pas reconnaître <C-;>.

Vous avez un peu plus d'informations sur les codes clés des pages d'aide:

:help keycodes 
:help <C- 
5

Je ne suis pas sûr, mais il pourrait être parce que <C-;> ne correspond pas à un caractère ASCII. Seulement @, A-Z, [, \, ], ^ et _ carte de caractères ASCII (0 à 31 respectivement) lorsqu'il est combiné avec Ctrl.

EDIT

Je l'ai fait quelques recherches et trouvé this thread. Dans celui-ci, il est dit que gvim.exe fonctionne comme je le suggère: n'utilisez que des caractères de contrôle valides, pas d'autres. Fait intéressant vim.exe fonctionne différemment et vous pouvez faire la cartographie que vous voulez.

1

Comme d'autres ont dit <c-;> ne peut pas être mis en correspondance. La meilleure solution est:

nmap <C-l> 7l 
nmap <C-h> 7h 

Vous pouvez remapper les touches de curseur régulières au lieu.
quelque chose comme ça fonctionnerait aussi:

nmap <C-Right> 7l 
nmap <C-Left> 7h 

Autre exemple côté pour le redimensionnement des fenêtres:

" resize horzontal split window 
nmap <C-Up> <C-W>-<C-W>- 
nmap <C-Down> <C-W>+<C-W>+ 
" resize vertical split window 
nmap <C-Right> <C-W>><C-W>> 
nmap <C-Left> <C-W><<C-W><