59 votes

VIM: désactivation du curseur / des flèches, mais uniquement pour la navigation

 inoremap  <Up>     <NOP>
inoremap  <Down>   <NOP>
inoremap  <Left>   <NOP>
inoremap  <Right>  <NOP>
noremap   <Up>     <NOP>
noremap   <Down>   <NOP>
noremap   <Left>   <NOP>
noremap   <Right>  <NOP>
 

C'est ce que j'utilise pour désactiver la navigation du curseur, pour m'aider à rester en hjkl :)

Mais cela désactive également le curseur sur la barre de commande ... normalement, les touches fléchées vous permettent de parcourir l'historique

Est-il possible de désactiver les touches de curseur UNIQUEMENT pour la navigation et non pour l'historique?

32voto

Saurabh Tiwari Points 23

Ajoutez ce qui suit dans votre fichier de points vimrc.

"Désactiver les touches fléchées en mode évasion

 map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>
 

"Désactiver les touches fléchées en mode insertion

 imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>
 

26voto

misha Points 10541

Vous pouvez parcourir l'historique en utilisant C-n et C-p (Ctrl + n et Ctrl + p, respectivement).

10voto

ZyX Points 26516

Le code que vous avez posté ne doit pas désactiver la navigation dans l'historique en mode ligne de commande, êtes-vous sûr de ne pas avoir quelque part cnoremap <Up> <Nop> ou noremap! <Up> <Nop> ? Essayez verbose cmap <Up> il devrait vous indiquer si la clé <Up> est redéfinie pour le mode de ligne de commande.


Si, lorsque vous dites «barre de commande», vous entendez une fenêtre de ligne de commande, vous pouvez essayer les solutions suivantes:

 nnoremap <expr> <Up> ((bufname("%") is# "[Command Line]")?("\<Up>"):(""))
 

7voto

Pour moi, cela fonctionne:

 map <Left> <Nop>
map <Right> <Nop>
map <Up> <Nop>
map <Down> <Nop>
 

Tiré de: https://github.com/garybernhardt/dotfiles/blob/master/.vimrc#L148

0voto

Matteo Riva Points 14340

Modifiez noremap en nnoremap pour appliquer les mappages au mode normal, sinon ce sont des mappages globaux tous modes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X