Vim søg og udskift

Vim Search Replace



Vim er en avanceret og populær tekstredigerer, der leveres forudinstalleret i de fleste Linux -distributioner. Det er en kommandolinjebaseret teksteditor, der for det meste bruges i ikke-GUI-baserede operativsystemer. Det er meget konfigurerbart og har mange funktioner. Et vigtigt punkt vedrørende Vim er, at det er stærkt optimeret til gentagelse.

I denne artikel vil vi forklare en af ​​dens mest nyttige funktioner, der er søgning og udskiftning. Med en håndfuld konfiguration kan du søge efter alt, hvad du vil, med den flammende hastighed og med finere granularitet.







Metode #1 Find og erstat en forekomst ad gangen (Brug kommandoen skråstreg og prik)

Den enkleste måde at søge og erstatte et ord i Vim er ved at bruge kommandoen skråstreg og prik. Slash (/) kan bruges til at søge efter et ord, mens prikken (.) Kan bruges til at erstatte det ord.



Følg nedenstående enkle trin for at søge og erstatte ethvert ord i Vim -editor:



  • Åbn filen i Vim
  • Tryk på skråstreg ( /) sammen med søgeudtrykket som / search_term, og tryk på Enter. Det markerer det valgte ord.
  • Tryk derefter på tastetrykket cgn for at erstatte det markerede ord og indtaste erstatningsterm
  • Gå tilbage til normal tilstand. Tryk derefter på n for at gå til den næste forekomst af søgeudtrykket.
  • Tryk derefter på prikken (.), Hvis du vil erstatte den næste forekomst med den samme erstatningsterm, ellers skal du trykke på n -tasten igen for at gå til den næste forekomst.

Det er den hurtigste og bedste metode til grundlæggende søgning og erstatter funktioner, da den kun indebærer få tastetryk og mindre afbrydelse af dit nuværende arbejde. Men for at søge efter et ord, der forekommer for mange gange, bliver det en gentagen og tidskrævende opgave.





Med Vim er der en anden bedre måde at undgå denne gentagne opgave, der bruger erstatningskommandoen.

Metode #2 Find og erstat ved hjælp af kommandoen Substitute

Udskiftningskommandoen kan bruges til at udføre grundlæggende til avanceret søgning og erstatte funktioner med en enkelt kommando. Syntaksen for denne kommando er:



$: s/<søgeterm> /<erstat_term> /mulighed

Bemærk, at du skal indtaste denne kommando i normal tilstand.

Hvor

  • S: står for substitut
  • search_term: det ord, du vil søge og erstatte
  • erstat_term: det ord, du vil erstatte det med
  • Mulighed: c (til bekræftelse), g (udskift alle forekomster i en linje), i (for at ignorere sagen)

Søg og erstat

For at udføre grundlæggende søgning og udskiftning ved hjælp af kommandoen substitute skal du bruge følgende syntaks:

:%s/<søgeterm> /<erstat_term> /g

Denne kommando erstatter alle forekomster af search_term med erstatter_term.

For eksempel er dette vores eksempeltekst:

Ubuntu er et af de mest anvendte Linux -operativsystemer. Ubuntu indeholder tusindvis af nyttige programmer. Med kommandolinjen i Ubuntu kan du udføre næsten enhver form for opgave.

For at erstatte hver forekomst af Ubuntu med Debian i følgende tekst, vil følgende kommando blive brugt:

:%s/Ubuntu/Debian/g

Søg og erstat i en enkelt linje

Hvis du kun vil søge og erstatte forekomsten af ​​et ord på en enkelt linje i stedet for hele filen, skal du bruge følgende syntaks:

: s/<søgeterm> /erstat_term/g

For eksempel for at erstatte forekomsten af ​​Ubuntu med Debian i ovenstående eksempeltekst vil følgende kommando uden % -symbolet blive brugt:

: s/Ubuntu/Debian/g

Søg og erstat med bekræftelse

Hvis du ønsker at blive bedt om bekræftelse, inden du erstatter søgeudtrykket, skal du bruge c i slutningen af ​​søgekommandoen som følger:

: s/<søgeterm> /<erstat_term> /gc

Ovenstående kommando vil bede om bekræftelse før hver udskiftning (Indtast y for ja, mens n for nej).

Ufølsom sag og søg

Når du udfører søgning og udskiftning i Vim, er det som standard store og små bogstaver. Du kan foretage en ufølsom søgning efter store og små bogstaver ved at tilføje i i slutningen af ​​kommandoen som følger:

: s/<søgeterm> /<erstat_term> /give

For eksempel for at søge efter udtrykket Ubuntu uanset dets sag (UBUNTU, Ubuntu, ubuntu, uBuntu), vil følgende kommando blive brugt:

: s/ubuntu/debian/give

Søg og erstat hele ordet

Som standard søger erstatningskommandoen efter en match, uanset om den er delvis eller fuld. For at matche den nøjagtige søgeterm og derefter erstatte den med erstatningsterminen skal du vedlægge søgeudtrykket _ inden for.

For eksempel vil du i nogle dokumenter søge og erstatte det nøjagtige ord, du har af mig. I så fald vil følgende kommando blive brugt:

: s/<du> /jeg/

Det finder ordet dig og erstatter det med mig. Det vil dog ikke erstatte ordene som dit.

Søg og erstat ord blandt bestemte linjer

For at søge efter et ord blandt de bestemte linjer i stedet for kun en linje eller hele filen, kan følgende syntaks bruges:

:<start_linje>,<slutlinje>s/<søgeterm> /<erstat_term> /g

For eksempel, for at søge og erstatte forekomsten af ​​Ubuntu med Debian fra linjer fra 3 til 8 i en fil, ville kommandoen være:

:1, 10s/ubuntu/debian/g

For at søge og erstatte forekomsten af ​​et ord fra den aktuelle linje til det næste x antal linjer, vil følgende syntaks blive brugt:

: s/søgeterm/erstat_term/g x

Tilsvarende for at søge og erstatte forekomsten af ​​et ord fra den aktuelle linje til den sidste linje: Følgende syntaks ville blive brugt:

:.,$ s/søgeterm/erstat_term/g

KONKLUSION

I denne artikel har vi lært de to kommandolinjemåder at søge og erstatte ethvert ord i en Vim-editor. Den første kommando, der brugte skråstreg og prik, er den enkleste og letteste metode, men det viser sig at være gentaget, når du søger og udskifter et ord, der forekommer for mange gange. Den anden kommando, der er substitutionskommando en gang, kan virke vanskelig og kompleks, men når du først begynder at øve den, vil du finde den yderst nyttig i flere scenarier.