Ta članek opisuje, kako najti in zamenjati besedilo v Vim / Vi.
Vim je najbolj priljubljen urejevalnik besedil v ukazni vrstici. Prednameščen je v sistemih macOS in večini distribucij Linuxa. Iskanje in zamenjava besedila v Vimu je hitra in enostavna.
Osnovno iskanje in zamenjava #
V Vimu lahko poiščete in nadomestite besedilo s pomočjo : nadomestek
(: s
) ukaz.
Če želite zagnati ukaze v Vimu, morate biti ob zagonu urejevalnika v običajnem načinu, privzetem načinu. Če se želite vrniti v običajni način iz katerega koli drugega načina, preprosto pritisnite tipko 'Esc'.
Splošna oblika nadomestnega ukaza je naslednja:
: [obseg] s / vzorec / niz / [zastavice] [štetje]
Ukaz preišče vsako vrstico v [obseg]
za vzorec
, in ga nadomesti z vrvica
. [štetje]
je pozitivno celo število, ki pomnoži ukaz.
Če ne [obseg]
in [štetje]
so podani, zamenja se samo vzorec v trenutni vrstici. Trenutna vrstica je vrstica, kamor je postavljen kazalec.
Če želite na primer poiskati prvi pojav niza 'foo' v trenutni vrstici in ga nadomestiti z 'bar', uporabite:
: s / foo / bar /
Če želite zamenjati vse pojavitve iskalnega vzorca v trenutni vrstici, dodajte g
zastava:
: s / foo / bar / g
Če želite poiskati in zamenjati vzorec v celotni datoteki, uporabite znak za odstotek %
kot obseg. Ta znak označuje obseg od prve do zadnje vrstice datoteke:
:% s / foo / bar / g
Če je vrvica
del je izpuščen, šteje se za prazen niz in ujemajoči se vzorec se izbriše. Naslednji ukaz izbriše vse primerke niza 'foo' v trenutni vrstici:
: s / foo // g
Namesto poševnice (/
), lahko uporabite kateri koli drug ne-alfanumerični enobajtni znak, razen kot ločilo. Ta možnost je uporabna, če imate v vzorcu iskanja ali nadomestnem nizu znak '/'.
: s | foo | bar |
Za potrditev vsake zamenjave uporabite c
zastava:
: s / foo / bar / gc
zamenjaj z vrstico (y / n / a / q / l / ^ E / ^ Y)?
Pritisnite y
za zamenjavo tekme oz l
za zamenjavo tekme in izstop. Pritisnite n
da preskočite tekmo in q
ali Esc
prenehati z zamenjavo. The a
možnost nadomesti tekmo in vse preostale pojavitve tekme. Za pomikanje zaslona navzdol uporabite CTRL + Y
, in če se želite pomakniti navzgor, uporabite CTRL + E
.
Kot vzorec iskanja lahko uporabite tudi regularne izraze. Ukaz spodaj nadomešča vse vrstice, ki se začnejo z 'foo' z 'Vim je najboljši':
:% s / ^ foo.* / Vim je najboljši / gc
The ^
(kareta) se ujema z začetkom vrstice in .*
se ujema s poljubnim številom znakov.
Čutnost med velikimi in malimi črkami
Privzeto je postopek iskanja občutljiv na velike in male črke; iskanje "FOO" se ne bo ujemalo z "Foo".
Če želite prezreti črko za vzorec iskanja, uporabite jaz
zastava:
: s / Foo / bar / gi
Drug način, kako prisiliti ignoriranje primera, je dodati \ c
po vzorcu iskanja. Na primer, / Linux \ c
izvede ignoriranje iskanja po velikih črkah.
Če ste spremenili privzeto nastavitev velikih in malih črk in želite iskati z občutljivimi črkami, uporabite jaz
zastava:
: s / foo / bar / gi
Velike črke \ C
potem ko vzorec sili tudi iskanje ujemanja po velikih črkah.
Številka iskanja
Če ni določen noben obseg, nadomestni ukaz deluje samo v trenutni vrstici.
Obseg je lahko ena vrstica ali razpon med dvema vrsticama. Specifikatorji vrstic so ločeni z ,
ali ;
znakov. Območje lahko določite z absolutno številko vrstice ali posebnimi simboli.
Na primer, če želite nadomestiti vse pojavitve 'foo' s 'bar' v vseh vrsticah, ki se začnejo od vrstice 3 do vrstice 10, bi uporabili:
: 3,10s / foo / bar / g
Obseg je vključujoč, kar pomeni, da sta v obseg vključeni prva in zadnja vrstica.
Pika .
znak označuje trenutno vrstico in $
- znak za dolar zadnja vrstica. Če želite "foo" nadomestiti v vseh vrsticah, ki se začnejo od trenutne do zadnje:
:.,$ s / foo / bar /
Specifikator vrstic lahko nastavite tudi s simbolom '+' ali '-', čemur sledi številka, ki se doda ali odšteje od prejšnje številke vrstice. Če je številka za simbolom izpuščena, je privzeto 1.
Če želite na primer nadomestiti vsako "foo" s "bar", ki se začne od trenutne vrstice in štirih naslednjih vrstic, vnesite:
:.,+4s / foo / bar / g
Zamenjava celotne besede #
Nadomestni ukaz vzorec išče kot niz in ne kot celotna beseda. Če ste na primer iskali »gnu«, iskanje poišče ujemanje, kjer je »gnu« vdelan v večje besede, na primer »cygnus« ali »magnum«.
Če želite poiskati celo besedo, vnesite \<
da označite začetek besede, vnesite vzorec iskanja in vnesite \>
za označitev konca besede:
Na primer, za iskanje besede "foo", ki bi jo uporabili \
:
: s / \/bar/
Nadomestna zgodovina #
Vim spremlja vse ukaze, ki jih izvajate v trenutni seji. Če želite brskati po zgodovini prejšnjih nadomestnih ukazov, vnesite : s
in s puščičnima tipkama gor / dol poiščite prejšnjo nadomestno operacijo. Če želite zagnati ukaz, preprosto pritisnite Enter
. Ukaz lahko tudi uredite, preden izvedete operacijo.
Primeri #
Vrstice komentarjev (dodaj #
pred vrstico) od 5 do 20:
: 5,20s / ^ / # /
Prekličite vrstice od 5 do 20, povrnite prejšnje spremembe:
: 5,20s / ^ # //
Vse primere "jabolko", "pomaranča" in "mango" zamenjajte s "sadje":
:% s / jabolko \ | oranžna \ | mango / sadje / g
Odstranite končni presledek na koncu vsake vrstice:
:% s / \ s \ + $ // e
Zaključek #
Iskanje in zamenjava je močna značilnost Vima, ki vam omogoča hitro spreminjanje besedila.
Če imate kakršna koli vprašanja, lahko pustite komentar.