Linux

Pronađite i zamijenite u Vim / Vi

Pronađite i zamijenite u Vim / Vi

Ovaj članak opisuje kako pronaći i zamijeniti tekst u Vim / Vi.

Vim je najpopularniji uređivač teksta naredbenog retka. Dolazi predinstaliran na macOS i većinu Linux distribucija. Pronalaženje i zamjena teksta u Vimu je brzo i jednostavno.

Osnovno pronalaženje i zamjena #

U Vimu možete pronaći i zamijeniti tekst pomoću :zamjena (: s) naredba.

Da biste pokrenuli naredbe u Vimu, morate biti u normalnom načinu, zadanom načinu rada prilikom pokretanja uređivača. Da biste se vratili u uobičajeni način rada iz bilo kojeg drugog načina, samo pritisnite tipku 'Esc'.

Općeniti oblik zamjenske naredbe je kako slijedi:

: [raspon] s / uzorak / niz / [zastavice] [broj] 

Naredba pretražuje svaki redak u [raspon] za uzorak, i zamjenjuje ga s niz. [računati] je pozitivan cijeli broj koji množi naredbu.

Ako ne [raspon] i [računati] dati su, zamjenjuje se samo obrazac pronađen u trenutnom retku. Trenutni redak je redak na kojem se nalazi pokazivač.

Na primjer, da biste pretražili prvo pojavljivanje niza 'foo' u trenutnom retku i zamijenili ga 'bar', koristili biste:

: s / foo / bar / 

Da biste zamijenili sve pojave uzorka pretraživanja u trenutnom retku, dodajte g zastava:

: s / foo / bar / g 

Ako želite pretražiti i zamijeniti obrazac u cijeloj datoteci, upotrijebite znak postotka % kao raspon. Ovaj znak označava raspon od prvog do zadnjeg retka datoteke:

:% s / foo / bar / g 

Ako je niz dio je izostavljen, smatra se praznim nizom, a podudarni obrazac se briše. Sljedeća naredba briše sve instance niza 'foo' u trenutnom retku:

: s / foo // g 

Umjesto znaka kosa crta (/), možete koristiti bilo koji drugi ne-alfanumerički jednobajtni znak, osim kao graničnik. Ova je opcija korisna kada u uzorku pretraživanja ili zamjenskom nizu imate znak '/'.

: s | foo | bar | 

Da biste potvrdili svaku zamjenu, koristite c zastava:

: s / foo / bar / gc 
zamijeniti crticom (y / n / a / q / l / ^ E / ^ Y)? 

Pritisnite g zamijeniti šibicu ili l zamijeniti utakmicu i dati otkaz. Pritisnite n preskočiti utakmicu i q ili Esc napustiti zamjenu. The a opcija zamjenjuje utakmicu i sve preostale događaje utakmice. Za pomicanje zaslona prema dolje koristite CTRL + Y, a za pomicanje prema gore upotrijebite CTRL + E.

Kao obrazac pretraživanja možete koristiti i regularne izraze. Naredba u nastavku zamjenjuje sve retke koji počinju s 'foo' s 'Vim je najbolji':

:% s / ^ foo.* / Vim je najbolji / gc 

The ^ (znak za karetu) odgovara početku retka i .* odgovara bilo kojem broju bilo kojih znakova.

Osjetljivost na velika i mala slova #

Prema zadanim postavkama, operacija pretraživanja razlikuje velika i mala slova; traženje "FOO" neće odgovarati "Foo".

Da biste zanemarili mala slova za obrazac pretraživanja, upotrijebite ja zastava:

: s / Foo / bar / gi 

Drugi način prisiljavanja na ignoriranje predmeta je dodavanje \ c nakon obrasca pretraživanja. Na primjer, / Linux \ c vrši ignoriranje pretraživanja predmeta.

Ako ste promijenili zadanu postavku velikih i malih slova i želite pretražiti velika i mala slova, upotrijebite Ja zastava:

: s / foo / bar / gi 

Velika slova \ C nakon što obrazac također forsira pretragu podudaranja velikih i malih slova.

Raspon pretraživanja #

Kada nije naveden raspon, zamjenska naredba djeluje samo u trenutnom retku.

Raspon može biti jedan redak ili raspon između dva retka. Specifikatori linija odvojeni su znakom , ili ; likova. Raspon se može odrediti pomoću apsolutnog broja retka ili posebnih simbola.

Na primjer, za zamjenu svih pojava 'foo' u 'bar' u svim redovima koji počinju od retka 3 do retka 10, koristili biste:

: 3,10s / foo / bar / g 

Raspon je inkluzivan, što znači da su prvi i zadnji redak uključeni u raspon.

Točka . znak označava trenutnu liniju i $ - znak dolara posljednji redak. Da biste zamijenili 'foo' u svim redovima počevši od trenutnog retka do zadnjeg:

:.,$ s / foo / bar / 

Specifikator retka također se može postaviti pomoću simbola '+' ili '-', nakon čega slijedi broj koji se dodaje ili oduzima od prethodnog broja retka. Ako je broj nakon simbola izostavljen, zadano je na 1.

Na primjer, da biste zamijenili svaki "foo" s "bar" počevši od trenutnog retka i četiri sljedeća retka, upišite:

:.,+4s / foo / bar / g 

Zamjena cijele riječi #

Naredba zamjene traži obrazac kao niz, a ne kao cijelu riječ. Ako ste, na primjer, tražili "gnu", pretraga pronalazi podudaranja gdje je "gnu" ugrađen u veće riječi, poput "cygnus" ili "magnum".

Da biste pretražili cijelu riječ, upišite \< da biste označili početak riječi, unesite obrazac pretraživanja, upišite \> za označavanje kraja riječi:

Na primjer, za pretraživanje riječi "foo" koju biste koristili \:

: s / \/bar/ 

Zamjenska povijest #

Vim prati sve naredbe koje izvršavate u trenutnoj sesiji. Da biste pregledali povijest prethodnih zamjenskih naredbi, unesite : s i pomoću tipki sa strelicama gore / dolje pronađite prethodnu zamjensku operaciju. Da biste pokrenuli naredbu, jednostavno pritisnite Unesi. Također možete urediti naredbu prije izvođenja operacije.

Primjeri #

Redci komentara (dodaj # prije crte) od 5 do 20:

: 5,20s / ^ / # / 

Komentirajte retke od 5 do 20, vratite prethodne promjene:

: 5,20s / ^ # // 

Zamijenite sve slučajeve "jabuka", "naranča" i "mango" s "voćem":

:% s / jabuka \ | naranča \ | mango / voće / g 

Uklonite prazni razmak na kraju svakog retka:

:% s / \ s \ + $ // e 

Zaključak #

Pretraživanje i zamjena moćna je značajka Vima koja vam omogućuje brzo mijenjanje teksta.

Slobodno ostavite komentar ako imate pitanja.

Kako pojačati FPS u Linuxu?
FPS je kratica Okviri u sekundi. Zadatak FPS-a je mjerenje broja sličica u reprodukcijama video zapisa ili igranim izvedbama. Jednostavnim riječima, b...
Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...
10 najboljih igara za igranje na Ubuntuu
Windows platforma bila je jedna od dominantnih platformi za igre zbog ogromnog postotka igara koje se danas razvijaju kako bi podržavale Windows. Može...