Mik azok a Vim regiszterek

Mik Azok A Vim Regiszterek



A Vim regiszterek olyan tárolóblokkok, amelyek a kirántott, törölt szövegek és műveletek tárolására szolgálnak. Ezek a regiszterek a címkeneveik segítségével érhetők el, amelyek lehetnek számok, betűk vagy szimbólumok.

Ha Vim-et használ, akkor a Vim regisztereket kell használnia. Minden alkalommal, amikor szöveget másol/töröl, vagy parancsot hajt végre, a Vim ezeket az információkat a regiszterekben tárolja. Amikor beilleszti, a Vim lekéri az adatokat a regiszterből, és behúzza a pufferbe. Más szavakkal, a Vim-regiszterek vágólapként működnek a szöveg- és parancselőzmények tárolására.

A Vim összesen 10 különböző típusú regiszterrel rendelkezik, amelyek mindegyike más-más célt szolgál. Ebben az oktatóanyagban a Vim-regisztereket, azok típusait és használatát vizsgálom meg.







jegyzet : Ebben az oktatóanyagban parancsokat hajtok végre macOS rendszeren. A Vim egy többplatformos alkalmazás, ezért az ebben az útmutatóban említett parancsok az operációs rendszertől függetlenül minden Vim verzióra érvényesek.



Vim regisztrációs kezelők

A Vim regiszterei olyan műveletekkel használhatók, mint a másolás, törlés vagy módosítás. Minden műveletnek sajátos operátorai vannak, például a szöveg elrántásához az y operátort, míg a szöveg törléséhez a d operátort használják. Az általánosan alkalmazott szolgáltatók listája az alábbiakban található:

yy Megrántja (másolja) a sort
dd Törli a sort
cc Törli a sort és engedélyezi az INSERT módot
s Törli a karaktert, és elindítja az INSERT módot a helyettesítéshez
x Törli a kurzor alatti karaktert
q Makró; a parancskészletet egy adott regiszterben tárolja

A tárolt szöveg kinyomtatásához p vagy P operátorokat használnak:

p Helyezze (illessze be) a szöveget a kurzor mögé
P Helyezze a szöveget a kurzor elé

Ezek a parancsok is számítanak. Például 10 sor másolásához használja a 10yy parancsot, hasonlóan a 10 másolat beillesztéséhez egy megrántott sor használatához 10p .

Listázási nyilvántartások

Az összes regiszter felsorolásához használja a :Regisztráció vagy :reg parancsot, és az adott regiszter listázásához használja a :reg, ahol a a regiszter neve (pl. 0-9, a-z).

Ugyanígy több regiszter tartalmának felsorolásához használja a :reg “ parancs.

A regiszterlistában három oszlopot fog látni, Név, típus és tartalom . Itt a Típus a tartalom típusát jelenti, nem a regiszter típusát. Három típusok tartalom regiszterekkel módosítható.

  • l : Vonalszerűen
  • c : Karakteresen
  • b : Tömbszerűen

Például, ha a tartalom másolása soronkénti művelettel történik (yy) akkor a tartalom típusa lesz l , ha ez karakteres (Igen) akkor a típus lesz c , és ha a tartalom blokkonként van másolva (ctrl+v és y) akkor a típus így jelenik meg b .

Munka a Vim Registers szolgáltatással

A Vim regiszterek használhatók a tartalom tárolására a rángatás, törlés és operátorok megváltoztatásával. A tárolt tartalom a put operátorokkal érhető el.

Szöveg mentése regiszterbe
Amikor megnyomja a yy gombot egy sor másolásához, az az alapértelmezett névtelen regiszterbe kerül elmentésre (“”) . A másolt sor eltárolása egy adott regiszterbe, az idézet (“) ezt követi a regiszternév és az operátor.

'

Például egy sor másolása regiszternévbe Val vel használd zyy . Hasonlóképpen, ha több sort választott ki VISUAL módban, használja a „ zy hogy a sorokat a z regiszterben tároljuk.

Hozzáférés a nyilvántartáshoz
A Vim nyilvántartás eléréséhez az árajánlatot (“) szimbólumot használjuk a regiszternévvel és p/P operátor.

'p

Például, ha a regiszter neve z, és az IS regiszter tartalmának eléréséhez használja a „ zp NORMAL módban. Ha azonban ugyanezt a műveletet INSERT módban szeretné végrehajtani, használja a ctrl+r z .

Normál mód A tartalom tárolásához használjon idézetet (“) , regisztrációs név (a-z) , és operátor (y, yy, d, c vagy cc)
p Normál mód A nyilvántartás tartalmának beillesztéséhez használja az idézetet (“) , regisztrációs név (a-z) és p/P operátor
ctrl+r INSERT mód Egy regiszter tartalmának beillesztéséhez használja a ctrl+r és regisztrálja a nevet (a-z)

Megvan a Vim regiszterek alapötlete. Most részletesen tárgyalom az egyes regisztertípusokat és azok használatát.

A Vim-regiszterek típusai

A Vimben 10 típusú regiszter létezik, amelyeket meghatározott célokra terveztek.

  1. Névtelen nyilvántartás („”)
  2. Számozott regiszterek (0-9)
  3. Kis törlési regiszter (“-)
  4. Elnevezett regiszterek (a-z vagy A-Z)
  5. Csak olvasható regisztrációk (':, '., '%)
  6. Alternatív fájlregiszter ('#)
  7. Kifejezésregiszter (“=)
  8. Kiválasztási és ejtési regiszterek (“*, “+, +~)
  9. Fekete lyuk regiszter ('_)
  10. Utolsó keresési minta-nyilvántartás (“/)

1. Névtelen regiszter („”)

Ez a Vim alapértelmezett regisztere a kirántott vagy törölt szövegek tárolására é, éé, d, nn, s, vagy x parancsokat.

A :reg '' paranccsal listázható a névtelen regiszterben tárolt tartalom.

A névtelen regisztertartalom beillesztéséhez használja a put parancsot (p vagy P) parancs. Alapértelmezés szerint a p parancs a tartalomtárolókat a névtelen regiszterbe helyezi. Alternatív megoldásként a névtelen regiszterben tárolt adatok a „”p paranccsal is beilleszthetők.

A következő példában egy sort másoltam a segítségével yy parancsot, majd írja be 5-ször a count 5 használatával p (5p).

2. Számozott regiszterek (0-9)

A számozott regiszterek az utoljára kirántott vagy törölt szöveg tárolására szolgálnak.

A regisztráció 0 eltér a regiszterektől 1-9 . A regisztráció 0 mindig az utoljára kirántott szöveget tárolja. Például ha megrántok egy sort a segítségével yy parancsot, a sor mind a névtelen és a 0 regisztereket.

Most, ha törlök egy sort a segítségével dd , a törölt sor a névtelen regiszterben és regiszterben tárolódik 1 míg az utolsó kirántott szöveg a regiszterben marad 0 . Tehát az utoljára kirántott szöveg bármikor elérhető a regiszteren keresztül 0 .

A regiszterek 1-9 tárolja az utoljára törölt szöveget. Például, ha törlök egy sort a dd parancsot, a törölt szöveg mind a névtelen, mind a regiszterben tárolva lesz 1 . Az 1. regiszter tárolja a legutóbb törölt szöveget. Ha egy másik sort törlök, a korábban törölt szöveg átkerül a regisztrációba 2 , a legfrissebb pedig a névtelen és regiszterben lesz tárolva 1 . Lényegében a számozott regiszterek (1-9) tárolja a törölt szövegek előzményeit.

Értsük meg a számozott regisztert egy példával. A következő Vim szövegfájl 10 sorból áll; rángassuk meg 3. sor segítségével yy parancs. Most nézzük meg a regiszterek állapotát a :reg paranccsal.

A kirántott sor jelenleg a névtelen és 0 regisztereket. Most töröljük az összes sort egyenként a segítségével dd parancs. Szóval utoljára 10. sor a névtelen regiszterben és az 1. regiszterben lesz. Ezzel egyidejűleg a többi törölt sor a regiszterekben tárolódik 2-9 növekvő sorrendben.

Ezek a vonalak a következővel érhetők el p parancs. Például a regiszter szövegének beírásához 9 használat „9p . Továbbá, ha a register értékét akarja megadni 9 5 alkalommal, használja „95 p .

3. Kis törlési regiszter (“-)

Ez a regiszter tárolja a törölt szöveget, ha az kisebb, mint egy sor, például parancsok segítségével x, daw, diw, dab, és újra . Sőt, ha törli néhány szöveget a segítségével VIZUÁLIS kiválasztási módban, és ha kisebb, mint egy sor, akkor a kis törlési regiszterben tárolódik. A Vimben a sor egy ponttal végződő teljes mondatot jelent.

Például a következő fájlban 3 szót választottam ki együttműködés és támogatás a 9. sorból, és a segítségével törölte azokat d operátor. A kis törlési regiszter fogja használni ezt a kijelölést, mivel nem hosszabb egy sornál. Használja a :reg '- parancs a kis törlési regiszter tartalmának listázásához.

4. Elnevezett regiszterek (a-z vagy A-Z)

A megnevezett regiszterek a felhasználó-specifikus szövegek tárolására szolgálnak. Tehát, ha egy egyedi regiszterben szeretne szöveget tárolni, akkor 26 től regisztrál a nak nek Val vel használható.

Például kihúzok egy sort a következő fájlban a „ zyy , a szöveg a Val vel regisztráljon az alábbi képen látható módon.

A kis- és nagybetűs elnevezésű regisztereknek más a célja. Például, ha a szöveg a kisbetűs regiszterben van elmentve, akkor az adott regiszter szövegének cseréjéhez a kisbetűs regiszter kerül felhasználásra. A szöveg kisbetűs regiszterhez való hozzáfűzéséhez azonban az azonos nevű nagybetűs regiszter kerül felhasználásra.

Értsük meg egy példán keresztül. A következő fájlból a 8. sort tároltam a regiszterben x a „ xyy .

Ahhoz, hogy szöveget fűzzek e sor után, először kijelölök néhány szót VIZUÁLIS módban. A kiválasztott szöveg hozzáfűzéséhez a „Xy parancs.

A szöveg cseréjéhez ismét a „ xyy .

5. Csak olvasható regiszterek (., %, 🙂

A Vimnek 3 csak olvasható regisztere van, amelyek tárolják a beszúrt adatokat szöveg, fájlnév, és utoljára kivégezve parancs.

. Tárolja az utoljára beszúrt szöveget
% Tárolja a fájl nevét
: Tárolja az utoljára végrehajtott parancsot

Ezek a regiszterek a sugallt név szerint nem módosíthatók, viszont könnyen hozzáférhetők.

Az utoljára beszúrt szöveg elhelyezéséhez használja a „.p parancs.

A fájlnév kinyomtatásához használja a „%p parancs.

Az utolsó parancs kinyomtatásához használja a ':p.

A @: paranccsal megismételhető az előző parancs a Vimben. A következő példában az első 3 sort töröltem a megnyomásra @: , további 3 sor törlődik, így az előző parancs megismétlődik.

6. Alternatív pufferregiszter (“#”)

Az alternatív puffer egy fájl, amely az aktuális pufferben nyílik meg. A „# regiszter a pufferelt fájl fájlnevét tárolja az aktuális pufferben. Nyissunk meg egy másik fájlt ugyanabban a pufferben a :e ~/.vimrc parancsot, vegye figyelembe, hogy az aktuális fájlnév fájl.txt .

A megnyitott puffer bezárásához használja a :bdelete vagy :bwipeout parancs. Most megtekintheti a fájlba mentett alternatív fájlnevet „# Regisztráció.

7. Kifejezésregiszter (“=)

A kifejezésregiszter egy egyedi regiszter, amely nem szöveg tárolására szolgál, hanem a kifejezést tárolja. Például, ha van néhány szám a fájlban, akkor ezeknek a számoknak az összegzéséhez a rendszer Vim kifejezéseket használ.

Ez a nyilvántartás a segítségével érhető el „= NORMAL módban, és ctrl+r = INSERT módban.

Például két szám közötti különbség megállapításához nyomja meg a „=” gombot, és az egyenlőségjel megjelenik az állapotsorban; most írja be mindkét számot a mínuszjellel (-) és nyomja meg a gombot Belép kulcs. Most a különbség kinyomtatásához nyomja meg a gombot p vagy használja a :put parancs.

A kifejezésregiszter értékének eléréséhez használja a :reg “= parancs.

Hasonlóképpen, hogy megkapja két szám abszolút értékét, használja a =abs(érték1-érték2) kifejezés.

Ugyanígy a rendszerparancs kimenetének tárolásához ez a (kifejezési) regiszter használható. Például, ha el akarom olvasni a fájl tartalmát, akkor azt fogom használni =system('macska ') , a Return gomb megnyomására a kimenet tartalma eltárolódik. Használni a p vagy :put paranccsal a kimenet tartalma elhelyezhető a pufferben.

A Vimben számos kifejezés használható. Ha többet szeretne megtudni a Vim kifejezésekről, használja a :help kifejezés és :help kifejezés-szintaxis parancsokat.

8. Kiválasztási és leejtési regiszterek („*, „+, „~)

A Vimnek két kiválasztási regisztere van '* (idézőjel) és „+ (quoteplus), amelyek a grafikus felhasználói felület szövegének tárolására szolgálnak. Ezek a regiszterek szövegek másolására szolgálnak külső programokból, például böngészőkből vagy bármilyen más szövegszerkesztőből.

Például, ha egy szövegkijelölést másol egy böngészőből, a ctrl+c vagy cmd+c tárolja a '* Regisztráció. Azonban nem használhatja p vagy :put hogy beillessze ezt a szöveget a Vim szerkesztőbe. Használat „*p hogy a külső alkalmazásokból másolt szöveget a Vim szerkesztőbe helyezze.

Fontos megjegyezni, hogy mindkettő „+ és '* regiszterek csatlakoznak a vágólapra, így mindkettő ('*p, '+p) használható a szöveg beillesztésére a Vim szerkesztőbe. Hasonlóképpen, ha szöveget szeretne bevinni a Vimből, használja a következőt: „*yy egy vonal kihúzásához, majd bármely grafikus felhasználói felületbe való beillesztéséhez használja ctrl+v vagy cmd+v.

Fontos megjegyezni, hogy ha mindkét regiszter (* és +) ugyanazt csinálják, akkor mi értelme? A Vimnek két kiválasztási regisztere van „*, „+ ugyanazt a munkát végzi, és ez az X11 ablakrendszer miatt van. Az X11 két módszert biztosít a szöveg tárolására, az egyik válogatások a másik pedig az vágó-pufferek . A kijelölések az alkalmazás tulajdonában vannak, és az alkalmazás bezárásakor elvesznek, míg a kivágott pufferek a szöveget az X-szerveren tárolják. Ehhez a két tárolótípushoz a „*” és „+” regiszter használatos. Ha többet szeretne megtudni róla, használja a :help x11-selection parancs.

Következő, a cseppregiszter „~ amely az utolsó drag and drop művelet szövegének tárolására szolgál. Például, ha kidob egy szöveges kijelölést egy külső alkalmazásból, az el lesz tárolva a drop regiszterben.

Ha nehéznek találja a külső alkalmazásból három különböző kulccsal történő beillesztést, akkor leképezheti a névtelen regiszterben tárolandó kijelölést.
Nyissa meg a vimrc fájl, helykészlet clipboard=névtelen benne, és mentse el a fájlt. Mostantól, amikor egy külső alkalmazásból másol, könnyen beilleszthető a :put parancs vagy p billentyű.

jegyzet : A drop regiszter (~) csak akkor lesz elérhető, ha a Vim +dnd-vel van lefordítva. Jelenleg csak GTK GUI-hoz érhető el.

9. Fekete lyuk regiszter ('_)

Ha másolást vagy törlést hajt végre a Vim szerkesztőben, akkor alapértelmezés szerint a szöveget a regiszterekben tárolja. Ha törölni szeretné a szöveget anélkül, hogy regiszterben tárolná, használja a fekete lyuk regisztert. Ez a regiszter nem módosítja a névtelen regisztert („”) a szöveg törlésekor.

Például, ha törölni akarom az összes sort anélkül, hogy a névtelen regiszterben tárolnám, akkor először kijelölöm az összes sort a ggVG majd nyomja meg „_d gombokat az összes sor törléséhez. Hasonlóképpen a fekete lyuk egyetlen vonalának törléséhez használja a „_dd .

10. Utolsó keresési minta-nyilvántartás (“/)

Ahogy a neve is sugallja, ez a regiszter a legutóbbi keresési mintát menti a / vagy ? operátorok. Például, ha keres /Linux , majd használja „/p beilleszti a Linux szót.

A Vim ezt a regisztert használja a navigációhoz n és N kulcsokat a keresés után.

Ez egy írható regiszter, tartalma az :let segítségével módosítható. Például a Linux mentéséhez ebbe a regiszterbe használja a :let @/='Linux'.

Regiszterek és makrók

A Vim-ben a makrók is a megnevezett regiszterekbe (a-z) kerülnek mentésre. Ha nem ismeri a makrókat, akkor a makrók egy regiszterben tárolt beállítási parancsok. Ez a parancskészlet egyszerűen végrehajtható a @ jel, majd a makróregiszter nevének használatával. A makrók lényegében szükségtelenné teszik több parancs ismételt begépelését.

Például makró tárolására egy regiszterben m , Használni fogom qmq . szeretnék költözni a 5 sorokkal lefelé segítségével 5j és törölje a sort a segítségével dd . Használat, qm a makrófelvétel elindításához, majd nyomja meg a gombot 5j és dd . Most a makró rögzítésből való kilépéshez nyomja meg a gombot q . Annak ellenőrzéséhez, hogy a makró tárolva van-e, vagy sem használja, :reg „m vagy :reg m.

A parancsok makróregiszterrel történő végrehajtásához használja a :@m parancs.

Regiszter törlése

Nincs egyszerű megközelítés a regiszter törlésére, mert a legtöbb regisztert nem kell törölni, mert végül felülírják őket. Van azonban néhány technika a regiszterérték törlésére a Vim szerkesztőben.

1. Rögzítsen egy üres makrót a regiszter törléséhez. Például az m regiszter törléséhez használja a qmq .

2. Állítsa be az üres szöveget a gombbal hagyja . Például a m regiszter törléséhez használja a :legyen @m=”.

3. Használja a setreg() függvényt üres karakterlánccal argumentumként. Például a regiszter törléséhez használjuk :call setreg('m', ').

Következtetés

10 különböző regiszter van különböző funkciókkal, ami szinte lehetetlenné teszi az emlékezést. Ha Ön kezdő, akkor azt javaslom, hogy csak három regisztert tartson szem előtt, névtelen regisztert (“”) , számozott regiszterek (0-9) , és elnevezett regiszterek (a-z) .

Ha szöveget szeretne tárolni egy regiszterben, használjon idézetet (“) írja alá a regiszter nevével, majd egy operátori paranccsal (y, d, c) . A szöveg beillesztéséhez egy regiszterből használja a p vagy a P parancsot idézőjel előtt (“) és regisztrálja a nevet.

Biztosan hallott már róla, hogy ha egy feladatot kétszer csinál, akkor automatizálja. A Vim-regiszterek rendkívül hasznosak lehetnek a feladatok automatizálásában és végső soron az élmény javításában. Ha többet szeretne megtudni a Vim-regiszterekről, használja a :help regiszterek parancs.