Kaj so registri Vim

Kaj So Registri Vim



Registri Vim so bloki za shranjevanje, ki se uporabljajo za shranjevanje povlečenega, izbrisanega besedila in operacij. Do teh registrov je mogoče dostopati z uporabo njihovih imen oznak, ki so lahko številka, črka ali simbol.

Če uporabljate Vim, potem morate uporabljati registre Vim. Vsakič, ko kopirate/izbrišete besedilo ali izvedete ukazno operacijo, Vim shrani te informacije v registre. Ko ga prilepite, Vim pridobi podatke iz registra in jih nariše v medpomnilnik. Z drugimi besedami, registri Vim delujejo kot odložišče za shranjevanje besedila in zgodovine ukazov.

Vim ima skupaj 10 različnih vrst registrov, od katerih vsak služi svojemu namenu. V tej vadnici bom raziskoval registre Vim, njihove vrste in uporabo.







Opomba : Za to vadnico izvajam ukaze v sistemu macOS. Vim je aplikacija za več platform, zato bodo ukazi, omenjeni v tem priročniku, veljali za vse različice Vim, ne glede na operacijski sistem.



Operaterji registra Vim

Registre v Vimu je mogoče uporabiti z operacijami, kot so kopiranje, brisanje ali spreminjanje. Vsaka operacija ima posebne operatorje, na primer za vlečenje besedila se uporablja operator y, za brisanje besedila pa se uporablja operator d. Spodaj je naveden seznam pogosto uporabljenih operaterjev:

yy Yanks (kopira) vrstico
dd Izbriše vrstico
cc Izbriše vrstico in omogoči način INSERT
s Izbriše znak in zažene način INSERT za zamenjavo
x Izbriše znak pod kazalcem
q Makro; shrani nabor ukazov v določen register

Če želite natisniti shranjeno besedilo, str oz p uporabljajo se operaterji:

str Postavite (prilepite) besedilo za kazalcem
p Postavite besedilo pred kazalec

Ti ukazi tudi štejejo. Če želite na primer kopirati 10 vrstic, uporabite 10yy ukaz, podobno kot prilepite 10 kopij izvlečene vrstice 10p .

Registri kotacij

Za seznam vseh registrov uporabite :registracija oz :reg in za seznam določenega registra uporabite :reg, kjer je ime registra (npr. 0-9, a-z).

Na enak način uporabite za seznam vsebine več registrov :reg “ ukaz.

Na seznamu registrov boste videli tri stolpce, Ime, vrsta in vsebina . Tukaj Vrsta pomeni vrsto vsebine, ne vrste registra. tri vrste vsebine je mogoče spreminjati z registri.

  • l : Črtno
  • c : Značajsko
  • b : blokovsko

Na primer, če je vsebina kopirana z operacijo po vrsticah (yy) potem bo vrsta vsebine l , če je karakterno (da) potem bo tip c , in če je vsebina kopirana po blokih (ctrl+v in y) potem bo vrsta prikazana kot b .

Delo z registri Vim

Registre Vim lahko uporabite za shranjevanje vsebine z uporabo operatorjev yank, delete in change. Do shranjene vsebine je mogoče dostopati z uporabo operatorjev put.

Shranjevanje besedila v register
Ko pritisnete na yy tipko za kopiranje vrstice, bo shranjena v privzeti register, imenovan neimenovani register (“”) . Za shranjevanje kopirane vrstice v določen register, ponudbo (“) ki mu sledita ime registra in operater.

'

Na primer, če želite kopirati vrstico v ime registra z uporaba ' zyy . Podobno, če ste v načinu VISUAL izbrali več vrstic, uporabite » zy za shranjevanje vrstic v register z.

Dostop do registra
Za dostop do registra Vim, citat (“) simbol se uporablja z imenom registra in p/P operater.

'str

Na primer, če je ime registra z in za dostop do vsebine tega registra IS uporabite “ zp v načinu NORMAL. Vendar pa za izvedbo iste operacije v načinu INSERT uporabite ctrl+r z .

Normalen način Za shranjevanje vsebine uporabite citat (“) , ime registra (a-z) in operator (y, yy, d, c ali cc)
str Normalen način Za lepljenje vsebine registra uporabite citat (“) , ime registra (a-z) in p/P operater
ctrl+r Način VSTAVLJANJA Če želite prilepiti vsebino registra, uporabite ctrl+r in ime za registracijo (a-z)

Imate osnovno predstavo o registrih Vim. Zdaj se bom lotil poglobljene razprave o vsaki vrsti registra in njegovi uporabi.

Vrste registrov Vim

V Vimu obstaja 10 vrst registrov, zasnovanih za posebne namene.

  1. Neimenovan register (“”)
  2. Oštevilčeni registri (0-9)
  3. Majhen register za brisanje (“-)
  4. Poimenovani registri (a-z ali A-Z)
  5. Registri samo za branje (“:, “., “%)
  6. Register nadomestnih datotek (»#)
  7. Register izrazov (“=)
  8. Izbirni in spustni registri (“*, “+, +~)
  9. Register črne luknje (»_)
  10. Zadnji register iskalnih vzorcev (“/)

1. Neimenovani register (“”)

To je privzeti register Vima za shranjevanje povlečenega ali izbrisanega besedila z uporabo y, yy, d, dd, s, oz x ukazi.

The :reg “” ukaz lahko uporabite za seznam vsebine, shranjene v neimenovanem registru.

Če želite prilepiti neimenovano vsebino registra, uporabite ukaz put (p ali P) ukaz. Privzeto je str ukaz postavi shrambe vsebine v neimenovan register. Alternativno lahko podatke, shranjene v neimenovanem registru, prilepite tudi z ukazom “”p.

V naslednjem primeru sem kopiral vrstico z uporabo yy in ga nato 5-krat postavite s štetjem 5 s p (5p).

2. Oštevilčeni registri (0-9)

Oštevilčeni registri se uporabljajo za shranjevanje zadnjega povlečenega ali izbrisanega besedila.

Register 0 se razlikuje od registrov 1-9 . Register 0 bo vedno shranil zadnje povlečeno besedilo. Na primer, če povlečem vrstico z uporabo yy bo vrstica shranjena v obeh neimenovani in 0 registri.

Zdaj, če izbrišem vrstico z dd , bo izbrisana vrstica shranjena v neimenovanem registru in registru 1 medtem ko bo zadnje povlečeno besedilo ostalo v registru 0 . Tako je do zadnjega povlečenega besedila mogoče kadar koli dostopati prek registra 0 .

Registri 1-9 shrani zadnje izbrisano besedilo. Na primer, če izbrišem vrstico z dd bo izbrisano besedilo shranjeno v neimenovanem in registru 1 . Register 1 bo shranil zadnje izbrisano besedilo. Če izbrišem še eno vrstico, se bo prej izbrisano besedilo premaknilo v register 2 , zadnji pa bo shranjen v neimenovanem in registru 1 . V bistvu oštevilčeni registri (1–9) shranjevanje zgodovine izbrisanega besedila.

Razumejmo oštevilčen register s primerom. Naslednja besedilna datoteka Vim obsega 10 vrstic; potegnemo vrstica 3 uporabo yy ukaz. Zdaj pa preverimo stanje registrov z ukazom :reg.

Izvlečena vrstica je trenutno v neimenovani in 0 registri. Zdaj pa izbrišite vse vrstice eno za drugo z uporabo dd ukaz. Torej, nazadnje vrstica 10 bodo v neimenovanem registru in registru 1. Istočasno bodo ostale izbrisane vrstice shranjene v registrih 2-9 v naraščajočem vrstnem redu.

Do teh vrstic lahko dostopate z str ukaz. Na primer, vnesite besedilo registra 9 uporaba »9p . Nadalje, če želite vnesti vrednost register 9 5 krat, uporabite “95p .

3. Mali register za brisanje (“-)

Ta register shrani izbrisano besedilo, če je manjše od vrstice, z uporabo ukazov, kot je x, daw, diw, dab, in ponovno . Poleg tega, če izbrišete nekaj besedila z VIZUALNO način izbire, in če je manj kot vrstica, bo shranjen v majhnem registru za brisanje. V Vimu črta pomeni celoten stavek, ki se konča s piko.

Na primer, v naslednji datoteki sem izbral 3 besede sodelovanje in podporo iz vrstice številka 9 in jih izbrisal z uporabo d operater. Majhen register za brisanje bo uporabljen za shranjevanje te izbire, saj ni daljša od vrstice. Uporabi :reg “- ukaz za seznam vsebine majhnega registra za brisanje.

4. Poimenovani registri (a-z ali A-Z)

Imenovani registri se uporabljajo za shranjevanje uporabniško specifičnega besedila. Torej, če želite shraniti besedilo v register po meri, potem 26 registri iz a do z je lahko uporabljen.

Na primer, črtam vrstico v naslednji datoteki z uporabo ' zyy , bo besedilo shranjeno v z registrirajte, kot je prikazano na naslednji sliki.

Imenovani registri z malimi in velikimi črkami imajo različne namene. Na primer, če je besedilo shranjeno v registru z malimi črkami, bo za zamenjavo besedila tega registra uporabljen register z malimi črkami. Za dodajanje besedila v register z malimi črkami pa bo uporabljen register z velikimi črkami z istim imenom.

Razumejmo to skozi primer. Iz naslednje datoteke sem shranil vrstico 8 v register x z uporabo ' xyy .

Če želite dodati besedilo za to vrstico, bom najprej izbral nekaj besed v VIZUALNEM načinu. Za dodajanje izbranega besedila bom uporabil »Xy ukaz.

Za zamenjavo besedila bom ponovno uporabil ' xyy .

5. Registri samo za branje (., %, 🙂

Vim ima 3 registre samo za branje, ki shranjujejo vstavljeno besedilo, ime datoteke, in nazadnje izvedeno ukaz.

. Shrani zadnje vstavljeno besedilo
% Shrani ime datoteke
: Shrani zadnji izvedeni ukaz

Teh registrov, kot je predlagano ime, ni mogoče spreminjati, vendar je do njih mogoče zlahka dostopati.

Če želite vstaviti zadnje vstavljeno besedilo, uporabite “.p ukaz.

Če želite natisniti ime datoteke, uporabite “%p ukaz.

Če želite natisniti zadnji ukaz, uporabite “:p.

The @: lahko uporabite za ponovitev prejšnjega ukaza v Vimu. V naslednjem primeru sem ob pritisku izbrisal prve 3 vrstice @: , se izbrišejo še 3 vrstice, zato se prejšnji ukaz ponovi.

6. Nadomestni vmesni register (»#)

Nadomestni medpomnilnik je datoteka, ki se odpre v trenutnem medpomnilniku. Register “# shrani ime datoteke medpomnilnika v trenutni medpomnilnik. Odprimo drugo datoteko v istem medpomnilniku z uporabo :e ~/.vimrc ukaz, upoštevajte, da je trenutno ime datoteke datoteka.txt .

Če želite zapreti odprt medpomnilnik, uporabite :bdelete oz :bwipeout ukaz. Zdaj je mogoče videti alternativno ime datoteke, shranjeno v “# register.

7. Register izrazov (“=)

Register izrazov je edinstven register, ki se ne uporablja za shranjevanje besedila, namesto tega shrani izraz. Na primer, če imate v datoteki nekaj števil, bodo za seštevek teh števil uporabljeni izrazi Vim.

Do tega registra lahko dostopate z uporabo “= v načinu NORMAL in ctrl+r = v načinu INSERT.

Na primer, če želite poiskati razliko med dvema številoma, pritisnite »= in v vrstici stanja se bo pojavil znak enačaja; zdaj vnesite obe številki z znakom minus (-) in pritisnite Vnesite ključ. Če želite natisniti razliko, pritisnite str ali uporabite :stavi ukaz.

Za dostop do vrednosti izraznega registra uporabite :reg “= ukaz.

Podobno, če želite dobiti absolutno vrednost dveh števil, uporabite =abs(vrednost1-vrednost2) izražanje.

Na enak način se lahko za shranjevanje izhoda sistemskega ukaza uporabi ta (izrazni) register. Na primer, če želim prebrati vsebino datoteke, ki jo bom uporabil =system('mačka ') , ko pritisnete tipko Return, se vsebina izhoda shrani. Uporabljati str oz :stavi lahko vsebino izhoda postavite v medpomnilnik.

V Vimu je mogoče uporabiti vrsto izrazov. Če želite izvedeti več o izrazih Vim, uporabite :pomoč izraz in :help izraz-sintaksa ukazi.

8. Izbirni in spustni registri (“*, “+, “~)

Vim ima dva izbirna registra “* (navajalnik) in »+ (quoteplus), ki se uporabljajo za shranjevanje besedila iz GUI. Ti registri se uporabljajo za kopiranje besedila iz zunanjih programov, kot so brskalniki ali kateri koli drug urejevalnik besedil.

Če na primer kopirate izbor besedila iz brskalnika, uporabite ctrl+c oz cmd+c bo shranjeno v “* register. Vendar ne morete uporabiti str oz :stavi da prilepite to besedilo v urejevalnik Vim. Uporaba “*str da vstavite besedilo v urejevalnik Vim, ki je kopirano iz zunanjih aplikacij.

Pomembno je omeniti, da oboje »+ in “* registri so povezani z odložiščem, torej oba (»*p, «+p) lahko uporabite za lepljenje besedila v urejevalnik Vim. Podobno uporabite besedilo iz Vima “*yy Če želite vrniti vrstico in jo nato prilepiti v katero koli aplikacijo GUI, uporabite ctrl+v ali cmd+v.

Bistveno je upoštevati, da če oba registra (* & +) delajo isto stvar, v čem je potem smisel? Vim ima dva izbirna registra “*, “+ opravlja isto delo in to zaradi okenskega sistema X11. X11 ponuja dva načina za shranjevanje besedila, eden je izbire in drugi je odbojniki . Izbire ima aplikacija in se ob zaprtju aplikacije izgubijo, medpomnilniki za izrezovanje pa ohranjajo besedilo shranjeno v strežniku X. Za ti dve vrsti pomnilnika se uporabljata registra “* in “+. Če želite izvedeti več o tem, uporabite :help x11-izbor ukaz.

Naprej, spustite register “~ ki se uporablja za shranjevanje besedila iz zadnje operacije povleci in spusti. Na primer, če spustite izbor besedila iz zunanje aplikacije, bo shranjen v registru spuščanja.

Če se vam zdi lepljenje iz zunanje aplikacije z uporabo treh različnih ključev težko, potem lahko preslikate izbor, ki bo shranjen v neimenovanem registru.
Odprite vimrc pila, nastav odložišče=neimenovano vanjo in shranite datoteko. Zdaj, ko kopirate iz zunanje aplikacije, jo lahko preprosto prilepite z uporabo :stavi ukaz ali tipko p.

Opomba : Spustni register (~) bo na voljo samo, če je Vim preveden z +dnd. Trenutno je na voljo samo za GUI GTK.

9. Register črne luknje (»_)

Če izvedete kopiranje ali brisanje v urejevalniku Vim, privzeto shrani besedilo v registre. Če želite besedilo izbrisati, ne da bi ga shranili v register, uporabite register črne luknje. Ta register ne bo spremenil neimenovanega registra (»«) pri brisanju besedila.

Na primer, če želim izbrisati vse vrstice, ne da bi jih shranil v neimenovani register, bom najprej izbral vse vrstice z ggVG in nato pritisnite “_d tipke za brisanje vseh vrstic. Podobno, če želite izbrisati eno črto do črne luknje, uporabite “_dd .

10. Zadnji register iskalnih vzorcev (“/)

Kot že ime pove, ta register shrani zadnji iskalni vzorec z uporabo / oz ? operaterji. Na primer, če iščete /Linux , nato z uporabo “/str bo prilepil besedo Linux.

Vim uporablja ta register za navigacijo z n in n ključe po iskanju.

Je zapisljiv register, njegovo vsebino lahko spremenite z uporabo :let. Če želite na primer shraniti Linux v ta register, uporabite :let @/='Linux'.

Registri in makri

V Vimu so makri shranjeni tudi v imenovanih registrih (a-z). Če ne poznate makrov, so makri nastavljeni ukazi, shranjeni v registru. Ta niz ukazov je mogoče izvesti preprosto z uporabo znaka @, ki mu sledi ime registra makra. V bistvu makri odpravijo potrebo po ponavljajočem vnašanju več ukazov.

Na primer za shranjevanje makra v register m , bom uporabil qmq . Želim se preseliti v 5 črte navzdol z uporabo 5j in izbrišite vrstico z dd . Uporaba, qm za začetek snemanja makra, in nato pritisnite 5j in dd . Zdaj, če želite zapreti snemanje makra, pritisnite q . Če želite preveriti, ali je makro shranjen ali neuporaben, :reg “m ali :reg m.

Za izvajanje teh ukazov z makro registrom uporabite :@m ukaz.

Čiščenje registra

Za brisanje registra ni enostavnega pristopa, ker večine registrov ni treba izbrisati, ker bodo sčasoma prepisani. Vendar obstaja nekaj tehnik za brisanje vrednosti registra v urejevalniku Vim.

1. Posnemite prazen makro, da počistite register. Če želite na primer počistiti register m, uporabite qmq .

2. Nastavite prazno besedilo z uporabo pustiti . Če želite na primer počistiti register m, uporabite :naj @m=”.

3. Uporabite setreg() funkcijo s praznim nizom kot argumentom. Na primer, za brisanje registra m uporabite :call setreg('m', ”).

Zaključek

Obstaja 10 različnih registrov z različnimi funkcionalnostmi, zaradi česar si jih je skoraj nemogoče zapomniti. Če ste začetnik, priporočam, da imate v mislih samo tri registre, neimenovani register (“”) , oštevilčeni registri (0-9) , in imenovani registri (a-z) .

Za shranjevanje besedila v register uporabite citat (“) podpišite z imenom registra, ki mu sledi ukaz operaterja (y, d, c) . Če želite prilepiti besedilo iz registra, uporabite ukaze p ali P, pred katerimi stoji narekovaj (“) in ime za registracijo.

Gotovo ste že slišali za to, če nalogo opravljate več kot dvakrat, jo avtomatizirajte. Registri Vim so lahko izjemno uporabni za avtomatizacijo opravil in na koncu izboljšajo izkušnjo. Če želite izvedeti več o registrih Vim, uporabite :help registri ukaz.