Aller au n-ième symbole de la ligne

85

Comment déplacer le curseur vers le n-ième symbole à partir de la gauche dans Vim?

Une des solutions que je vois est d'appuyer sur 0n<right-arrow>, il passera à la position n + 1. Y a-t-il un moyen plus naturel de le faire?

Nutel
la source
1
la solution de la flèche vers la droite a fonctionné pour mon problème ... thnx
raj_gt1
Qui utilise jamais à la <right arrow>place de lvim?
LRDPRDX

Réponses:

129

Le tuyau '|' le caractère peut être ce que vous voulez:

Pour aller à la 25e colonne d'une ligne en mode normal, appuyez sur 25|

Pour aller à la 37e colonne d'une ligne en mode normal, appuyez sur 37|

etc. . .

Herbert Sitz
la source
Super, c'était ce que je cherchais
Nutel
4
@CamilB Essayez quelque chose comme $3h, qui vous déplacera à la fin de la ligne puis 3 caractères vers la gauche.
Jeff Klein
Pour en savoir plus, consultez l'aide de vim :help bar. Quand j'en ai découvert, cela a rendu les commentaires et décommentations tellement plus faciles XD Après avoir découvert cela, je ne me fie pas aux plugins de commentaire / décommentation externes, la vie d'édition de code est tellement meilleure maintenant :)
Avi Mehenwal
40

EDIT: mal interprété votre question.

vous pouvez avancer vers un symbole particulier en tapant fsuivi du symbole en question:

si vous voulez passer au troisième $, vous tapez:

3f$

pour revenir en arrière, vous utilisez un "F" majuscule

F$

pour arriver à la fin de la ligne en premier, utilisez "$"

donc vos frappes pour trouver le troisième $ à partir de la fin d'une ligne sont:

$3F$

j'aime garder quelque chose comme ça à portée de main lorsque vous utilisez Vim:
http://www.lagmonster.org/docs/vi.html

Ramy
la source
1
C'était le premier résultat sur google et c'était ce que je cherchais, merci
kgwong
ce mouvement soit ajouté à d'autres commandes également, comme: passer de la position actuelle à la 2ème apparition du caractère "e" - c2te :)
Vũ Tô
8

Je ne sais pas si vous voulez dire le nième caractère ou la nième occurrence d'un caractère; la seconde a été répondue donc je vais répondre à la première.

^vous amènera au début de la ligne en excluant les espaces (donc à la première colonne non blanche) et |(tuyau) ou 0(zéro) vous amènera au premier caractère. Ensuite l(L minuscule) vous amènera vers la droite; et vous 7lamènera sept caractères vers la droite. Donc, tous ensemble, pour aller au (n + 1) ème caractère sur la ligne, pour n = 7 07l,.

Chris Morgan
la source
Je vois que vous avez édité la question maintenant; lau lieu de la flèche droite, c'est à peu près le meilleur que vous obtiendrez. (connaissez-vous la navigation hjkl?)
Chris Morgan
Je sais que le vrai vimmer ne devrait pas utiliser de flèches, mais j'utilise d'autres applications qui ne prennent pas en charge la liaison de touches de bas niveau et le seul moyen de naviguer est les flèches, donc pour faciliter le basculement entre elles, j'utilise des flèches
Nutel
@Vetal: Je suis parfois frustré lorsque le défilement ne fonctionne tout simplement pas dans d'autres applications ... hjkl est beaucoup plus agréable que les flèches.
Chris Morgan
Comme le souligne la réponse d'Herbert Sitz, |ne va qu'au premier caractère parce que la valeur par [count]défaut est 1 - il va en fait au [count]ème caractère de la ligne, 8|c'est comme 07lsi ce n'était qu'un seul mouvement au lieu de deux.
hobbs
Je pense que je devrais faire attention à ce que font les personnages. J'aurais dû penser qu'il était improbable qu'il y ait deux façons de faire la même chose.
Chris Morgan