Mis on Vimi registrid

Mis On Vimi Registrid



Vim-registrid on salvestusplokid, mida kasutatakse väljatõmmatud, kustutatud teksti ja toimingute salvestamiseks. Nendele registritele pääseb juurde nende sildinimede abil, mis võivad olla numbrid, tähed või sümbolid.

Kui kasutate Vimi, peate kasutama Vimi registreid. Iga kord, kui kopeerite/kustutate teksti või sooritate käsutoimingu, salvestab Vim selle teabe registritesse. Selle kleepimisel hangib Vim andmed registrist ja tõmbab need puhvrisse. Teisisõnu, Vimi registrid toimivad lõikepuhvrina teksti ja käskude ajaloo salvestamiseks.

Vimil on kokku 10 erinevat tüüpi registrit, millest igaühel on erinev eesmärk. Selles õpetuses uurin Vimi registreid, nende tüüpe ja kasutamist.







Märge : Selle õpetuse jaoks täidan macOS-is käske. Vim on platvormideülene rakendus, seetõttu kehtivad selles juhendis mainitud käsud kõikidele Vimi versioonidele, olenemata operatsioonisüsteemist.



Vim-registri operaatorid

Vimi registreid saab kasutada selliste toimingute abil nagu kopeerimine, kustutamine või muutmine. Igal toimingul on kindlad operaatorid, näiteks teksti tõmbamiseks kasutatakse operaatorit y, teksti kustutamiseks aga d-operaatorit. Tavaliselt kasutatavate operaatorite loend on toodud allpool:

yy Tõmbab (kopeerib) liini
dd Kustutab rea
cc Kustutab rea ja lubab INSERT-režiimi
s Kustutab märgi ja käivitab asendamiseks režiimi INSERT
x Kustutab kursori all oleva märgi
q makro; salvestab käskude komplekti kindlasse registrisse

Salvestatud teksti printimiseks lk või P kasutatakse operaatoreid:

lk Asetage (kleepige) tekst kursori järele
P Pange tekst kursori ette

Need käsud võtavad samuti arvesse. Näiteks 10 rea kopeerimiseks kasutage nuppu 10 a käsk, sarnaselt 10 koopia kleepimiseks rea kasutamisest 10 p .

Nimekirjade registrid

Kõigi registrite loetlemiseks kasutage nuppu :Registreeri või :reg käsk ja konkreetse registri loetlemiseks kasutage :reg ', kus on registri nimi (nt 0-9, a-z).

Samamoodi kasutage mitme registri sisu loetlemiseks :reg “ käsk.

Registriloendis näete kolme veergu, Nimi, tüüp ja sisu . Siin tähendab tüüp sisutüüpi, mitte registri tüüpi. Kolm tüübid sisu saab muuta registrite abil.

  • l : Joone järgi
  • c : Iseloomult
  • b : Plokkide kaupa

Näiteks kui sisu kopeeritakse reapõhise toimingu abil (yy) siis on sisu tüüp l , kui see on iseloomu järgi (jah) siis on tüüp c ja kui sisu kopeeritakse plokkide kaupa (Ctrl+v ja y) siis näidatakse tüüpi kujul b .

Vim Registersiga töötamine

Vim-registreid saab kasutada sisu salvestamiseks, kasutades tõmmet, kustutamist ja operaatorite muutmist. Salvestatud sisule pääseb juurde put-operaatorite abil.

Teksti salvestamine registrisse
Kui vajutate nuppu yy klahvi rea kopeerimiseks, salvestatakse see vaikeregistrisse, mida nimetatakse nimetuks registriks (“”) . Kopeeritud rea salvestamiseks kindlasse registrisse tsitaat (“) millele järgneb registri nimi ja operaator.

'

Näiteks rea kopeerimiseks registrinimesse Koos kasuta ' zyy . Samamoodi, kui olete valinud VISUAL-režiimis mitu rida, kasutage zy ridade salvestamiseks z-registrisse.

Juurdepääs registrile
Vimi registrisse pääsemiseks tsitaat (“) sümbolit kasutatakse koos registrinimega ja p/P operaator.

'lk

Näiteks kui registri nimi on z ja selle registri sisule juurdepääsuks kasutage ' zp režiimis NORMAL. Sama toimingu tegemiseks INSERT-režiimis kasutage aga ctrl+r z .

Tavaline mood Sisu salvestamiseks kasutage hinnapakkumist (“) , registreeri nimi (a-z) , ja operaator (y, yy, d, c või cc)
lk Tavaline mood Registri sisu kleepimiseks kasutage tsitaati (“) , registreeri nimi (a-z) ja p/P operaator
ctrl+r INSERT Mode Registri sisu kleepimiseks kasutage ctrl+r ja registreeri nimi (a-z)

Teil on Vim-registrite põhiidee. Nüüd käsitlen iga registritüüpi ja selle kasutamist põhjalikult.

Vim-registrite tüübid

Vimis on 10 tüüpi registreid, mis on loodud konkreetseks otstarbeks.

  1. Nimetu register (“”)
  2. Nummerdatud registrid (0-9)
  3. Väike kustutamisregister (“-)
  4. Nimega registrid (a–z või A–Z)
  5. Kirjutuskaitstud registrid (“:, “., “%)
  6. Alternatiivne failiregister (“#)
  7. Väljendiregister (“=)
  8. Valiku- ja langusregistrid (“*, “+, +~)
  9. Musta augu register (“_)
  10. Viimase otsingumustri register (“/)

1. Nimetu register (“”)

See on Vimi vaikeregister, mille abil salvestatakse väljatõmmatud või kustutatud tekst y, yy, d, dd, s, või x käske.

The :reg '' käsku saab kasutada nimetusse registrisse salvestatud sisu loetlemiseks.

Nimetu registri sisu kleepimiseks kasutage käsku put (p või P) käsk. Vaikimisi on lk käsk paneb sisusalved nimetusse registrisse. Teise võimalusena saab nimeta registrisse salvestatud andmeid kleepida ka käsuga “”p.

Järgmises näites olen kopeerinud rea kasutades yy käsk ja seejärel sisestage see 5 korda, kasutades count 5 koos p (5p).

2. Nummerdatud registrid (0-9)

Nummerdatud registreid kasutatakse viimati väljatõmmatud või kustutatud teksti salvestamiseks.

register 0 erineb registritest 1-9 . register 0 salvestab alati viimase väljatõmmatud teksti. Näiteks kui ma tõmban liini kasutades yy käsku, salvestatakse rida mõlemasse nimetu ja 0 registrid.

Nüüd, kui ma kustutan rea kasutades dd , salvestatakse kustutatud rida nimetusse registrisse ja registrisse 1 samas kui viimane väljatõmmatud tekst jääb registrisse 0 . Seega pääseb viimati tõmmatud tekstile igal ajal registri kaudu juurde 0 .

Registrid 1-9 salvestab viimati kustutatud teksti. Näiteks kui ma kustutan rea kasutades dd käsuga salvestatakse kustutatud tekst nii nimetutesse kui ka registrisse 1 . Registrisse 1 salvestatakse viimane kustutatud tekst. Kui kustutan mõne muu rea, liigub varem kustutatud tekst registrisse 2 , ja uusim salvestatakse nimetamata registrisse 1 . Põhimõtteliselt nummerdatud registrid (1-9) salvestada kustutatud teksti ajalugu.

Mõistame nummerdatud registrit näite abil. Järgmine Vimi tekstifail sisaldab 10 rida; tõmbame ära rida 3 kasutades yy käsk. Nüüd kontrollime registrite olekut käsuga :reg.

Tõmbunud liin on praegu sees nimetu ja 0 registrid. Nüüd kustutame kõik read ükshaaval, kasutades dd käsk. Niisiis, viimane rida 10 on nimetu registris ja register 1. Samal ajal salvestatakse registritesse ka teised kustutatud read 2-9 kasvavas järjekorras.

Nendele ridadele pääseb juurde kasutades lk käsk. Näiteks registri teksti panemiseks 9 kasutada '9p . Lisaks, kui soovite panna registri väärtuse 9 5 korda, kasuta '95p .

3. Väike kustutamisregister (“-)

See register salvestab kustutatud teksti, kui see on reast väiksem, kasutades selliseid käske nagu x, daw, diw, dab, ja uuesti . Veelgi enam, kui kustutate mõne teksti kasutades VISUAALNE valikurežiimi ja kui see on väiksem kui rida, siis salvestatakse see väikesesse kustutamisregistrisse. Vimis tähendab rida täislauset, mis lõpeb punktiga.

Näiteks järgmises failis valisin 3 sõna koostööd ja toetust realt number 9 ja kustutas need kasutades d operaator. Selle valiku salvestamiseks kasutatakse väikest kustutamisregistrit, kuna see ei ole pikem kui rida. Kasuta :reg “- käsk väikese kustutamisregistri sisu loetlemiseks.

4. Nimega registrid (a–z või A–Z)

Nimetatud registreid kasutatakse kasutajaspetsiifilise teksti salvestamiseks. Seega, kui soovite salvestada teksti kohandatud registrisse, siis 26 registreerib alates a juurde Koos saab kasutada.

Näiteks tõmban ma rea ​​järgmises failis, kasutades ' zyy , salvestatakse tekst kausta Koos registreerige, nagu on näidatud järgmisel pildil.

Väike- ja suurtähtedega nimega registrid on erineva eesmärgiga. Näiteks kui tekst on salvestatud väiketähtedega registrisse, siis selle registri teksti asendamiseks kasutatakse väiketähtedega registrit. Teksti lisamiseks väiketähtede registrisse kasutatakse aga samanimelist suurtähtedega registrit.

Mõistame seda näite kaudu. Järgmisest failist salvestasin registrisse rea 8 x kasutades ' xyy .

Selle rea järele teksti lisamiseks valin esmalt VISUAL-režiimis paar sõna. Valitud teksti lisamiseks kasutan 'Xy käsk.

Teksti asendamiseks kasutan uuesti ' xyy .

5. Kirjutuskaitstud registrid (., %, 🙂

Vimil on 3 kirjutuskaitstud registrit, mis salvestavad sisestatud tekst, faili nimi, ja viimati hukatud käsk.

. Salvestab viimati sisestatud teksti
% Salvestab faili nime
: Salvestab viimati käivitatud käsu

Nimetatud registreid ei saa muuta, kuid neile on lihtne juurde pääseda.

Viimase sisestatud teksti sisestamiseks kasutage nuppu “.lk käsk.

Failinime printimiseks kasutage nuppu '%p käsk.

Viimase käsu printimiseks kasutage nuppu “:p.

The @: käsku saab kasutada Vimis eelmise käsu kordamiseks. Järgmises näites kustutasin vajutamisel esimesed 3 rida @: , kustutatakse veel 3 rida, seega korratakse eelmist käsku.

6. Alternatiivne puhvri register (“#)

Alternatiivne puhver on fail, mis avatakse praeguses puhvris. # register salvestab praeguses puhvris puhverdatud faili failinime. Avame samas puhvris teise faili, kasutades :e ~/.vimrc pane tähele, et praegune failinimi on fail.txt .

Avatud puhvri sulgemiseks kasutage nuppu :bdelete või :bwipeout käsk. Nüüd on võimalik näha kaustas salvestatud alternatiivset failinime “# Registreeri.

7. Väljendiregister (“=)

Avaldiseregister on ainulaadne register, mida ei kasutata teksti salvestamiseks, vaid see salvestab avaldise. Näiteks kui failis on paar numbrit, kasutatakse nende arvude summeerimiseks Vimi avaldisi.

Sellele registrile pääseb juurde kasutades “= režiimis NORMAL ja ctrl+r = INSERT režiimis.

Näiteks kahe numbri erinevuse leidmiseks vajutage klahvi “= ja olekuribal kuvatakse võrdusmärk; nüüd sisestage mõlemad numbrid miinusmärgiga (-) ja vajutage nuppu Sisenema võti. Nüüd erinevuse printimiseks vajutage nuppu lk või kasutage :pane käsk.

Avaldiseregistri väärtusele juurdepääsuks kasutage :reg “= käsk.

Samamoodi kahe arvu absoluutväärtuse saamiseks kasutage =abs(väärtus1-väärtus2) väljendus.

Samamoodi saab seda (avaldise)registrit kasutada ka süsteemikäsu väljundi salvestamiseks. Näiteks kui ma tahan lugeda faili sisu, siis kasutan seda =system('kass ') , klahvi Return vajutamisel salvestatakse väljundi sisu. Kasutades lk või :pane käsuga saab väljundi sisu puhvrisse paigutada.

Vimis saab kasutada mitmesuguseid väljendeid. Vimi väljendite kohta lisateabe saamiseks kasutage :abiväljend ja :help avaldise süntaks käske.

8. Valiku- ja langusregistrid (“*, “+, “~)

Vimil on kaks valikuregistrit “* (tsitaattäht) ja “+ (quoteplus), mida kasutatakse teksti salvestamiseks GUI-st. Neid registreid kasutatakse teksti kopeerimiseks välistest programmidest, näiteks brauserist või muust tekstitöötlusprogrammist.

Näiteks kui kopeerite brauserist tekstivaliku, kasutades ctrl+c või cmd+c see salvestatakse “* Registreeri. Siiski ei saa te kasutada lk või :pane selle teksti kleepimiseks Vimi redaktorisse. Kasuta “*lk välistest rakendustest kopeeritud teksti lisamiseks Vimi redaktorisse.

Oluline on märkida, et mõlemad “+ ja “* registrid on lõikepuhvriga ühendatud, nii et mõlemad (“*p, “+p) saab kasutada teksti kleepimiseks Vimi redaktorisse. Samamoodi kasutage Vimi teksti lisamiseks “*yy joone tõmbamiseks ja seejärel mis tahes GUI rakendusse kleepimiseks kasutage ctrl+v või cmd+v.

Oluline on märkida, et kui mõlemad registrid (* ja +) teete sama asja, siis mis mõtet on? Vimil on kaks valikuregistrit “*, “+ teeb sama tööd ja selle põhjuseks on X11 aknasüsteem. X11 pakub teksti salvestamiseks kahte meetodit, üks on valikud ja teine ​​on lõikepuhvrid . Valikud kuuluvad rakendusele ja kaovad rakenduse sulgemisel, samas kui lõigatud puhvrid hoiavad teksti X-serveris salvestatuna. Nende kahe salvestustüübi jaoks kasutatakse registreid “* ja “+. Selle kohta lisateabe saamiseks kasutage :help x11-valik käsk.

Järgmiseks, langusregister “~ mida kasutatakse viimase pukseerimise toimingu teksti salvestamiseks. Näiteks kui jätate tekstivaliku välisest rakendusest välja, salvestatakse see langusregistrisse.

Kui leiate, et kleepimine välisest rakendusest kolme erineva klahvi abil on keeruline, saate kaardistada nimetu registrisse salvestatava valiku.
Ava vimrc fail, kohakomplekt lõikelaud=nimeta ja salvestage fail. Nüüd, kui kopeerite välisest rakendusest, saate selle hõlpsalt kleepida, kasutades :pane käsk või p-klahv.

Märge : Drop register (~) on saadaval ainult siis, kui Vim on kompileeritud +dnd-ga. Praegu on see saadaval ainult GTK GUI jaoks.

9. Musta augu register (“_)

Kui teete Vimi redaktoris kopeerimise või kustutamise toimingu, salvestab see teksti vaikimisi registritesse. Kui soovite teksti kustutada ilma seda registrisse salvestamata, kasutage mustade aukude registrit. See register ei muuda teksti kustutamisel nimetut registrit (“”).

Näiteks kui tahan kustutada kõik read ilma neid nimetusse registrisse salvestamata, siis valin kõigepealt kõik read kasutades ggVG ja seejärel vajutage “_d klahve kõigi ridade kustutamiseks. Samamoodi kasutage musta auku ühe rea kustutamiseks '_dd .

10. Viimase otsingu mustri register (“/)

Nagu nimigi ütleb, salvestab see register viimase otsingumustri, kasutades / või ? operaatorid. Näiteks kui otsite /Linux , seejärel kasutades “/lk kleebib Linuxi sõna.

Vim kasutab seda registrit rakendusega navigeerimiseks n ja N võtmed pärast otsingut.

See on kirjutatav register, mille sisu saab muuta :let abil. Näiteks Linuxi sellesse registrisse salvestamiseks kasutage :let @/='Linux'.

Registrid ja makrod

Vimis salvestatakse makrod ka nimelistesse registritesse (a-z). Kui te pole makrodest teadlik, on makrod registrisse salvestatud seadistuskäsud. Seda käskude komplekti saab käivitada, kasutades lihtsalt @-märki, millele järgneb makroregistri nimi. Põhimõtteliselt välistavad makrod vajaduse mitut käsku korduvalt tippida.

Näiteks makro salvestamiseks registrisse m , ma kasutan qmq . Ma tahan kolida 5 read alla kasutades 5j ja kustutage rida kasutades dd . Kasuta, qm makro salvestamise alustamiseks ja seejärel vajutage 5j ja dd . Nüüd makro salvestamise lõpetamiseks vajutage q . Kontrollimaks, kas makro on salvestatud või mitte, :reg “m või :reg m.

Nende käskude täitmiseks makroregistriga kasutage :@m käsk.

Registri tühjendamine

Registri tühjendamiseks ei ole lihtsat lähenemist, sest enamikku registreid ei ole vaja kustutada, kuna need kirjutatakse lõpuks üle. Siiski on Vimi redaktoris registriväärtuse kustutamiseks mõned tehnikad.

1. Registreerige registri tühjendamiseks tühi makro. Näiteks registri m tühjendamiseks kasutage qmq .

2. Määrake tühi tekst, kasutades nuppu lase . Näiteks registri m tühjendamiseks kasutage :las @m=”.

3. Kasutage setreg() funktsioon tühja stringiga argumendina. Näiteks registri kustutamiseks kasutus :call setreg('m', ').

Järeldus

Seal on 10 erinevat erineva funktsionaalsusega registrit, mis teeb meeldejätmise peaaegu võimatuks. Kui olete algaja, siis soovitan meeles pidada ainult kolme registrit, nimetu registrit (“”) , nummerdatud registrid (0-9) , ja nimelised registrid (a-z) .

Teksti salvestamiseks registrisse kasutage hinnapakkumist (“) märk registri nimega, millele järgneb operaatori käsk (y, d, c) . Teksti kleepimiseks registrist kasutage käske p või P, millele eelneb jutumärk (“) ja registreeri nimi.

Kindlasti olete sellest kuulnud, et kui teete ülesande rohkem kui kaks korda, siis automatiseerige see. Vim-registrid võivad olla ülesannete automatiseerimiseks ja lõppkokkuvõttes kasutuskogemuse täiustamiseks äärmiselt kasulikud. Vimi registrite kohta lisateabe saamiseks kasutage :abi registrid käsk.