2010-04-04 4 views
26

Un comportement frustrant dans vim est que lorsque je déplace mon curseur à droite ou à gauche (respectivement "l" ou "h)" et je suis à la fin ou au début de la ligne, mon curseur ne se déplace pas vers la première colonne de la ligne suivante ou la dernière colonne de la ligne précédente.Aller automatiquement à la ligne suivante dans vim

Existe-t-il un moyen de modifier ce comportement?

+1

Ce n'est pas exactement une question de programmation, mais ... –

+0

... mais il est une question concernant « des outils logiciels couramment utilisés par programmeurs ". :) (certes, ce n'est pas un "problème qui est unique au développement de logiciels"). – lindhe

+1

'set nocompatible' avait désactivé cette fonctionnalité dans ma configuration' vim' – Paschalis

Répondre

24

Vous pouvez utiliser le paramètre whichwrap pour faire h et l enrouler autour du début et la fin de chaque ligne:

set whichwrap+=h,l 

Cependant, Vim La documentation recommande par contre, probablement parce que cela pourrait avoir des effets secondaires inattendus (comme casser des plugins, ou changer le fonctionnement des mappages de touches communs).

Comme alternative, vous pouvez faire ce que Matti Virkkunen recommandé:

set whichwrap+=<,>,[,] 

Ce laisse h et l avec leur comportement par défaut, mais permet aux touches fléchées gauche et droite pour enrouler autour des lignes. (Ceci est ce que je fais, et cela fonctionne bien.)

Vous pouvez également jeter un oeil au réglage backspace, pour contrôler comment Backspace, Delete, Ctrl + W et Control + U fonctionnent en mode Insertion. Je mets le mien comme ceci:

set backspace=indent,eol,start 

Cela me permet de revenir en arrière sur à peu près tout.

Pour plus d'informations, consultez les rubriques dans l'aide: Vim

:help 'whichwrap 
:help 'backspace 
+0

Pouvez-vous expliquer ce que ceux-ci font? (Plus précisément, que signifient '<', '>', '[', et ']'?) –

+0

Voici une version conviviale de ': help 'whichwrap': https://vimhelp.appspot.com/options.txt. html #% 27whichwrap% 27 –

8

il faut mettre dans votre .vimrc:

set whichwrap+=<,>,[,] 
+0

Pouvez-vous expliquer ce que cela fait? –

+0

@QPaysTaxes: Le paramètre whichwrap spécifie les touches qui vont s'enrouler sur la ligne suivante/précédente lorsqu'elles sont pressées, et le caractère se réfère ensuite aux touches du curseur respectivement en mode normal et en mode insertion. Vous pouvez ajouter par ex. 'h, l' pour que les touches de mouvement vim s'enroulent, si vous le souhaitez. –

Questions connexes