Question Comment puis-je effectuer une recherche de bloc avec Vim?


J'ai du texte dans Vim

  1. frappé Ctrl+V mettre VIm en mode bloc
  2. mettre en évidence le texte que je veux
  3. type : cela donne à cette invite :'<,'>
  4. J'ajoute à l'invite mon regex s/ /*/g. Cela me laisse avec :'<,'>s/ /*/g et le texte mis en évidence
  5. Je frappe entrer

Malheureusement, il fonctionne sur toute la ligne pour le bloc, pas seulement le bloc. Y a-t-il un moyen de faire une recherche de bloc et de remplacer?


8
2018-02-19 22:56


origine




Réponses:


Lorsque vous utilisez des commandes ex en mode bloc visuel, :, ils fonctionnent toujours sur toute la ligne. Il y a deux façons de contourner cela:

  1. le \%V l'atome ne correspondra qu'à l'intérieur de la zone visuelle. Essayer

    :'<,'>s/\%V /*/g
    

    Voir :help %V

  2. Il existe des versions visuelles spéciales de certaines commandes, live v_s ou v_r. Voir :help visual-operators

12
2018-02-19 23:35



Je n'arrive pas à comprendre comment faire fonctionner ça - Evan Carroll
l'atome \% V limitera un motif afin qu'il ne corresponde qu'à l'intérieur de la sélection visuelle. Essayer :'<,'>s/\%V /*/g - DaveParillo
Cette page a un bon aperçu de ce que vous essayez de faire. vim.wikia.com/wiki/Search_and_replace_in_a_visual_selection - DaveParillo