logo

Mastering Search and Replace i Vi Editor

Vi Editor, en kraftfull textredigerare känd för sin effektivitet och mångsidighet, är ett häftverktyg för Unix/Linux-användare. Att behärska dess sök- och ersättfunktioner kan avsevärt förbättra produktiviteten och effektivisera textredigeringsuppgifter. I den här omfattande guiden kommer vi att fördjupa oss i olika tekniker och strategier för att effektivt söka efter och ersätta text i Vi Editor, vilket ger användarna möjlighet att utnyttja dess fulla potential.

Innehållsförteckning



Förstå VI Editor

Innan du går in i sök- och ersättningsoperationer är det viktigt att förstå grunderna i Vi Editor . Vi Editor utvecklades av Bill Joy 1976 och erbjuder två primära lägen: infogningsläge för att infoga text och kommandoläge för att utföra kommandon. Bekantskap med dessa lägen är avgörande för effektiv navigering och redigering inom Vi.

Det finns två lägen i vi-redigeraren:

  • infogningsläge
  • kommandoläge

Söker i vi editor

Följ stegen nedan för att söka efter ett ord i vi-redigeraren:



Steg 1: Tryck Esc om du är i infogningsläge

Steg 2: Tryck /

Steg 3: Skriv ordet eller mönstret du vill söka efter



Steg 4: Tryck Stiga på till varandra

Steg 5: Tryck ' n’ för att hitta nästa förekomst av ord/mönster och ' N’ för att gå till tidigare förekomst

Exempel: / är

Skärmdump-från-2023-09-27-19-16-27

I föregående kommando märker du att det söker mönstret i ett ord också som om jag söker efter ' är' då inkluderar det föregående kommandot också ' distribution' eftersom den innehåller ' är ' i den men om du vill söka igenom hela ordet följ stegen nedan:

Steg 1: Tryck Esc om du är i infogningsläge

Steg 2: Tryck /

linux-kommandon skapa mapp

Steg 3: Typ < för att markera början av ordet

Steg 4: Skriv ordet du vill söka efter

Steg 5: Skriv > för att markera slutet på ordet

Steg 6: Tryck Stiga på att leta efter ordet

Exempel: /

Skärmdump-från-2023-09-27-19-29-02

Ersätter i vi editor

För att hitta och ersätta ord i vi editor använder vi :substitut eller :s kommandosyntaxen för kommandot är som följer:

:[range]s/{pattern}/{string}/[flags] [count]>

Kommandot söker efter mönstret i [intervall]-linjer och ersätter [mönster] med [sträng]. Om [intervall] inte nämns kommer kommandot att ersätta orden på den aktuella raden med endast [sträng].

Exempel – :s/var/var

Skärmdump-från-2023-09-27-19-52-13

Du har märkt att det föregående kommandot bara ersätter en förekomst av [ordet] om du vill ersätta alla förekomster av ordet add g flagga i kommandot,

Exempel – :s/var/var/g

För att ersätta alla förekomster i filen med hjälp av Vi Editor

För att ersätta alla förekomster i filen kommer vi att använda jokertecken ' %' , lägg bara till tecknet '%' före kommandot för att använda det,

Exempel – :%s/var/var/g

Skärmdump-från-2023-09-27-20-00-12

typer av for loop

Ersätt ordet inom det givna intervallet i Vi Editor

I syntaxen för :s kommando som beskrivs tidigare i den här artikeln har vi sett hur man lägger till intervall i kommandot för att ersätta ord endast i ett givet intervall

:[range]s/[word]/[string]/[flag]>

Exempel – :3,10s/var/var/g i detta kommando kommer redigeraren att ersätta ordet 'var' med 'var' på raderna från 3 till 10 inklusive ytterligheterna.

Du kan också lägga till jokertecken i kommandon som nämns nedan:

  • % (Procentandel): Matchar alla rader i filen
  • . (Punkt): Avser den aktuella raden
  • $ (Dollar): Betecknar slutet av filen

Exempel:

  • :.,$s/var/var/g – Ersätter alla förekomster av ordet 'var' med 'var' från aktuell rad till slutet av filen
  • :1,.s/var/var/g – Ersätter alla förekomster av ordet 'var' med 'var' från början av filen till aktuell rad

Exempel:

I nedanstående skärmdump kommandot :.,$s/var/var/g kommer att ersätta alla förekomster av ordet 'var' med 'var' från den aktuella raden till slutet av filen.

hur man kör ett skript på linux

Skärmdump-från-2023-09-27-20-06-45

Ignorera skiftlägeskänslighet i Vi Editor

För att ignorera skiftlägeskänsligheten för mönstret/ordet använd 'i'-flaggan, du kan använda flaggan med något av kommandona som beskrivs ovan.

Exempel – :1,.s/Was/were/gi

Skärmdump-från-2023-09-27-20-17-09

Hur man söker och ersätter i Vi Editor – Vanliga frågor

Hur söker jag efter ett specifikt ord i Vi Editor?

För att söka efter ett specifikt ord i Vi Editor kan du använda sökkommandot. I Vi aktiveras sökläget genom att trycka på ` /`> , följt av ordet du vill söka efter och tryck sedan på ` Enter`> . Vi kommer att markera den första förekomsten av ordet, och du kan navigera genom flera förekomster med ` n`> för nästa händelse eller ` N`> för den föregående.

/word_to_search>

Kan jag ersätta flera instanser av ett ord samtidigt i Vi Editor?

Ja, du kan ersätta flera instanser av ett ord samtidigt i Vi Editor med hjälp av substitut-kommandot. I kommandoläge, skriv ` :%s/old_word/new_word/g`> och tryck på ` Enter`> . Detta kommando kommer att ersätta alla förekomster av ` old_word`> med ` new_word`> genom hela filen.

:%s/old_word/new_word/g>

Vilka är skillnaderna mellan sök- och ersättningslägen i Vi Editor?

I Vi Editor används sökläget för att hitta förekomster av ett specifikt mönster i texten, medan ersättningsläget används för att ersätta förekomster av ett mönster med en annan sträng. Sökläget aktiveras genom att trycka på ` /`> , och ersätt läget aktiveras genom att använda ersättningskommandot ` :%s/old_pattern/new_string/g`> .

För sökläge:

/pattern_to_search>

För utbytesläge:

:%s/old_pattern/new_string/g>

Hur kan jag utföra en skiftlägeskänslig sökning eller ersätta i Vi Editor?

För att utföra en skiftlägeskänslig sökning i Vi Editor, använd ` /`> kommando följt av ` c`> före sökmönstret.

Till exempel : För att söka efter ` word`> på ett skiftlägeskänsligt sätt skulle du skriva ` //c`> och tryck på ` Enter`> . För skiftlägeskänslig ersättning, använd kommandot substitut med ` g`> flagga: ` :%s/old_word/new_word/g`> .

För skiftlägeskänslig sökning:

//c>

För skiftlägeskänslig byt ut:

:%s/old_word/new_word/g>

Finns det något sätt att ångra en sökning eller ersättningsåtgärd i Vi Editor?

Ja, du kan ångra en sökning eller ersättningsåtgärd i Vi Editor med hjälp av ` u`> kommando i kommandoläge. Efter att ha utfört en sökning eller ersättningsoperation, tryck bara på ` u`> , och Vi Editor kommer att ångra den senaste ändringen som gjordes i filen och återställa den till dess tidigare tillstånd.

u>

Slutsats

I den här artikeln diskuterade vi hur man hittar och ändrar text i Vi Editor som är ett populärt verktyg i Linux . Vi började med att förstå vad Linux och Vi Editor är. Sedan utforskade vi hur man söker efter ord eller fraser i Vi Editor och ersätter dem med nya. Vi tittade också på några användbara knep som att söka efter hela ord och göra skiftlägeskänsliga ändringar. Dessutom täckte vi vanliga frågor som hur man ångrar ändringar. Genom att följa dessa tips kan du bli mer effektiv på att redigera text i Vi Editor.