web-dev-qa-db-fra.com

Comment faire une recherche VIM Recherche inverse de toutes les lignes sans texte

avec Grep, je peux faire un grep -v "ma recherche" pour obtenir toutes les lignes avec une "ma recherche"

avec SED, je peux sed '/ Baz /! S/FOO/BAR/G' pour trouver Remplacer le texte sur les lignes sans baz

Y a-t-il un moyen de faire la même chose Vim. Et est-ce possible mais avec la syntaxe "S ///". En utilisant simplement la syntaxe de recherche "/".

18
nelaaro
:g/pattern/

correspond à toutes les lignes ont été trouvés.

:v/pattern/

fait le contraire. Voir :h global pour plus de détails.

Vous pouvez l'utiliser comme ceci:

:v/pattern/norm Ipattern not found - <CR>

préparer le "modèle non trouvé -" à toutes les lignes qui n'ont pas de "modèle" ou

:v/pattern/s/nrettap/pattern

remplacer "NRETTAP" par "modèle" sur chaque ligne qui n'a pas de "modèle".

Exemples artificiels, oui.

29
romainl

Pour rechercher les lignes non contenant foo, par exemple, faire:

/^\(\(.*foo.*\)\@!.\)*$

Source: http://vim.wikia.com/wiki/search_for_lines_not_contining_pattern_and_other_helpful_searches

6
Karolos