Què són els registres Vim

Que Son Els Registres Vim



Els registres Vim són blocs d'emmagatzematge que s'utilitzen per emmagatzemar text i operacions extretes, suprimides. Es pot accedir a aquests registres mitjançant els seus noms d'etiquetes, que poden ser un número, una lletra o un símbol.

Si utilitzeu Vim, haureu d'utilitzar els registres de Vim. Cada vegada que copieu/suprimiu text o realitzeu una operació d'ordres, Vim emmagatzema aquesta informació als registres. Quan l'enganxeu, Vim obté les dades del registre i les dibuixa a la memòria intermèdia. En altres paraules, els registres Vim actuen com un porta-retalls per emmagatzemar el text i l'historial d'ordres.

Vim té un total de 10 tipus diferents de registres, cadascun dels quals té un propòsit diferent. En aquest tutorial, exploraré els registres Vim, els seus tipus i l'ús.







Nota : Per a aquest tutorial, estic realitzant ordres a macOS. Vim és una aplicació multiplataforma, per tant, les ordres esmentades en aquesta guia s'aplicaran a totes les versions de Vim independentment del sistema operatiu.



Operadors de registre Vim

Els registres de Vim es poden utilitzar mitjançant operacions com copiar, esborrar o canviar. Cada operació té operadors específics, com ara per treure text, s'utilitza l'operador y mentre que per esborrar text, s'utilitza l'operador d. A continuació es mostra una llista d'operadors habituals:

yy Tira (copia) la línia
dd Esborra la línia
cc Esborra la línia i habilita el mode INSERT
s Esborra el caràcter i inicia el mode INSERT per substituir-lo
x Esborra el caràcter que hi ha sota el cursor
q Macro; emmagatzema el conjunt d'ordres en un registre específic

Per imprimir el text emmagatzemat, pàg o P S'utilitzen operadors:

pàg Posa (enganxa) el text després del cursor
P Posa el text abans del cursor

Aquestes ordres també prenen el recompte. Per exemple, per copiar 10 línies, utilitzeu 10aa ordre, de la mateixa manera per enganxar les 10 còpies d'una línia d'ús 10p .

Registres de llistats

Per llistar tots els registres, utilitzeu :registrar o :reg i per llistar el registre específic utilitzeu l' :reg ', on és el nom del registre (p. ex., 0-9, a-z).

De la mateixa manera, per enumerar el contingut de diversos registres, utilitzeu :reg “ comandament.

A la llista de registre, veureu tres columnes, Nom, tipus i contingut . Aquí, el tipus significa el tipus de contingut, no el tipus de registre. Tres tipus de contingut es pot modificar amb registres.

  • l : En línia
  • c : En termes de caràcter
  • b : Per blocs

Per exemple, si el contingut es copia mitjançant una operació en línia (ai) llavors el tipus de contingut serà l , si es tracta de caràcters (sí) llavors el tipus serà c , i si el contingut es copia per blocs (ctrl+v i y) aleshores el tipus es mostrarà com b .

Treballant amb els registres de Vim

Els registres Vim es poden utilitzar per emmagatzemar el contingut mitjançant els operadors yank, delete i change. Es pot accedir al contingut emmagatzemat mitjançant els operadors put.

Desar el text en un registre
Quan premeu yy per copiar una línia, es desarà al registre predeterminat anomenat registre sense nom (“”) . Per emmagatzemar la línia copiada en un registre específic, el pressupost (“) s'utilitzen seguits del nom del registre i de l'operador.

'

Per exemple, per copiar una línia a un nom de registre Amb utilitza ' zyy . De la mateixa manera, si heu seleccionat diverses línies en el mode VISUAL, utilitzeu “ zy per emmagatzemar les línies al registre z.

Accés al Registre
Per accedir al registre Vim, el pressupost (“) s'utilitza el símbol amb el nom del registre i p/p operador.

'p

Per exemple, si el nom del registre és z i per accedir al contingut d'aquest registre, utilitzeu “ zp en el mode NORMAL. Tanmateix, per realitzar la mateixa operació en el mode INSERT, utilitzeu ctrl+r z .

Mode NORMAL Per emmagatzemar el contingut, utilitzeu la cotització (“) , nom de registre (a-z) , i l'operador (y, yy, d, c o cc)
p Mode NORMAL Per enganxar el contingut d'un registre, utilitzeu una cita (“) , nom de registre (a-z) i p/p operador
ctrl+r Mode INSERT Per enganxar el contingut d'un registre, feu servir ctrl+r i registre el nom (a-z)

Tens la idea bàsica dels registres Vim. Ara, aniré a una discussió en profunditat de cada tipus de registre i el seu ús.

Tipus de registres Vim

A Vim, hi ha 10 tipus de registres, dissenyats per a finalitats específiques.

  1. Registre sense nom ('')
  2. Registres numerats (0-9)
  3. Suprimeix el registre petit ('-)
  4. Registres amb nom (a-z o A-Z)
  5. Registres de només lectura (':, '., '%)
  6. Registre alternatiu de fitxers ('#)
  7. Registre d'expressió ('=)
  8. Registres de selecció i eliminació ('*, '+, +~)
  9. Registre de forats negres ('_)
  10. Últim registre de patró de cerca (“/)

1. Registre sense nom ('')

És el registre predeterminat de Vim per emmagatzemar el text retirat o suprimit y, aa, d, dd, s, o x ordres.

El :reg '' L'ordre es pot utilitzar per llistar el contingut emmagatzemat al registre sense nom.

Per enganxar el contingut del registre sense nom, utilitzeu l'ordre put (p o P) comandament. Per defecte, el pàg L'ordre posa els magatzems de contingut al registre sense nom. Alternativament, les dades emmagatzemades al registre sense nom també es poden enganxar mitjançant l'ordre ''p.

A l'exemple següent, he copiat una línia amb yy comanda i després poseu-lo 5 vegades utilitzant el recompte 5 amb p (5p).

2. Registres numerats (0-9)

Els registres numerats s'utilitzen per emmagatzemar l'últim text retirat o eliminat.

El registre 0 és diferent dels registres 1-9 . El registre 0 sempre emmagatzemarà el darrer text agafat. Per exemple, si estiro una línia utilitzant yy comanda, la línia s'emmagatzemarà tant a l' sense nom i la 0 registres.

Ara, si suprimeixo una línia utilitzant dd , la línia suprimida s'emmagatzemarà al registre i registre sense nom 1 mentre que l'últim text agafat romandrà en registre 0 . Per tant, es pot accedir al darrer text agafat en qualsevol moment mitjançant el registre 0 .

Els registres 1-9 emmagatzemar l'últim text eliminat. Per exemple, si suprimeixo una línia amb el botó dd comanda, el text suprimit s'emmagatzemarà tant al registre sense nom com al registre 1 . El registre 1 emmagatzemarà l'últim text suprimit. Si suprimeixo una altra línia, el text esborrat anteriorment passarà a registrar-se 2 , i l'últim s'emmagatzemarà al registre i sense nom 1 . Bàsicament, els registres numerats (1-9) emmagatzemar l'historial del text suprimit.

Entenem el registre numerat amb un exemple. El següent fitxer de text Vim consta de 10 línies; tirem el línia 3 utilitzant yy comandament. Ara, comprovem l'estat dels registres mitjançant l'ordre :reg.

La línia tirada es troba actualment a la sense nom i 0 registres. Ara, suprimim totes les línies una per una utilitzant dd comandament. Així, últim línia 10 estarà al registre sense nom i al registre 1. Al mateix temps, altres línies suprimides s'emmagatzemaran als registres 2-9 en ordre ascendent.

Es pot accedir a aquestes línies mitjançant el pàg comandament. Per exemple, posar el text de registre 9 utilitzar “9p . A més, si es vol posar el valor de registre 9 5 vegades, ús “95p .

3. Suprimeix el registre petit ('-)

Aquest registre emmagatzema el text suprimit si és inferior a una línia, utilitzant ordres com x, daw, diw, dab, i de nou . A més, si suprimeixes algun text utilitzant VISUAL mode de selecció, i si és menys d'una línia, s'emmagatzemarà al petit registre d'eliminació. A Vim, una línia significa una frase completa que acaba amb un punt.

Per exemple, al fitxer següent, he seleccionat 3 paraules col·laboració i suport de la línia número 9 i els va suprimir amb el d operador. El petit registre d'eliminació s'utilitzarà per desar aquesta selecció, ja que no té més d'una línia. Utilitzar el :reg '- comanda per llistar el contingut del petit registre d'eliminació.

4. Registres amb nom (a-z o A-Z)

Els registres amb nom s'utilitzen per emmagatzemar text específic de l'usuari. Per tant, si voleu emmagatzemar text en un registre personalitzat, aleshores 26 registres des de a a Amb pot ser utilitzat.

Per exemple, estic agafant una línia al fitxer següent fent servir ' zyy , el text s'emmagatzemarà al fitxer Amb registreu-vos com es mostra a la imatge següent.

Els registres amb nom en minúscula i en majúscula tenen propòsits diferents. Per exemple, si el text es guarda al registre en minúscules, per tal de substituir el text d'aquest registre s'utilitzarà el registre en minúscules. Tanmateix, per afegir el text al registre en minúscules, s'utilitzarà el registre en majúscules amb el mateix nom.

Entenem-ho a través d'un exemple. Del següent fitxer, vaig emmagatzemar la línia 8 al registre x utilitzant ' xyy .

Per afegir text després d'aquesta línia, primer seleccionaré algunes paraules en el mode VISUAL. Per afegir el text seleccionat, faré servir el 'Xy comandament.

Per substituir el text, tornaré a utilitzar el ' xyy .

5. Registres de només lectura (., %, 🙂

Vim té 3 registres de només lectura que emmagatzemen el que s'ha inserit text, nom del fitxer, i últim executat comandament.

. Emmagatzema l'últim text inserit
% Emmagatzema el nom del fitxer
: Emmagatzema l'última ordre executada

Aquests registres, tal com el nom indica, no es poden modificar, però es pot accedir fàcilment.

Per posar l'últim text inserit, utilitzeu “.p comandament.

Per imprimir el nom del fitxer, utilitzeu “%p comandament.

Per imprimir l'última ordre, utilitzeu “:p.

El @: L'ordre es pot utilitzar per repetir l'ordre anterior a Vim. En l'exemple següent, he suprimit les 3 primeres línies, en prémer @: , s'eliminen 3 línies més, per tant es repeteix l'ordre anterior.

6. Registre de memòria intermèdia alternatiu ('#)

El buffer alternatiu és un fitxer que s'obre al buffer actual. El registre '# emmagatzema el nom del fitxer de memòria intermèdia a la memòria intermèdia actual. Obrim un altre fitxer a la mateixa memòria intermèdia utilitzant el fitxer :e ~/.vimrc ordre, tingueu en compte que el nom del fitxer actual és fitxer.txt .

Per tancar la memòria intermèdia oberta, utilitzeu :bdelete o :bwipeout comandament. Ara, és possible veure el nom del fitxer alternatiu desat al fitxer “# registrar-se.

7. Registre d'expressions ('=)

El registre d'expressió és un registre únic que no s'utilitza per emmagatzemar text, sinó que emmagatzema l'expressió. Per exemple, si teniu uns quants números al fitxer, per sumar aquests números, s'utilitzaran expressions Vim.

Es pot accedir a aquest registre mitjançant “= en el mode NORMAL, i ctrl+r = en el mode INSERT.

Per exemple, per trobar la diferència entre dos nombres, premeu “=, i el signe igual apareixerà a la barra d'estat; ara escriviu els dos números amb el signe menys (-) i premeu Entra clau. Ara, per imprimir la diferència, premeu pàg o utilitzar el : posar comandament.

Per accedir al valor del registre d'expressió, utilitzeu :reg “= comandament.

De la mateixa manera, per obtenir el valor absolut de dos nombres, utilitzeu =abs(valor1-valor2) expressió.

De la mateixa manera, per emmagatzemar la sortida de l'ordre del sistema, es pot utilitzar aquest registre (expressió). Per exemple, si vull llegir el contingut del fitxer utilitzaré =sistema('cat ') , en prémer la tecla Retorn s'emmagatzemarà el contingut de la sortida. Utilitzant el pàg o : posar comanda, el contingut de la sortida es pot col·locar a la memòria intermèdia.

Hi ha una sèrie d'expressions que es poden utilitzar a Vim. Per obtenir més informació sobre les expressions de Vim, feu servir : ajuda a l'expressió i :help expressió-sintaxi ordres.

8. Selecció i eliminació de registres ('*, '+, '~)

Vim té dos registres de selecció “* (quotestar) i “+ (quoteplus) que s'utilitzen per emmagatzemar el text de la GUI. Aquests registres s'utilitzen per copiar text de programes externs com ara navegadors o qualsevol altre processador de textos.

Per exemple, si copieu una selecció de text des d'un navegador, utilitzant ctrl+c o cmd+c s'emmagatzemarà al “* registrar-se. Tanmateix, no podeu utilitzar pàg o : posar per enganxar aquest text a l'editor de Vim. Ús “*p per posar el text a l'editor Vim que es copia des d'aplicacions externes.

És important tenir en compte que tots dos “+ i “* els registres estan connectats al porta-retalls, de manera que tots dos ('*p, '+p) es pot utilitzar per enganxar el text a l'editor Vim. De la mateixa manera, per posar text de Vim, utilitzeu “*ai per treure una línia i després enganxar-la a qualsevol aplicació GUI, feu servir ctrl+v o cmd+v.

És imprescindible tenir en compte que si tots dos registren (* & +) estan fent el mateix, aleshores quin sentit té? Vim té dos registres de selecció “*, “+ fent la mateixa feina i això és a causa del sistema de finestres X11. L'X11 ofereix dos mètodes per emmagatzemar el text, un és seleccions i l'altre és tampons de tall . Les seleccions són propietat de l'aplicació i es perden en tancar l'aplicació, mentre que els buffers retallats mantenen el text emmagatzemat al servidor X. Per a aquests dos tipus d'emmagatzematge, s'utilitzen els registres “* i “+. Per obtenir-ne més informació, feu servir : ajuda x11-selecció comandament.

A continuació, el deixa anar el registre '~ que s'utilitza per emmagatzemar el text de l'última operació d'arrossegar i deixar anar. Per exemple, si deixeu anar una selecció de text des d'una aplicació externa, s'emmagatzemarà al registre de descens.

Si trobeu difícil enganxar des de l'aplicació externa amb tres tecles diferents, podeu mapar la selecció per emmagatzemar-la al registre sense nom.
Obriu el vimrc fitxer, lloc establert porta-retalls=sense nom en ell i deseu el fitxer. Ara, sempre que copieu des d'una aplicació externa, es pot enganxar fàcilment amb l' : posar comanda o tecla p.

Nota : El registre de caiguda (~) només estarà disponible si el Vim es compila amb +dnd. Actualment, només està disponible per a la GUI de GTK.

9. Registre de forats negres ('_)

Si feu una operació de còpia o supressió a l'editor Vim, per defecte emmagatzema el text als registres. Si voleu eliminar el text sense emmagatzemar-lo en un registre, feu servir el registre de forats negres. Aquest registre no modificarà el registre sense nom ('') en eliminar el text.

Per exemple, si vull suprimir totes les línies sense emmagatzemar-les al registre sense nom, primer seleccionaré totes les línies utilitzant ggVG i després premeu “_d tecles per eliminar totes les línies. De la mateixa manera, per eliminar una única línia a un forat negre, utilitzeu “_dd .

10. Últim registre de patró de cerca (“/)

Com el seu nom indica, aquest registre desa l'últim patró de cerca utilitzant el / o ? operadors. Per exemple, si cerqueu /Linux , després utilitzant “/p enganxarà la paraula Linux.

Vim utilitza aquest registre per navegar amb el n i N claus després de la cerca.

És un registre que es pot escriure, el seu contingut es pot canviar mitjançant el :let. Per exemple, per desar Linux en aquest registre, utilitzeu :let @/=’Linux’.

Registres i macros

A Vim, les macros també es guarden als registres amb nom (a-z). Si no coneixeu les macros, les macros són ordres establertes emmagatzemades en un registre. Aquest conjunt d'ordres es pot executar simplement utilitzant el signe @ seguit del nom del registre de macro. Bàsicament, les macros eliminen la necessitat d'escriure diverses ordres repetidament.

Per exemple, per emmagatzemar una macro en un registre m , faré servir qmq . Vull passar a la 5 línies avall utilitzant 5j i suprimiu la línia amb dd . Ús, qm per iniciar l'enregistrament de macro i, a continuació, premeu 5j i dd . Ara, per sortir de la gravació macro, premeu q . Per verificar si la macro s'emmagatzema o no s'utilitza, :reg “m o :reg m.

Per executar aquestes ordres amb un registre de macro, utilitzeu el :@m comandament.

Esborrar un registre

No hi ha un enfocament senzill per esborrar un registre perquè la majoria de registres no s'han d'esborrar perquè eventualment es sobreescriuran. Tanmateix, hi ha algunes tècniques per esborrar un valor de registre a l'editor de Vim.

1. Enregistreu una macro buida per esborrar un registre. Per exemple, per esborrar el registre m, utilitzeu qmq .

2. Estableix el text buit amb el deixar . Per exemple, per esborrar el registre m, utilitzeu : deixa @m=”.

3. Utilitzeu el setreg() funció amb una cadena buida com a argument. Per exemple, per esborrar el registre m ús :call setreg(‘m’,”).

Conclusió

Hi ha 10 registres diferents amb diferents funcionalitats, cosa que fa que sigui gairebé impossible de recordar. Si sou un principiant, us recomanaria tenir en compte només tres registres, registre sense nom (“”) , registres numerats (0-9) , i registres denominats (a-z) .

Per emmagatzemar text en un registre, utilitzeu una cita (“) signe amb el nom del registre seguit d'una ordre de l'operador (y, d, c) . Per enganxar el text d'un registre, utilitzeu les ordres p o P precedits de cometes (“) i registre el nom.

Deu haver sentit parlar-ne, si feu una tasca més de dues vegades, automatitzeu-la. Els registres Vim poden ser extremadament útils per automatitzar tasques i, finalment, millorar l'experiència. Per obtenir més informació sobre els registres de Vim, utilitzeu : ajuda registres comandament.