Dans vim, comment modifier la ligne des touches fléchées gauche et droite?


25

Dans vim, mes touches fléchées fonctionnent correctement, se déplaçant vers le haut, le bas, la gauche et la droite comme prévu, à une exception près. Au début d'une ligne, la flèche gauche ne fait rien, au lieu d'aller au dernier caractère de la ligne précédente. À la fin d'une ligne, la flèche droite ne fait rien, au lieu d'aller au premier caractère de la ligne suivante.

Existe-t-il un paramètre que je peux modifier pour obtenir le comportement que j'attends?


4
Je pense que la plupart des utilisateurs de VIM recommandent de ne pas utiliser les touches fléchées.
user12612

@ user12612 pourquoi exactement?
luchonacho

@luchonacho Je pense que l'idée est que les utilisateurs sérieux de VIM soutiennent que vos doigts ne doivent pas quitter la ligne d'accueil de votre clavier pour naviguer où vous êtes dans votre texte.
nohat

Réponses:


26

Après quelques recherches supplémentaires sur Google, j'ai trouvé que la réponse était d'utiliser l' whichwrapoption.

J'ai ajouté la ligne suivante à mon .vimrc:

set whichwrap+=<,>,[,]

Les options <et >activent le paramètre souhaité pour le mode normal et [et ]activent le paramètre souhaité pour le mode d'insertion.


1
(Pourquoi ce n'était pas le paramètre par défaut sur mon système est un mystère)
nohat

Cela ne semble pas affecter le comportement des h j k lclés.
Sebastián Grignoli

À droite, il existe d'autres valeurs pour h et j. Voir :help 'whichwrap'ou vimhelp.appspot.com/options.txt.html#%27whichwrap%27 . k et l ne s'appliquent pas vraiment puisque nous parlons du comportement gauche / droite au début / fin des lignes.
Adam Monsen

9

Ajoutez ceci à votre .vimrc:

set whichwrap+=<,>,h,l,[,]

0

Il s'agit d'un comportement par défaut - vous pouvez toujours utiliser Début et Fin pour passer au début et à la fin d'une ligne.


5
OP souhaite modifier le comportement par défaut. C'est pourquoi il a demandé ici en premier lieu.
akira

0

Vous pouvez contourner ce problème en utilisant w et b qui passeront à travers les lignes.


Mais b vous prend le premier caractère du dernier mot de la ligne précédente. N'y a-t-il vraiment aucun moyen de déplacer la flèche gauche vers le dernier caractère de la ligne précédente lorsque vous êtes au premier caractère d'une ligne?
nohat

Ouais je sais, ce n'est pas une vraie solution.
Hasen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.