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> /gDenne 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/gSø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/gFor eksempel for at erstatte forekomsten af Ubuntu med Debian i ovenstående eksempeltekst vil følgende kommando uden % -symbolet blive brugt:
: s/Ubuntu/Debian/gSø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> /gcOvenstå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> /giveFor eksempel for at søge efter udtrykket Ubuntu uanset dets sag (UBUNTU, Ubuntu, ubuntu, uBuntu), vil følgende kommando blive brugt:
: s/ubuntu/debian/giveSø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> /gFor 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/gFor 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 xTilsvarende 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/gKONKLUSION
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.