Använda VI att ersätta en sträng i flera filer
Någon gång kanske du vill byta ut förekomster av en sträng över flera filer.
Det finns ett enkelt sätt att göra det med hjälp av editorn vi.
Detta exempel illustrerar kraften i vi:
Anta att du har 100. Html-filer och du vill ersätta förekomsten av strängen '2007 'med '2008'.
Som sådan, kör du följande på din fråga:
VI *. html
Detta kommer att öppna alla filer som slutar med '. Html "i din nuvarande katalog. Då utfärda följande kommando:
: Argdo% s/2007/2008/g | WQ
Det är allt! Ovanstående kommando kommer slinga över varje fil och ersätter (%) i Word 2007 med ordet 2008 globalt (g) så det kommer att spara varje fil (w) och ut ur den (q).
Observera att strängen att hitta och strängen som ska användas för ersättning kan ersättas med reguljära uttryck. Till exempel refererar ett cirkumflex (^) till början av en linje hänvisar dollartecken ($) till dess slut, etc. Så om vi skulle byta ut alla rader som börjar med 'prov' och slutar med "test", en skulle kunna använda:
: Argdo% s / ^ prov .* testa $ / g | wc
där .* matchar något i mellan de två strängen.
Observera också att du kan göra sök och ersätt åtgärder utan hänsyn till fallet (dvs att en sökning på "ord" matchar "ord"). För den delen, helt enkelt ersätta "/ g 'med' / GI"

Det är cirkumflex, inte morot!
Måste ha varit att tänka på mat när du skriver det
Skål
Tack för detta tips, du räddade mig en massa arbete med det.
Thanx mycket, hjälpte det mig också.
Jag har en kommentar, för relativt litet antal ersättare, vilket ledde till att ersätta skulle också kunna vara användbart.
: Argdo% s / SEARCH_STRING / replace_string / GC | WQ
med ytterligare ett "c" för "bekräftelse"
Tack igen