Kas ir Vim reģistri

Kas Ir Vim Registri



Vim reģistri ir krātuves bloki, ko izmanto, lai saglabātu izvilktu, dzēstu tekstu un darbības. Šiem reģistriem var piekļūt, izmantojot to tagu nosaukumus, kas var būt cipars, burts vai simbols.

Ja izmantojat Vim, jums ir jāizmanto Vim reģistri. Katru reizi, kad kopējat/dzēšat tekstu vai veicat komandas darbību, Vim šo informāciju saglabā reģistros. Kad to ielīmējat, Vim iegūst datus no reģistra un ievelk tos buferī. Citiem vārdiem sakot, Vim reģistri darbojas kā starpliktuves teksta un komandu vēstures glabāšanai.

Vim kopumā ir 10 atšķirīgi reģistru veidi, no kuriem katrs kalpo noteiktam mērķim. Šajā apmācībā es izpētīšu Vim reģistrus, to veidus un lietojumu.







Piezīme : Šajā apmācībā es izpildu komandas operētājsistēmā macOS. Vim ir vairāku platformu lietojumprogramma, tāpēc šajā rokasgrāmatā minētās komandas attieksies uz visām Vim versijām neatkarīgi no operētājsistēmas.



Vim reģistra operatori

Vim reģistrus var izmantot, izmantojot tādas darbības kā kopēšana, dzēšana vai mainīšana. Katrai darbībai ir noteikti operatori, piemēram, lai izvilktu tekstu, tiek izmantots y operators, bet teksta dzēšanai tiek izmantots operators d. Tālāk ir sniegts biežāk nodarbināto operatoru saraksts:

yy Jank (kopē) līniju
dd Dzēš rindu
cc Dzēš rindu un iespējo INSERT režīmu
s Izdzēš rakstzīmi un sāk INSERT režīmu, lai to aizstātu
x Dzēš rakstzīmi zem kursora
q Makro; saglabā komandu kopu noteiktā reģistrā

Lai izdrukātu saglabāto tekstu, lpp vai P Tiek izmantoti operatori:

lpp Ievietojiet (ielīmējiet) tekstu aiz kursora
P Novietojiet tekstu pirms kursora

Šīs komandas arī ņem vērā. Piemēram, lai kopētu 10 rindiņas, izmantojiet 10 g komandu, līdzīgi kā ielīmēt 10 eksemplārus no izvilktas līnijas lietojuma 10p .

Sarakstu reģistri

Lai uzskaitītu visus reģistrus, izmantojiet :reģistrēties vai :reg komandu un, lai uzskaitītu konkrēto reģistru, izmantojiet :reg, kur ir reģistra nosaukums (piemēram, 0–9, a–z).

Tādā pašā veidā, lai uzskaitītu vairāku reģistru saturu, izmantojiet :reg “ komandu.

Reģistru sarakstā redzēsit trīs kolonnas, Nosaukums, veids un saturs . Šeit tips nozīmē satura tipu, nevis reģistra veidu. Trīs veidi saturu var mainīt ar reģistriem.

  • l : Līnijas ziņā
  • c : pēc rakstura
  • b : bloku ziņā

Piemēram, ja saturs tiek kopēts, izmantojot rindiņas darbību (yy) tad satura veids būs l , ja tas ir rakstura ziņā (Jā) tad tips būs c , un ja saturs ir kopēts bloku veidā (Ctrl+v un y) tad veids tiks parādīts kā b .

Darbs ar Vim Registers

Vim reģistrus var izmantot, lai saglabātu saturu, izmantojot rāvienu, dzēšanu un operatoru mainīšanu. Saglabātajam saturam var piekļūt, izmantojot put operatorus.

Teksta saglabāšana reģistrā
Nospiežot pogu yy taustiņu, lai kopētu līniju, tā tiks saglabāta noklusējuma reģistrā, ko sauc par nenosaukto reģistru (“”) . Lai saglabātu kopēto rindu noteiktā reģistrā, citāts (“) tiek izmantots reģistra nosaukums un operators.

'

Piemēram, lai kopētu rindu uz reģistra nosaukumu Ar izmantot ' zyy . Līdzīgi, ja esat izvēlējies vairākas rindiņas VISUAL režīmā, izmantojiet “ zy lai saglabātu rindas z reģistrā.

Piekļuve Reģistram
Lai piekļūtu Vim reģistram, citāts (“) simbols tiek lietots ar reģistra nosaukumu un p/P operators.

'lpp

Piemēram, ja reģistra nosaukums ir z un lai piekļūtu šī IS reģistra saturam, izmantojiet “ zp režīmā NORMAL. Tomēr, lai veiktu to pašu darbību INSERT režīmā, izmantojiet ctrl+r z .

NORMĀLAIS režīms Lai saglabātu saturu, izmantojiet citātu (“) , reģistrēt vārdu (a–z) , un operators (y, yy, d, c vai cc)
lpp NORMĀLAIS režīms Lai ielīmētu reģistra saturu, izmantojiet citātu (“) , reģistrēt vārdu (a–z) un p/P operators
ctrl+r INSERT režīms Lai ielīmētu reģistra saturu, izmantojiet ctrl+r un reģistrēt vārdu (a–z)

Jums ir Vim reģistru pamatideja. Tagad es pievērsīšos padziļinātai diskusijai par katru reģistra veidu un tā izmantošanu.

Vim reģistru veidi

Vietnē Vim ir 10 veidu reģistri, kas paredzēti īpašiem mērķiem.

  1. Nenosaukts reģistrs (“”)
  2. Numurēti reģistri (0-9)
  3. Mazs dzēšanas reģistrs (“-)
  4. Nosauktie reģistri (a-z vai A-Z)
  5. Tikai lasāmi reģistri (“:, “., “%)
  6. Alternatīvais failu reģistrs (“#)
  7. Izteiksmju reģistrs (“=)
  8. Atlases un nomešanas reģistri (“*, “+, +~)
  9. Melno caurumu reģistrs (“_)
  10. Pēdējo meklēšanas modeļu reģistrs (“/)

1. Nenosaukts reģistrs (“”)

Tas ir Vim noklusējuma reģistrs, lai saglabātu izvilktu vai izdzēstu tekstu y, yy, d, dd, s, vai x komandas.

The :reg “” komandu var izmantot, lai uzskaitītu nenosauktajā reģistrā saglabāto saturu.

Lai ielīmētu nenosaukto reģistra saturu, izmantojiet komandu put (p vai P) komandu. Pēc noklusējuma lpp komanda ievieto satura krātuves nenosauktajā reģistrā. Alternatīvi, beznosaukuma reģistrā saglabātos datus var ielīmēt arī, izmantojot komandu “”p.

Nākamajā piemērā esmu nokopējis rindu, izmantojot yy komandu un pēc tam ievietojiet to 5 reizes, izmantojot count 5 ar p (5p).

2. Numurētie reģistri (0–9)

Numurētie reģistri tiek izmantoti, lai saglabātu pēdējo izvilkto vai dzēsto tekstu.

Reģistrs 0 atšķiras no reģistriem 1-9 . Reģistrs 0 vienmēr saglabās pēdējo izvilkto tekstu. Piemēram, ja es parautu līniju, izmantojot yy komandu, rinda tiks saglabāta gan nenosaukts un 0 reģistros.

Tagad, ja es izdzēšu rindu, izmantojot dd , dzēstā rinda tiks saglabāta nenosauktajā reģistrā un reģistrā 1 kamēr pēdējais izvilktais teksts paliks reģistrā 0 . Tātad, pēdējam izvilktajam tekstam var piekļūt jebkurā laikā, izmantojot reģistru 0 .

Reģistri 1-9 saglabāt pēdējo dzēsto tekstu. Piemēram, ja es izdzēšu rindu, izmantojot dd komandu, izdzēstais teksts tiks saglabāts gan nenosauktajā, gan reģistrā 1 . 1. reģistrā tiks saglabāts jaunākais izdzēstais teksts. Ja izdzēšu citu rindiņu, iepriekš dzēstais teksts tiks pārvietots uz reģistrāciju 2 , un jaunākais tiks saglabāts nenosauktajā un reģistrā 1 . Būtībā numurētie reģistri (1-9) saglabāt izdzēstā teksta vēsturi.

Sapratīsim numurēto reģistru ar piemēru. Šis Vim teksta fails sastāv no 10 rindiņām; rausim 3. rinda izmantojot yy komandu. Tagad pārbaudīsim reģistru statusu, izmantojot komandu :reg.

Izvilktā līnija pašlaik atrodas nenosaukts un 0 reģistros. Tagad izdzēsīsim visas rindas pa vienai, izmantojot dd komandu. Tātad, pēdējais 10. rinda atradīsies nenosauktajā reģistrā un reģistrā 1. Vienlaikus reģistros tiks saglabātas arī citas dzēstās rindas 2-9 augošā secībā.

Šīm līnijām var piekļūt, izmantojot lpp komandu. Piemēram, lai ievietotu reģistra tekstu 9 izmantot “9p . Turklāt, ja vēlaties ievietot reģistra vērtību 9 5 reizes, izmantojiet “95p .

3. Mazais dzēšanas reģistrs (“-)

Šajā reģistrā tiek saglabāts izdzēstais teksts, ja tas ir mazāks par rindiņu, izmantojot tādas komandas kā x, daw, diw, dab, un atkal . Turklāt, ja izdzēšat kādu tekstu, izmantojot VIZUĀLS atlases režīmā, un, ja tas ir mazāks par rindiņu, tad tas tiks saglabāts mazajā dzēšanas reģistrā. Vārdā Vim rinda nozīmē pilnu teikumu, kas beidzas ar punktu.

Piemēram, nākamajā failā es atlasīju 3 vārdus sadarbību un atbalstu no 9. rindas un izdzēsa tos, izmantojot d operators. Šīs atlases saglabāšanai tiks izmantots mazais dzēšanas reģistrs, jo tas nav garāks par rindiņu. Izmantojiet :reg “- komandu, lai uzskaitītu mazā dzēšanas reģistra saturu.

4. Nosauktie reģistri (a–z vai A–Z)

Nosauktie reģistri tiek izmantoti, lai saglabātu lietotājam specifisku tekstu. Tātad, ja vēlaties saglabāt tekstu pielāgotā reģistrā, tad 26 reģistrē no a uz Ar Var izmantot.

Piemēram, es izvelku rindiņu šādā failā, izmantojot “ zyy , teksts tiks saglabāts mapē Ar reģistrēties, kā parādīts nākamajā attēlā.

Mazajiem un lielajiem burtiem nosauktajiem reģistriem ir dažādi mērķi. Piemēram, ja teksts ir saglabāts mazo burtu reģistrā, lai aizstātu šī reģistra tekstu, tiks izmantots mazo burtu reģistrs. Tomēr, lai pievienotu tekstu mazo burtu reģistram, tiks izmantots lielo burtu reģistrs ar tādu pašu nosaukumu.

Izpratīsim to, izmantojot piemēru. No šī faila es saglabāju reģistrā 8. rindiņu x izmantojot ' xyy .

Lai pēc šīs rindas pievienotu tekstu, vispirms VIZUAL režīmā atlasīšu dažus vārdus. Lai pievienotu atlasīto tekstu, es izmantošu 'Xy komandu.

Lai aizstātu tekstu, es atkal izmantošu ' xyy .

5. Tikai lasāmi reģistri (., %, 🙂

Vim ir 3 tikai lasāmi reģistri, kas glabā ievietoto teksts, faila nosaukums, un pēdējo reizi izpildīts komandu.

. Saglabā pēdējo ievietoto tekstu
% Saglabā faila nosaukumu
: Saglabā pēdējo izpildīto komandu

Šos reģistrus, kā ieteikts nosaukumā, nevar mainīt, taču tiem var viegli piekļūt.

Lai ievietotu pēdējo ievietoto tekstu, izmantojiet “.lpp komandu.

Lai izdrukātu faila nosaukumu, izmantojiet “%p komandu.

Lai izdrukātu pēdējo komandu, izmantojiet “:p.

The @: komandu var izmantot, lai atkārtotu iepriekšējo komandu programmā Vim. Nākamajā piemērā, nospiežot, esmu izdzēsis pirmās 3 rindiņas @: , tiek dzēstas vēl 3 rindas, tādējādi atkārtojot iepriekšējo komandu.

6. Alternatīvais bufera reģistrs (“#”)

Alternatīvais buferis ir fails, kas tiek atvērts pašreizējā buferī. Reģistrā “#” tiek saglabāts buferizētā faila nosaukums pašreizējā buferī. Atvērsim citu failu tajā pašā buferī, izmantojot :e ~/.vimrc komandu, ņemiet vērā, ka pašreizējais faila nosaukums ir fails.txt .

Lai aizvērtu atvērto buferi, izmantojiet :bdelete vai :bwipeout komandu. Tagad ir iespējams redzēt alternatīvo faila nosaukumu, kas saglabāts mapē “# reģistrēties.

7. Izteiksmju reģistrs (“=)

Izteiksmes reģistrs ir unikāls reģistrs, kas netiek izmantots teksta glabāšanai, tā vietā tas saglabā izteiksmi. Piemēram, ja failā ir daži skaitļi, lai summētu šos skaitļus, tiks izmantotas Vim izteiksmes.

Šim reģistram var piekļūt, izmantojot “= režīmā NORMAL, un ctrl+r = INSERT režīmā.

Piemēram, lai atrastu atšķirību starp diviem skaitļiem, nospiediet “=, un statusa joslā parādīsies vienādības zīme; tagad ierakstiet tajos abus ciparus ar mīnusa zīmi (-) un nospiediet Ievadiet taustiņu. Tagad, lai izdrukātu atšķirību, nospiediet lpp vai izmantojiet :put komandu.

Lai piekļūtu izteiksmju reģistra vērtībai, izmantojiet :reg “= komandu.

Līdzīgi, lai iegūtu divu skaitļu absolūto vērtību, izmantojiet =abs(vērtība1-vērtība2) izteiksme.

Tādā pašā veidā, lai saglabātu sistēmas komandas izvadi, var izmantot šo (izteiksmju) reģistru. Piemēram, ja es vēlos lasīt faila saturu, es izmantošu =sistēma('kaķis ') , nospiežot taustiņu Return, izvades saturs tiks saglabāts. Izmantojot lpp vai :put komandu, izvades saturu var ievietot buferī.

Ir virkne izteicienu, ko var izmantot Vim. Lai uzzinātu vairāk par Vim izteiksmēm, izmantojiet :palīdzības izteiksme un :palīdzības izteiksmes sintakse komandas.

8. Atlases un nomešanas reģistri (“*, “+, “~)

Vim ir divi atlases reģistri “* (pēdiņa zvaigzne) un “+ (quoteplus), ko izmanto, lai saglabātu tekstu no GUI. Šos reģistrus izmanto, lai kopētu tekstu no ārējām programmām, piemēram, pārlūkprogrammām vai jebkura cita tekstapstrādes programmas.

Piemēram, ja kopējat teksta atlasi no pārlūkprogrammas, izmantojot ctrl+c vai cmd+c tas tiks saglabāts “* reģistrēties. Tomēr jūs nevarat izmantot lpp vai :put lai ielīmētu šo tekstu Vim redaktorā. Izmantot “*lpp lai Vim redaktorā ievietotu tekstu, kas tiek kopēts no ārējām lietojumprogrammām.

Ir svarīgi atzīmēt, ka abi “+ un “* reģistri ir savienoti ar starpliktuvi, tāpēc abi (“*p, “+p) var izmantot, lai ielīmētu tekstu Vim redaktorā. Līdzīgi, lai ievietotu tekstu no Vim, izmantojiet “*yy lai izvilktu līniju un pēc tam ielīmētu to jebkurā GUI lietojumprogrammā, izmantojiet ctrl+v vai cmd+v.

Ir būtiski atzīmēt, ka, ja abi reģistros (* un +) darāt to pašu, tad kāda jēga? Vim ir divi atlases reģistri “*, “+ dara to pašu darbu, un tas ir X11 logu sistēmas dēļ. X11 nodrošina divas teksta saglabāšanas metodes, viena ir izlases un otrs ir griešanas buferi . Atlases pieder lietojumprogrammai un tiek zaudētas, aizverot lietojumprogrammu, savukārt izgrieztie buferi saglabā tekstu, kas tiek glabāts X serverī. Šiem diviem uzglabāšanas veidiem tiek izmantoti reģistri “*” un “+”. Lai uzzinātu vairāk par to, izmantojiet :help x11-selection komandu.

Tālāk, pilienu reģistrs “~ ko izmanto, lai saglabātu tekstu no pēdējās vilkšanas un nomešanas darbības. Piemēram, ja nometat teksta atlasi no ārējas lietojumprogrammas, tā tiks saglabāta nolaižamajā reģistrā.

Ja jums šķiet grūti ielīmēt no ārējās lietojumprogrammas, izmantojot trīs dažādus taustiņus, varat kartēt atlasi, kas jāsaglabā nenosauktajā reģistrā.
Atveriet vimrc fails, vietu komplekts starpliktuves = nenosaukts tajā un saglabājiet failu. Tagad, kad kopējat no ārējas lietojumprogrammas, to var viegli ielīmēt, izmantojot :put komandu vai p taustiņu.

Piezīme : pilienu reģistrs (~) būs pieejams tikai tad, ja Vim ir kompilēts ar +dnd. Pašlaik tas ir pieejams tikai GTK GUI.

9. Melno caurumu reģistrs (“_)

Ja veicat kopēšanas vai dzēšanas darbību Vim redaktorā, pēc noklusējuma tas saglabā tekstu reģistros. Ja vēlaties dzēst tekstu, nesaglabājot to reģistrā, izmantojiet melno caurumu reģistru. Šis reģistrs nemainīs nenosaukto reģistru (“”), dzēšot tekstu.

Piemēram, ja vēlos dzēst visas rindas, nesaglabājot tās nenosauktajā reģistrā, tad vispirms visas rindas atlasīšu, izmantojot ggVG un pēc tam nospiediet “_d taustiņus, lai izdzēstu visas rindas. Līdzīgi, lai dzēstu vienu rindiņu melnajam caurumam, izmantojiet “_dd .

10. Pēdējo meklēšanas modeļu reģistrs (“/)

Kā norāda nosaukums, šis reģistrs saglabā pēdējo meklēšanas modeli, izmantojot / vai ? operatoriem. Piemēram, ja jūs meklējat /Linux , pēc tam izmantojot “/lpp ielīmēs Linux vārdu.

Vim izmanto šo reģistru navigācijai ar n un N atslēgas pēc meklēšanas.

Tas ir ierakstāms reģistrs, tā saturu var mainīt, izmantojot :let. Piemēram, lai saglabātu Linux šajā reģistrā, izmantojiet :let @/='Linux'.

Reģistri un makro

Programmā Vim makro tiek saglabāti arī nosauktajos reģistros (a-z). Ja neesat informēts par makro, tad makro ir iestatītas komandas, kas tiek saglabātas reģistrā. Šo komandu kopu var izpildīt, vienkārši izmantojot zīmi @, kam seko makro reģistra nosaukums. Būtībā makro novērš nepieciešamību atkārtoti ievadīt vairākas komandas.

Piemēram, lai saglabātu makro reģistrā m , izmantošu qmq . Es gribu pārcelties uz 5 līnijas uz leju, izmantojot 5j un izdzēsiet rindu, izmantojot dd . Lietot, kv.m , lai sāktu makro ierakstīšanu, un pēc tam nospiediet 5j un dd . Tagad, lai beigtu makro ierakstīšanu, nospiediet q . Lai pārbaudītu, vai makro ir saglabāts vai netiek izmantots, :reg “m vai :reg m.

Lai izpildītu šīs komandas ar makro reģistru, izmantojiet :@m komandu.

Reģistra notīrīšana

Reģistra dzēšanai nav vienkāršas pieejas, jo lielākā daļa reģistru nav jādzēš, jo tie galu galā tiks pārrakstīti. Tomēr ir daži paņēmieni, kā Vim redaktorā notīrīt reģistra vērtību.

1. Ierakstiet tukšu makro, lai notīrītu reģistru. Piemēram, lai notīrītu reģistru m, izmantojiet qmq .

2. Iestatiet tukšu tekstu, izmantojot ļaut . Piemēram, lai notīrītu reģistru m, izmantojiet :let @m=”.

3. Izmantojiet setreg() funkcija ar tukšu virkni kā argumentu. Piemēram, lai notīrītu reģistra m izmantošanu :call setreg('m', ').

Secinājums

Ir 10 dažādi reģistri ar dažādām funkcijām, kas padara to gandrīz neiespējamu atcerēties. Ja esat iesācējs, es ieteiktu paturēt prātā tikai trīs reģistrus, nenosauktu reģistru (“”) , numurēti reģistri (0-9) , un nosauktos reģistrus (a–z) .

Lai saglabātu tekstu reģistrā, izmantojiet citātu (“) paraksta ar reģistra nosaukumu, kam seko operatora komanda (y, d, c) . Lai ielīmētu tekstu no reģistra, izmantojiet komandas p vai P, pirms kuras ir pēdiņa (“) un reģistrēt vārdu.

Jūs noteikti esat dzirdējuši par to, ja veicat uzdevumu vairāk nekā divas reizes, tad automatizējiet to. Vim reģistri var būt ļoti noderīgi, lai automatizētu uzdevumus un galu galā uzlabotu pieredzi. Lai uzzinātu vairāk par Vim reģistriem, izmantojiet :palīdzības reģistri komandu.