154 votes

Que font les commandes f et t dans Vim ?

Qu'est-ce que f y t que font les commandes dans vim et comment fonctionnent-elles exactement ?

262voto

Michael Kristofik Points 16035

Votre premier arrêt pour ce genre de questions devrait être l'aide interne de vim, :h f y :h t . Cependant, dans ce cas, ces entrées sont un peu cryptiques sans exemple. Supposons que nous ayons cette ligne ( ^ = position du curseur) :

The quick brown fox jumps over the lazy dog.
^

Ces commandes permettent de trouver des caractères sur une ligne. Ainsi, fb placerait le curseur ici :

The quick brown fox jumps over the lazy dog.
          ^

t c'est comme f mais place le curseur sur le caractère précédent. Ainsi, tb vous donnerait :

The quick brown fox jumps over the lazy dog.
         ^

Vous pouvez vous souvenir de ces commandes comme f ind et t malade. Vous pouvez également faire précéder les commandes d'un nombre pour passer à la nième occurrence de ce caractère. Par exemple, 3fb se déplacerait vers le troisième b à droite du curseur. Ma phrase d'exemple n'ayant qu'un seul b, le curseur ne se déplacerait pas du tout.

141voto

LondonRob Points 2075

Juste pour ajouter à La réponse de Michael Kristofik aucune description de f o t est complet sans mentionner également ; .

De l'aide-mémoire de Vim :

; "Répétez le dernier f, t, F ou T [compte] fois."

Donc, pour continuer le thème de @MichaelKristofik :

The quick brown fox jumps over the lazy dog.
^

type fo pour aller au premier 'o' :

The quick brown fox jumps over the lazy dog.
            ^

et ensuite ; pour passer à la suivante :

The quick brown fox jumps over the lazy dog.
                 ^

65voto

Vaughn Cato Points 30511

Je trouve f y t très utile en combinaison avec d y c . Par exemple, ct: vous permettra de remplacer tout ce qui se trouve entre votre curseur et les deux points suivants, mais pas de supprimer les deux points. Vous pouvez vous en souvenir comme "changer en deux-points".

36voto

romainl Points 55506

fx saute vers le suivant x sur la ligne.

tx saute au caractère juste avant le suivant x sur la ligne.

Vous pouvez utiliser Fx y Tx pour atteindre le précédent x .

Vous pouvez utiliser 2fx pour passer au deuxième x sur la ligne.

Donc, fF y tT sont utiles lorsque vous voulez passer rapidement à la série de parenthèses suivante ( f( ) ou effacer tout ce qui se trouve entre le curseur et l'élément précédent, à l'exclusion de celui-ci. = ( dT= ) et ainsi de suite

Ver :h motion.txt . Vous allez en prendre plein la vue.

8voto

rranjik Points 518

Depuis que LondonRob a mentionné ; Je suppose qu'une description de la virgule , est en ordre. Elle est très utilisée en conjonction avec ces commandes (lorsque la recherche dépasse).

Après avoir effectué une recherche avec f , F , t o T on pourrait utiliser , pour répéter la recherche dans la direction opposée.

Disons que nous sommes au début de cette phrase, et que nous souhaitons modifier le mot elot a elit .

Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
^

Je sais que je dois remplacer un o donc je fais une fo (trouver o) immédiatement. Le curseur est bloqué à un moment o dans la ligne ! Hit ; pour répéter la recherche dans la même direction. Tapez tapez tapez... J'aurais dû le faire cinq fois, mais disons que je dépasse les bornes et que je tape... ; six fois à la place. Je finis ici :

Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
 ^ 
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
             ^ 
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
               ^ 
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
                            ^ 
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
                                                    ^ 
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
                                                            ^ 
Lorem ipsum dolor sit amet consectetur adipiscing elot sed do eiusmod tempor.
                                                                   ^

Maintenant, on pourrait simplement effectuer un , deux fois pour répéter cette recherche dans l'autre sens. Le curseur atteindra le o sur elot .

Lorem ipsum dolor sit amet, consectetur adipiscing elot, sed do eiusmod tempor.
                                                              ^        
Lorem ipsum dolor sit amet, consectetur adipiscing elot, sed do eiusmod tempor.
                                                     ^

ri pour terminer le remplacement.

Comme pour la plupart des commandes de mouvement, , prendre aussi le compte : [count], .

Du manuel :

Répétez le dernier f, t, F ou T dans la direction opposée [comptez] fois.

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