Što su Vim registri

Sto Su Vim Registri



Vim registri su blokovi za pohranu koji se koriste za pohranu povučenog, izbrisanog teksta i operacija. Ovim se registrima može pristupiti pomoću naziva njihovih oznaka, koji mogu biti broj, slovo ili simbol.

Ako koristite Vim, onda morate koristiti Vim registre. Svaki put kada kopirate/brišete tekst ili izvodite operaciju naredbe, Vim pohranjuje ove informacije u registre. Kada ga zalijepite, Vim dobiva podatke iz registra i uvlači ih u međuspremnik. Drugim riječima, Vim registri djeluju kao međuspremnik za pohranjivanje teksta i povijesti naredbi.

Vim ima ukupno 10 različitih vrsta registara, od kojih svaki služi različitoj svrsi. U ovom vodiču istražit ću Vim registre, njihove vrste i upotrebu.







Bilješka : Za ovaj vodič izvodim naredbe na macOS-u. Vim je aplikacija za više platformi, stoga će se naredbe spomenute u ovom vodiču primjenjivati ​​na sve verzije Vima bez obzira na operativni sustav.



Operateri registra Vim

Registri u Vimu mogu se koristiti operacijama poput kopiranja, brisanja ili mijenjanja. Svaka operacija ima specifične operatore, primjerice za povlačenje teksta koristi se operator y, dok se za brisanje teksta koristi operator d. Popis najčešće korištenih operatera naveden je u nastavku:

yy Povlači (kopira) liniju
dd Briše liniju
cc Briše redak i omogućuje INSERT mod
s Briše znak i pokreće INSERT način za zamjenu
x Briše znak ispod kursora
q Makro; pohranjuje skup naredbi u određeni registar

Za ispis pohranjenog teksta, str ili P koriste se operatori:

str Stavite (zalijepite) tekst iza kursora
P Stavite tekst ispred pokazivača

Ove naredbe također preuzimaju brojanje. Na primjer, za kopiranje 10 redaka koristite 10yy naredba, slično za lijepljenje 10 kopija povučene linije 10p .

Registri popisa

Za popis svih registara koristite :Registar ili :reg naredbu, a za popis određenog registra koristite :reg, gdje je naziv registra (npr. 0-9, a-z).

Na isti način, za popis sadržaja više registara, koristite :reg “ naredba.

Na popisu registara vidjet ćete tri stupca, Naziv, vrsta i sadržaj . Ovdje Vrsta označava vrstu sadržaja, a ne vrstu registra. Tri vrste sadržaja se može mijenjati pomoću registara.

  • l : Linijski
  • c : Karakterno
  • b : Blokovski

Na primjer, ako se sadržaj kopira radnjom po liniji (yy) tada će tip sadržaja biti l , ako je karakterno (Da) onda će tip biti c , a ako se sadržaj kopira blok-wise (ctrl+v i y) onda će tip biti prikazan kao b .

Rad s Vim Registrima

Vim registri se mogu koristiti za pohranjivanje sadržaja pomoću operatora yank, delete i change. Pohranjenom sadržaju može se pristupiti pomoću operatora put.

Spremanje teksta u registar
Kada pritisnete tipku yy tipku za kopiranje retka, on će biti spremljen u zadani registar koji se zove neimenovani registar (“”) . Za pohranjivanje kopiranog retka u određeni registar, citat (“) nakon čega slijedi naziv registra i operator.

'

Na primjer, za kopiranje retka u ime registra S koristiti ' zyy . Slično, ako ste odabrali više redaka u VIZUALNOM načinu rada, koristite “ zy za pohranjivanje linija u z registar.

Pristup Registru
Za pristup Vim registru, citat (“) simbol se koristi uz naziv registra i p/P operater.

'str

Na primjer, ako je ime registra z i za pristup sadržaju ovog IS registra, koristite “ zp u NORMALNOM načinu rada. Međutim, za izvođenje iste operacije u načinu INSERT, koristite ctrl+r z .

Normalni mod Za pohranu sadržaja koristite citat (“) , registrirajte ime (a-z) , i operator (y, yy, d, c ili cc)
str Normalni mod Za lijepljenje sadržaja registra koristite citat (“) , registrirajte ime (a-z) i p/P operater
ctrl+r INSERT Mode Za lijepljenje sadržaja registra koristite ctrl+r i registrirajte ime (a-z)

Imate osnovnu ideju o Vim registrima. Sada ću ići na detaljnu raspravu o svakoj vrsti registra i njegovoj upotrebi.

Vrste Vim registara

U Vimu postoji 10 vrsta registara, dizajniranih za posebne svrhe.

  1. Neimenovani registar (“”)
  2. Numerirani registri (0-9)
  3. Mali registar brisanja (“-)
  4. Imenovani registri (a-z ili A-Z)
  5. Registri samo za čitanje (“:, “., “%)
  6. Registar alternativnih datoteka ('#)
  7. Registar izraza (“=)
  8. Registri odabira i ispuštanja (“*, “+, +~)
  9. Registar crne rupe (“_)
  10. Zadnji registar uzorka pretraživanja (“/)

1. Neimenovani registar (“”)

To je zadani registar Vima za pohranu povučenog ili izbrisanog teksta pomoću y, yy, d, dd, s, ili x naredbe.

The :reg “” naredba se može koristiti za popis sadržaja pohranjenog u neimenovanom registru.

Za lijepljenje neimenovanog sadržaja registra koristite naredbu put (p ili P) naredba. Prema zadanim postavkama, str naredba stavlja pohranu sadržaja u neimenovani registar. Alternativno, podaci pohranjeni u neimenovanom registru također se mogu zalijepiti pomoću naredbe “”p.

U sljedećem primjeru, kopirao sam liniju pomoću yy naredbu i zatim je stavite 5 puta koristeći broj 5 s p (5p).

2. Brojčani registri (0-9)

Numerirani registri koriste se za pohranu posljednjeg povučenog ili izbrisanog teksta.

Registar 0 razlikuje se od registara 1-9 (prikaz, ostalo). . Registar 0 uvijek će pohraniti zadnji povučeni tekst. Na primjer, ako povučem liniju pomoću yy redak će biti pohranjen u oba neimenovani i 0 registri.

Sada, ako izbrišem redak koristeći dd , izbrisana linija će biti pohranjena u neimenovani registar i registar 1 dok će zadnji povučeni tekst ostati u registru 0 . Dakle, posljednjem povučenom tekstu može se pristupiti bilo kada putem registra 0 .

Registri 1-9 (prikaz, ostalo). pohranite posljednji izbrisani tekst. Na primjer, ako obrišem redak pomoću dd naredbom, izbrisani tekst će biti pohranjen iu neimenovanom iu registru 1 . Registar 1 će pohraniti posljednji izbrisani tekst. Ako izbrišem još jedan redak, prethodno izbrisani tekst će se premjestiti u registar 2 , a najnoviji će biti pohranjeni u neimenovani registar 1 . U biti, numerirani registri (1-9) pohraniti povijest izbrisanog teksta.

Razmotrimo numerirani registar na primjeru. Sljedeća Vim tekstualna datoteka sastoji se od 10 redaka; povucimo linija 3 korištenjem yy naredba. Sada provjerimo status registara pomoću naredbe :reg.

Izvučena linija trenutno je u neimenovani i 0 registri. Sada, izbrišite sve retke jedan po jedan pomoću dd naredba. Dakle, zadnje linija 10 bit će u neimenovanom upisniku i upisniku 1. Istovremeno će se ostali izbrisani redovi pohraniti u upisnike 2-9 (prikaz, ostalo). uzlaznim redoslijedom.

Ovim se linijama može pristupiti pomoću str naredba. Na primjer, staviti tekst registra 9 koristiti “9p . Nadalje, ako želite staviti vrijednost registra 9 5 puta, koristiti “95p .

3. Mali registar brisanja (“-)

Ovaj registar pohranjuje izbrisani tekst ako je manji od retka, koristeći naredbe poput x, daw, diw, dab, i opet . Štoviše, ako izbrišete neki tekst pomoću VIZUALNO način odabira, a ako je manji od retka, bit će pohranjen u malom registru brisanja. U Vimu linija znači cijelu rečenicu koja završava točkom.

Na primjer, u sljedećoj datoteci odabrao sam 3 riječi suradnja i podrška iz retka broj 9 i izbrisao ih pomoću d operater. Mali registar za brisanje koristit će se za spremanje ovog odabira budući da nije duži od retka. Koristiti :reg “- naredba za popis sadržaja malog registra brisanja.

4. Imenovani registri (a-z ili A-Z)

Imenovani registri koriste se za pohranjivanje teksta specifičnog za korisnika. Dakle, ako želite pohraniti tekst u prilagođeni registar, onda 26 registri iz a do S može se koristiti.

Na primjer, povlačim redak u sljedećoj datoteci koristeći ' zyy , tekst će biti pohranjen u S registrirajte kao što je prikazano na sljedećoj slici.

Registar imenovan malim i velikim slovima ima različite svrhe. Na primjer, ako je tekst spremljen u registar malih slova, za zamjenu teksta tog registra koristit će se registar malim slovima. Međutim, za dodavanje teksta u registar malih slova koristit će se registar velikih slova s ​​istim imenom.

Shvatimo to kroz primjer. Iz sljedeće datoteke pohranio sam redak 8 u registar x koristeći ' xyy .

Da bih dodao tekst nakon ovog retka, prvo ću odabrati nekoliko riječi u VIZUALNOM načinu rada. Za dodavanje odabranog teksta upotrijebit ću “Xy naredba.

Za zamjenu teksta ponovno ću koristiti ' xyy .

5. Registri samo za čitanje (., %, 🙂

Vim ima 3 registra samo za čitanje koji pohranjuju umetnuto tekst, naziv datoteke, i posljednji pogubljeni naredba.

. Pohranjuje zadnji umetnuti tekst
% Pohranjuje naziv datoteke
: Pohranjuje zadnju izvršenu naredbu

Ovi se registri, kao što je predloženo u nazivu, ne mogu mijenjati, ali im se može lako pristupiti.

Za postavljanje posljednjeg umetnutog teksta koristite “.str naredba.

Za ispis naziva datoteke koristite “%p naredba.

Za ispis posljednje naredbe upotrijebite “:str.

The @: naredba se može koristiti za ponavljanje prethodne naredbe u Vimu. U sljedećem primjeru, izbrisao sam prva 3 retka, nakon pritiska @: , brišu se još 3 retka, stoga se ponavlja prethodna naredba.

6. Alternativni registar međuspremnika ('#)

Alternativni međuspremnik je datoteka koja se otvara u trenutnom međuspremniku. Registar “# pohranjuje naziv datoteke u međuspremniku u trenutnom međuspremniku. Otvorimo drugu datoteku u istom međuspremniku pomoću :e ~/.vimrc naredba, imajte na umu da je trenutni naziv datoteke datoteka.txt .

Za zatvaranje otvorenog međuspremnika koristite :bbrisati ili :bwipeout naredba. Sada je moguće vidjeti alternativni naziv datoteke spremljen u “# Registar.

7. Registar izraza (“=)

Registar izraza je jedinstveni registar koji se ne koristi za pohranu teksta, umjesto toga pohranjuje izraz. Na primjer, ako imate nekoliko brojeva u datoteci, za zbrajanje tih brojeva koristit će se Vim izrazi.

Ovom se registru može pristupiti pomoću “= u NORMALNOM načinu rada i ctrl+r = u načinu INSERT.

Na primjer, da biste pronašli razliku između dva broja, pritisnite “= i znak jednakosti pojavit će se na statusnoj traci; sada upišite oba broja sa znakom minus (-) i pritisnite Unesi ključ. Sada, za ispis razlike, pritisnite str ili koristite :staviti naredba.

Za pristup vrijednosti registra izraza, koristite :reg “= naredba.

Slično, da biste dobili apsolutnu vrijednost dvaju brojeva, upotrijebite =abs(vrijednost1-vrijednost2) izraz.

Na isti način, za pohranjivanje izlaza sistemske naredbe, može se koristiti ovaj (izrazni) registar. Na primjer, ako želim pročitati sadržaj datoteke koju ću koristiti =system('cat ') , pritiskom na tipku Return sadržaj izlaza će biti pohranjen. Koristiti str ili :staviti naredba, sadržaj izlaza može se smjestiti u međuspremnik.

Postoji niz izraza koji se mogu koristiti u Vimu. Da biste saznali više o Vim izrazima, koristite :pomoć izraz i :pomoć sintaksa izraza naredbe.

8. Registri odabira i ispuštanja (“*, “+, “~)

Vim ima dva registra odabira “* (navodnik) i “+ (quoteplus) koji se koriste za pohranu teksta iz GUI-a. Ovi se registri koriste za kopiranje teksta iz vanjskih programa kao što su preglednici ili bilo koji drugi programi za obradu teksta.

Na primjer, ako kopirate odabir teksta iz preglednika, pomoću ctrl+c ili cmd+c bit će pohranjen u “* Registar. Međutim, ne možete koristiti str ili :staviti da zalijepite ovaj tekst u Vim uređivač. Koristiti “*str za stavljanje teksta u Vim editor koji je kopiran iz vanjskih aplikacija.

Važno je napomenuti da oboje “+ i “* registri su spojeni na međuspremnik, dakle oba (“*p, “+p) može se koristiti za lijepljenje teksta u Vim editor. Slično, da biste stavili tekst iz Vima, koristite “*yy da biste povukli redak i zatim ga zalijepili u bilo koju GUI aplikaciju, koristite ctrl+v ili cmd+v.

Bitno je napomenuti da ako oba registra (* & +) rade istu stvar, koja je onda svrha? Vim ima dva registra odabira “*, “+ radi isti posao i to zbog prozorskog sustava X11. X11 nudi dvije metode za pohranjivanje teksta, jedna je selekcije a drugi je rezni odbojnici . Odabiri su u vlasništvu aplikacije i gube se nakon zatvaranja aplikacije, dok izrezani međuspremnici čuvaju tekst pohranjen na X-poslužitelju. Za ove dvije vrste pohrane koriste se registri “* i “+”. Da biste saznali više o tome, koristite :pomoć x11-odabir naredba.

Dalje, ispusti registar “~ koji se koristi za pohranu teksta iz posljednje operacije povlačenja i ispuštanja. Na primjer, ako ispustite odabir teksta iz vanjske aplikacije, on će biti pohranjen u registar ispuštanja.

Ako smatrate da je lijepljenje iz vanjske aplikacije pomoću tri različita ključa teško, tada možete mapirati odabir koji će biti pohranjen u neimenovanom registru.
Otvori vimrc datoteka, mjesto set međuspremnik=neimenovano u nju i spremite datoteku. Sada, kad god kopirate iz vanjske aplikacije, to se lako može zalijepiti pomoću :staviti naredba ili tipka p.

Bilješka : Drop registar (~) bit će dostupan samo ako je Vim kompajliran s +dnd. Trenutno je dostupan samo za GTK GUI.

9. Registar crne rupe (“_)

Ako izvršite operaciju kopiranja ili brisanja u uređivaču Vim, on prema zadanim postavkama pohranjuje tekst u registre. Ako želite izbrisati tekst bez pohranjivanja u registar, koristite registar crne rupe. Ovaj registar neće modificirati neimenovani registar (“”) pri brisanju teksta.

Na primjer, ako želim izbrisati sve retke bez pohranjivanja u neimenovani registar, tada ću prvo odabrati sve retke koristeći ggVG a zatim pritisnite “_d tipke za brisanje svih redaka. Slično, za brisanje jedne crte do crne rupe, koristite '_dd .

10. Registar obrasca zadnjeg pretraživanja (“/)

Kao što ime sugerira, ovaj registar sprema zadnji obrazac pretraživanja pomoću / ili ? operateri. Na primjer, ako tražite /Linux , zatim pomoću “/str zalijepit će riječ Linux.

Vim koristi ovaj registar za navigaciju s n i N ključeve nakon pretrage.

To je registar koji se može pisati, njegov sadržaj se može mijenjati pomoću :let. Na primjer, da biste spremili Linux u ovaj registar, koristite :let @/='Linux'.

Registri i makronaredbe

U Vimu se makronaredbe također spremaju u imenovane registre (a-z). Ako niste svjesni makronaredbi, onda su makronaredbe postavljene naredbe pohranjene u registru. Ovaj skup naredbi može se izvršiti jednostavnim korištenjem znaka @ nakon kojeg slijedi naziv makro registra. U suštini, makronaredbe eliminiraju potrebu za ponavljanim upisivanjem više naredbi.

Na primjer, za pohranjivanje makronaredbe u registar m , Koristiti ću qmq . Želim se preseliti u 5 linije prema dolje pomoću 5j i izbrišite liniju pomoću dd . Koristiti, qm za početak snimanja makroa, a zatim pritisnite 5j i dd . Sada, za prekid makro snimanja, pritisnite q . Da biste provjerili je li makro pohranjen ili se ne koristi, :reg “m ili :reg m.

Za izvršavanje ovih naredbi s makro registrom, koristite :@m naredba.

Brisanje registra

Ne postoji jednostavan pristup brisanju registra jer većinu registara nije potrebno brisati jer će na kraju biti prebrisani. Međutim, postoji nekoliko tehnika za brisanje vrijednosti registra u Vim editoru.

1. Snimite prazan makro za brisanje registra. Na primjer, za brisanje registra m, koristite qmq .

2. Postavite prazan tekst pomoću neka . Na primjer, za brisanje registra m, koristite :neka @m=”.

3. Koristite setreg() funkcija s praznim nizom kao argumentom. Na primjer, za brisanje registra m koristite :poziv setreg('m', ”).

Zaključak

Postoji 10 različitih registara s različitim funkcionalnostima, što ga čini gotovo nemogućim za pamćenje. Ako ste početnik, preporučujem da imate na umu samo tri registra, neimenovani registar (“”) , numerirani registri (0-9) , i imenovani registri (a-z) .

Za pohranu teksta u registar upotrijebite citat (“) potpišite se imenom registra nakon čega slijedi naredba operatera (y, d, c) . Za lijepljenje teksta iz registra koristite p ili P naredbe ispred kojih stavite navodnike (“) i registrirajte ime.

Sigurno ste čuli za to, ako zadatak radite više od dva puta, automatizirajte ga. Vim registri mogu biti iznimno korisni za automatizaciju zadataka i u konačnici poboljšati iskustvo. Da biste saznali više o Vim registrima, koristite :help registri naredba.