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.