vim répéter trouver le caractère suivant 'x'


123

Je navigue souvent dans vim f xpour trouver la prochaine occurrence du caractère «x», mais je néglige qu'il y a un mot (ou plusieurs mots) contenant «x» entre le mot que je souhaite modifier et la position du curseur de début.

Donc je dois f xencore une fois, ce qui est un peu ennuyeux car il y a ce joli bouton ., qui répète la dernière commande. Alors, y a-t-il un moyen de répéter f xavec une seule pression sur un bouton.

Réponses:


239

La commande pour répéter un fest ;(point-virgule); ,(virgule) inverse le sens de la recherche.


2
Y a-t-il une raison utile que vous ne pouvez pas utiliser .pour cela? C'était la commande que je m'attendais à fonctionner.
Daniel Kaplan

4
@DanielKaplan Il est logique de mapper le novement, c'est-à-dire la recherche d'un caractère ( fet ;), sur un caractère différent de la répétition d'un edit ( .). Cela vous permet d'effectuer des recherches rapides et de modifier les résultats de la recherche. Si vous voulez en remplacer certains +dans une ligne par, *vous pouvez faire quelque chose comme ceci (sauter certains caractères et en remplacer d'autres):f+r*;.;;.;.;;;.
Marcus Krahl

2
Existe-t-il un moyen de remapper ces commandes? Beaucoup de gens utilisent ,pour le leader.
rk1

@ rk1 Changez le leader avec: let mapleader = "" (si vous voulez un espace)

@DrEval Bien sûr, mais je veux garder mon leader ,et avoir toujours la recherche inversée. Quoi qu'il en soit, maintenant je suis un utilisateur heureux de vim-easymotion.
rk1 le

18

Le temps a passé depuis que j'ai posé cette question - de nos jours, j'utilise vim-easymotion , ce qui rend le besoin de ;presque inutile.

Ce plugin permet de sauter directement à une certaine lettre - le déclenchement du plugin rend toutes les lettres grises à l'exception de tous les 'x' à l'écran - et celles-ci sont remplacées par des lettres rouges sur lesquelles vous pouvez appuyer pour y accéder directement.

easyymotion en cours d'utilisation

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.