9
votes

Obtenez la dernière recherche ou recherchez et remplacez la chaîne dans Vim?

Comment puis-je ramener la dernière chaîne que j'ai utilisée pour une recherche ou une recherche et remplacer?

Par exemple, supposons que j'entre :% s / one_text / Quelque_other_text / gc et vim me donne le E486: motifs non trouvés: Quelqu'un_text Message d'erreur. Je me rends compte que je voulais réellement écrire quelque_magic_text au lieu de quelque_text . À ce stade, comment puis-je récupérer ma chaîne d'origine dans la ligne de commande inférieure (ou quoi que ce soit appelée) afin que je puisse le changer et faire une deuxième recherche? Y a-t-il une petite commande nifty pour cela?

Dans ce bref exemple, il semble inutile, mais lorsque le texte que vous cherchez à remplacer est puissant et que vous avez juste tapé une lettre fausse, il est fantastiquement ennuyeux de tout retaper.

Et j'utilise Macvim si cela fait de la différence.


0 commentaires

5 Réponses :


4
votes

Découvrez ce vimvcast qui explique ce que vous voulez.


1 commentaires

Vous pouvez également simplement utiliser le registre / . E.g: :% s / / puis passez de là.



1
votes

Plus généralement, vous pouvez vous rappeler toute commande que vous avez saisie précédemment en entrant les premiers caractères, puis utilisez une arrow plusieurs fois pour naviguer dans l'historique.

Dans votre cas, vous pourriez taper:
:% s

voir : Historique de l'aide


0 commentaires

17
votes

du mode normal, appuyez sur q / pour naviguer dans votre historique de recherche!


0 commentaires

2
votes

Cette réponse pourrait être une bonne amélioration à ce que vous êtes après, après tout.

Utilisez la recherche avec la surbrillance, pour vérifier de manière interactive si la regex que vous êtes artisanal fonctionne définitivement, puis utilisez-la dans un remplacement de recherche.

  1. : SE est ( incsearch , mieux mettre SE est dans votre .vimrc)
  2. /
  3. Vérifiez avec n / n Si vous êtes satisfait des matchs
  4. : S% // / g

    Lorsque vous omettez le dans la recherche-remplacement dans 4. , la dernière recherche utilisée sera utilisée.

    Pour accéder à la liste des dernières commandes (Recherche-Remplacement) Utiliser q: ou comme déjà noté q / pour la liste des derniers termes de recherche.

    bonus:
    Lorsque vous utilisez : SE GD , S / / se comportera comme S / / / g .

    Accéder à juste la première correspondance de recherche dans chaque ligne peut toujours être effectuée avec l'ajout / g , donc essentiellement, les deux comportements sont simplement commutés.


0 commentaires

1
votes

/ puis up pour afficher la dernière requête de recherche.


0 commentaires