Linux

Keresse meg és cserélje le a Vim / Vi fájlban

Keresse meg és cserélje le a Vim / Vi fájlban

Ez a cikk leírja, hogyan találhat és cserélhet le szöveget a Vim / Vi fájlban.

A Vim a legnépszerűbb parancssori szövegszerkesztő. A MacOS-ra és a legtöbb Linux disztribúcióra előre telepítve van. A Vim szövegének megkeresése és cseréje gyors és egyszerű.

Alapvető keresés és csere #

A Vim-ben megtalálhatja és kicserélheti a szöveget a :helyettes (: s) parancsot.

A parancsok Vimben történő futtatásához normál módban kell lennie, az alapértelmezett módban, amikor elindítja a szerkesztőt. Ha bármely más módból vissza szeretne térni normál módba, egyszerűen nyomja meg az 'Esc' gombot.

A helyettesítő parancs általános formája a következő:

: [tartomány] s / minta / string / [zászlók] [szám] 

A parancs megkeresi az egyes sorokat [hatótávolság] a minta, és lecseréli a húr. [számol] egy pozitív egész szám, amely megsokszorozza a parancsot.

Ha nem [hatótávolság] és [számol] megadva, csak az aktuális sorban található minta kerül kicserélésre. Az aktuális vonal az a vonal, ahová a kurzor kerül.

Például a „foo” karakterlánc első előfordulásának megkereséséhez az aktuális sorban, és a „bar” kifejezéssel való helyettesítéséhez használja a következőket:

: s / foo / bar / 

Az aktuális sorban a keresési minta összes előfordulásának helyettesítéséhez adja hozzá a g zászló:

: s / foo / bar / g 

Ha a teljes fájlban szeretne keresni és lecserélni a mintát, használja a százalékos karaktert % mint tartomány. Ez a karakter a fájl első és utolsó sorának tartományát jelzi:

:% s / foo / bar / g 

Ha a húr rész elhagyásra kerül, üres karaktersorozatnak számít, és az egyező mintát törli. A következő parancs törli a 'foo' karakterlánc összes példányát az aktuális sorból:

: s / foo // g 

A perjel karakter helyett (/), bármely más, nem alfanumerikus egybájtos karaktert használhat, csak elválasztóként. Ez az opció akkor hasznos, ha a '/' karakter szerepel a keresési mintában vagy a helyettesítő karakterláncban.

: s | foo | bár | 

Minden helyettesítés megerősítéséhez használja a c zászló:

: s / foo / bar / gc 
cserélje sávra (y / n / a / q / l / ^ E / ^ Y)? 

nyomja meg y a meccs helyettesítésére vagy l hogy pótolja a mérkőzést és abbahagyja. nyomja meg n hogy kihagyja a mérkőzést és q vagy Kilépés hogy kilépjen a helyettesítésből. A a opció helyettesíti a mérkőzést és a meccs összes fennmaradó előfordulását. A képernyő lefelé görgetéséhez használja a CTRL + Y, és felfelé görgetéshez használja CTRL + E.

A reguláris kifejezéseket keresési mintaként is használhatja. Az ordító parancs a „foo” kezdetű összes sort a „Vim a legjobb” kifejezésre cseréli:

:% s / ^ foo.* / Vim a legjobb / gc 

A ^ (caret) szimbólum egyezik a sor elejével és .* tetszőleges számú karakterrel egyezik.

Kis- és nagybetűk érzékenysége

Alapértelmezés szerint a keresési művelet megkülönbözteti a kis- és nagybetűket; a „FOO” keresés nem fog megfelelni a „Foo” kifejezésnek.

A keresési minta nagybetűinek figyelmen kívül hagyásához használja a én zászló:

: s / Foo / bar / gi 

Az eset figyelmen kívül hagyásának másik módja a melléklet \ c a keresési minta után. Például, / Linux \ c figyelmen kívül hagyja az esetkeresést.

Ha megváltoztatta az alapértelmezett kis- és nagybetűk beállítását, és nagybetű érzékeny keresést szeretne végrehajtani, használja a én zászló:

: s / foo / bar / gi 

Nagybetűs \ C miután a minta az esetegyezés keresését is kényszeríti.

Keresési tartomány #

Ha nincs megadva tartomány, akkor a helyettesítő parancs csak az aktuális sorban működik.

A tartomány lehet egy vonal vagy két vonal közötti tartomány. A vonalspecifikátorok elválasztva a , vagy ; karakterek. A tartomány meghatározható az abszolút sorszám vagy speciális szimbólumok segítségével.

Például, ha a „foo” minden előfordulását „bar” -ra cseréli az összes sorban, a 3. sortól a 10. sorig kezdve, használhatja:

: 3,10s / foo / bar / g 

A tartomány magában foglalja, ami azt jelenti, hogy az első és az utolsó sor szerepel a tartományban.

A pont . karakter jelzi az aktuális sort és $ - a dollárjel az utolsó sort. A „foo” helyettesítése minden sorban, az aktuális sortól az utolsóig:

:.,$ s / foo / bár / 

A sormeghatározó a „+” vagy „-” szimbólummal is beállítható, amelyet egy szám követ, amelyet az előző sor számából adnak vagy vonnak le. Ha a szimbólum utáni számot kihagyja, akkor az alapértelmezett értéke 1.

Például, ha minden „foo” -ot „bar” -ra cserél az aktuális és a következő négy sortól kezdve, írja be:

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

A teljes szó helyettesítése #

A helyettesítő parancs stringként, és nem egész szóként keresi a mintát. Ha például a „gnu” kifejezésre keresett, akkor a keresés olyan találatokat talál, ahol a „gnu” be van ágyazva nagyobb szavakba, például „cygnus” vagy „magnum”.

Egy egész szó kereséséhez írja be \< a szó elejének megjelöléséhez írja be a keresési mintát, írja be \> a szó végének megjelölésére:

Például az Ön által használt „foo” szó keresésére \:

: s / \/rúd/ 

Helyettesítési előzmények #

A Vim nyomon követi az aktuális munkamenet során futtatott összes parancsot. A korábbi helyettesítő parancsok előzményeinek tallózásához írja be az Enter billentyűt : s és használja a fel / le nyílgombokat egy korábbi helyettesítő művelet megkereséséhez. A parancs futtatásához egyszerűen nyomja meg a gombot Belép. A parancsot a művelet végrehajtása előtt is szerkesztheti.

Példák #

Megjegyzés sorok (add # a vonal előtt) 5-től 20-ig:

: 5,20s / ^ / # / 

Az 5 és 20 közötti sorok megjegyzés nélküli visszavonása, az előző változtatások visszaállítása:

: 5,20s / ^ # // 

Cserélje le az „alma”, „narancs” és a „mangó” összes példányát „gyümölcs” szóra:

:% s / alma \ | narancs \ | mangó / gyümölcs / g 

Távolítsa el a záró szóközt az egyes sorok végén:

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

Következtetés

A keresés és a cseréje a Vim hatékony funkciója, amely lehetővé teszi a szöveg gyors módosítását.

Ha kérdése van, nyugodtan írjon megjegyzést.

Hasznos eszközök Linux játékosok számára
Ha szeretsz Linuxon játszani, akkor valószínű, hogy olyan alkalmazásokat és segédprogramokat használtál, mint a Wine, a Lutris és az OBS Studio a játé...
HD Remastered Games for Linux, amelyeknek soha nem volt korábban Linux kiadásuk
Számos játékfejlesztő és kiadó a régi játékok HD remasterjével áll elő a franchise élettartamának meghosszabbítása érdekében. Kérjük, hogy a rajongók ...
Az AutoKey használata a Linux játékok automatizálásához
Az AutoKey egy asztali automatizáló segédprogram Linux és X11 rendszerekhez, Python 3, GTK és Qt programozással. A parancsfájlok és a MACRO funkcióina...