vim
Hitta och ersätta
Sök…
Ersätt kommando
Detta kommando:
:s/foo/bar/g
ersätter varje förekomst av foo
med bar
på den aktuella linjen.
fool around with a foodie
blir
barl around with a bardie
Om du lämnar den sista /g
ersätter den bara den första förekomsten på linjen. Till exempel,
:s/foo/bar
På den föregående raden skulle bli
barl around with a foodie
Detta kommando:
:5,10s/foo/bar/g
utför samma substitution i raderna 5 till 10.
Detta kommando
:5,$s/foo/bar/g
utför samma substitution från rad 5 till slutet av filen.
Detta kommando:
:%s/foo/bar/g
utför samma substitution på hela bufferten.
Om du är i visuellt läge och träffar kolon kommer symbolen '<,'>
att visas. Du kan sedan göra det här
:'<,'>s/foo/bar/g
och att ersättningen sker inom ditt visuella lägesval.
Detta kommando:
:%s/foo/bar/gc
motsvarar kommandot ovan men ber om bekräftelse vid varje händelse tack vare flaggan /c
(för "bekräftelse").
Se :help :s
och :help :s_flags
.
Se även detta avsnitt om kommandorader .
Byt ut med eller utan vanliga uttryck
Detta ersättningskommando kan använda Regular Expressions och kommer att matcha varje förekomst av foo
följt av vilket som helst (ett) tecken sedan perioden .
i Regular Expressions matchar alla tecken, följaktligen kommer följande kommando att matcha alla förekomster av foo
följt av alla tecken i den aktuella raden.
:s/foo./bar/g
1 fooing fooes fool foobar foosup
kommer att bli
1 barng bars bar barar barup
Om du vill matcha det bokstavliga .
period kan du undvika det i sökfältet med en backslash \
.
:s/foo\./bar/g
1 fooing fooes foo.l foo.bar foosup
kommer att bli
1 fooing fooes barl barbar foosup
Eller inaktivera alla matchande mönster genom att följa s
kommandot med no
.
:sno/foo./bar/g
1 fooing fooes foo.l foo.bar foosup
kommer att ge upp ett fel
E486: Pattern not found