programmera.net -> vi -> normal för utskrift | info@programmera.net |
Search and Replace
1. Ersätta strängar i Vi 2. Generella syntaxen för ersättning |
1. Ersätta strängar i Vi
I vi kan man ersätta text på ett sätt som påminner om Linuxkommandot
sed . Tabellen nedan ger exempel på hur ersättningar kan gå till:
Ersätt Beskrivning :s/foo/some text/ Sök efter första förekosten av foo på denna rad och ersätt den med some text. :0,$ s/foo/some text/g Sök från filens första rad till den sista och ersätt foo med some text överallt där den påträffas. :% s/foo/some text/g Snabbare skrivsätt för raden ovan. :.,$ s/foo/some text/ Sök från denna rad ner till filens sista rad efter foo och ersätt första förekomsten av foo på varje rad med some text där den påträffas.
2. Generella syntaxen för ersättning
Det generella uttrycket för substitution är:
:[range] s/söksträng/ersättningssträng/[&][c][e][g][i][I][p][r] [count]
Både range och count kan utelämnas, men då kommer ersättningen att bara ske på den raden där markören står. Vill du att hela filen ska genomsökas måste range vara 0,$. Nedan beskrivs de olika flaggorna:
Flaggor Betydelse Beskrivning & add Behåll flaggorna från föregående substitution. c confirm Bekräfta varje ersättning. y=ersätt, n=ersätt ej, ESC=avbryt. e no error Om ingen sträng hittades, visa inget felmeddelande. g global Innebär att vi vill ersätta alla förekomster av text1 på raden. Om g utelämnas ersätts bara första förekosten. i ignore case Struna i STORA och små bokstäver söksträngen. I don't ignore case Bry dig om STORA och små bokstäver i söksträngen. p print Skriv ut senaste substitution.