web-dev-qa-db-fra.com

Déplacer le curseur x lignes de la position actuelle dans vi / vim

Existe-t-il un moyen de déplacer le curseur d'une quantité relative de lignes dans vi/vim? Supposons que le curseur se trouve 10 lignes sous un bloc de code que vous souhaitez supprimer. Si vous avez les numéros de ligne affichés dans l'ordre relatif, ce serait bien d'avoir une "commande de saut de 10 lignes" qui vous y amènerait.

Ou peut-être vaut-il mieux afficher les numéros de ligne absolus et aller xgg où x est le numéro de ligne?

67
Flawe

Oui, bien sûr, il y a un moyen. j et k montent et descendent d'une ligne, donc 10j et 10k déplacer vers le bas et le haut de dix lignes. Vous pouvez répéter n'importe quelle motion en y mettant un chiffre.

Vous pourriez également vouloir set relativenumber si c'est quelque chose que vous faites beaucoup - cela vous évitera de compter en imprimant des numéros de ligne relatifs à la ligne actuelle, au lieu de nombres absolus.

101
Cascabel

Déplacer 10 lignes vers le haut et vers le bas peut ne pas convenir à votre tâche ainsi qu'à d'autres options. Considérez d'autres mouvements:

CtrlfCtrlb page avant et arrière.

}{ avancer et reculer d'un paragraphe.

Vous pouvez écrire des règles dans votre vimrc pour lier 10j à une clé, dites J pour descendre de 10 lignes en ajoutant la ligne suivante à votre fichier vimrc: map <S-j> 10j

Cependant, vous écraseriez la commande J existante utile (joignez deux lignes). Recherche d'une combinaison de touches inutilisée bien positionnée pour 10j/10k peut être difficile, je suggère donc d'utiliser les mouvements existants que j'ai mentionnés.

Vous pouvez également savoir que vous pouvez revenir en arrière vers un mot que vous voyez en faisant: ?someword et transmettre à un mot que vous voyez en faisant /someword. Celles-ci seront plus rapides que d'essayer de monter/descendre de 10 lignes, puis de repositionner votre curseur à l'emplacement exact. Si vous ne pouvez pas penser à une simple chaîne de recherche pour la ligne en question, vous pouvez toujours aller au numéro de ligne comme vous l'avez dit (xgg).

44
Olhovsky

Je jouais avec vim et j'ai remarqué - vous déplace vers le haut et + vous fait descendre, vous pouvez donc:

10-

ou vous pourriez utiliser k puisque vous êtes très probablement habitué à hjkl mouvement du curseur.

10
Cilan