Co jsou registry Vim

Co Jsou Registry Vim



Registry Vim jsou úložné bloky používané k ukládání trhaného, ​​smazaného textu a operací. K těmto registrům lze přistupovat pomocí jejich názvů značek, což může být číslo, písmeno nebo symbol.

Pokud používáte Vim, musíte používat registry Vim. Pokaždé, když zkopírujete/smažete text nebo provedete příkazovou operaci, Vim uloží tyto informace do registrů. Když jej vložíte, Vim získá data z registru a načte je do vyrovnávací paměti. Jinými slovy, registry Vim fungují jako schránka pro ukládání textu a historie příkazů.

Vim má celkem 10 různých typů registrů, z nichž každý slouží jinému účelu. V tomto tutoriálu budu zkoumat registry Vim, jejich typy a použití.







Poznámka : V tomto tutoriálu provádím příkazy v systému macOS. Vim je multiplatformní aplikace, proto příkazy uvedené v této příručce budou platit pro všechny verze Vim bez ohledu na operační systém.



Operátoři registru Vim

Registry ve Vimu lze použít pomocí operací, jako je kopírování, mazání nebo změna. Každá operace má specifické operátory, například k vytažení textu se používá operátor y, zatímco k odstranění textu se používá operátor d. Níže je uveden seznam běžně zaměstnaných operátorů:

yy Zkopíruje (zkopíruje) řádek
dd Smaže řádek
cc Smaže řádek a aktivuje režim INSERT
s Odstraní znak a spustí režim INSERT pro nahrazení
X Smaže znak pod kurzorem
q Makro; ukládá sadu příkazů do určitého registru

Chcete-li vytisknout uložený text, p nebo P používají se operátory:

p Vložte (vložte) text za kurzor
P Vložte text před kurzor

Tyto příkazy se také počítají. Například pro kopírování 10 řádků použijte 10 yy příkaz, podobně jako vložit 10 kopií vytrženého řádku 10p .

Výpis registrů

Pro výpis všech registrů použijte :Registrovat nebo :reg a pro výpis konkrétního registru použijte příkaz :reg, kde je název registru (např. 0-9, a-z).

Stejným způsobem, chcete-li vypsat obsah více registrů, použijte :reg “ příkaz.

V seznamu registrů uvidíte tři sloupce, Název, typ a obsah . Typ zde znamená typ obsahu, nikoli typ registru. Tři typy obsah lze upravit pomocí registrů.

  • l : Po řádcích
  • C : Charakterově
  • b : Blokově

Například pokud je obsah zkopírován pomocí operace po řádcích (yy) pak bude typ obsahu l , je-li charakterově (Ano) pak bude typ C a pokud je obsah zkopírován blokově (ctrl+v a y) pak se typ zobrazí jako b .

Práce s registry Vim

Registry Vim lze použít k uložení obsahu pomocí operátorů yank, delete a change. K uloženému obsahu lze přistupovat pomocí operátorů put.

Ukládání textu do registru
Když stisknete tlačítko yy pro zkopírování řádku, bude uložen do výchozího registru zvaného nepojmenovaný registr (“”) . Chcete-li uložit zkopírovaný řádek do konkrétního registru, citace (“) následovaný názvem registru a operátorem.

'

Chcete-li například zkopírovat řádek do názvu registru S použít ' zyy . Podobně, pokud jste vybrali více linek ve VISUAL režimu, použijte „ z y pro uložení řádků v registru z.

Přístup do registru
Pro přístup do registru Vim, citace (“) symbol se používá s názvem registru a p/P operátor.

'str

Pokud je například název registru z a pro přístup k obsahu tohoto registru použijte „ zp v režimu NORMAL. Chcete-li však provést stejnou operaci v režimu INSERT, použijte ctrl+r z .

Normální mód Pro uložení obsahu použijte nabídku (“) , registrovat jméno (a–z) a operátor (y, yy, d, c nebo cc)
str Normální mód Chcete-li vložit obsah registru, použijte nabídku (“) , registrovat jméno (a–z) a p/P operátor
ctrl+r Režim INSERT Chcete-li vložit obsah registru, použijte ctrl+r a registrovat jméno (a–z)

Máte základní představu o registrech Vim. Nyní se pustím do podrobné diskuse o každém typu registru a jeho použití.

Typy registrů Vim

Ve Vimu je 10 typů registrů, určených pro specifické účely.

  1. Nejmenovaný registr (“”)
  2. Číslované registry (0-9)
  3. Malý smazat registr (“-)
  4. Pojmenované registry (a-z nebo A-Z)
  5. Registry pouze pro čtení (“:, “., “%)
  6. Alternativní registr souborů („#)
  7. Registr výrazů („=)
  8. Registry výběru a zrušení (“*, “+, +~)
  9. Registr černých děr („_)
  10. Registr vzorů posledního vyhledávání („/)

1. Nepojmenovaný registr (“”)

Je to výchozí registr Vimu pro ukládání vytrženého nebo odstraněného textu y, yy, d, dd, s, nebo X příkazy.

The :reg '' příkaz lze použít k výpisu obsahu uloženého v nepojmenovaném registru.

Chcete-li vložit obsah nepojmenovaného registru, použijte příkaz put (p nebo P) příkaz. Ve výchozím nastavení je p příkaz vloží úložiště obsahu do nepojmenovaného registru. Alternativně lze data uložená v nepojmenovaném registru vložit také pomocí příkazu „“p.

V následujícím příkladu jsem zkopíroval řádek pomocí yy a poté jej vložte 5krát pomocí počítání 5 s p (5p).

2. Číslované registry (0-9)

Číslované registry se používají k uložení posledního vytrhnutého nebo vymazaného textu.

Registrace 0 se liší od registrů 1-9 . Registrace 0 vždy uloží poslední vytrhnutý text. Například, když vytrhnu čáru pomocí yy příkaz bude řádek uložen v obou bezejmený a 0 registrů.

Nyní, když odstraním řádek pomocí dd , smazaný řádek se uloží do nepojmenovaného registru a registru 1 zatímco poslední vytrhnutý text zůstane v registru 0 . Takže k poslednímu vytrhnutému textu lze kdykoli přistupovat prostřednictvím registru 0 .

Registry 1-9 uložit poslední smazaný text. Pokud například odstraním řádek pomocí dd smazaný text bude uložen jak v nepojmenovaném, tak v registru 1 . Registr 1 uloží poslední smazaný text. Pokud smažu další řádek, dříve smazaný text se přesune k registraci 2 , a nejnovější bude uložena v nepojmenovaném a registru 1 . V podstatě číslované registry (1-9) uložit historii smazaného textu.

Pojďme pochopit číslovaný rejstřík na příkladu. Následující textový soubor Vim obsahuje 10 řádků; vytrhneme to řádek 3 použitím yy příkaz. Nyní zkontrolujeme stav registrů pomocí příkazu :reg.

Vytrhnutá čára je aktuálně v bezejmený a 0 registrů. Nyní odstraníme všechny řádky jeden po druhém pomocí dd příkaz. Takže poslední řádek 10 bude v nejmenovaném registru a registru 1. Zároveň se do registrů uloží další smazané řádky 2-9 ve vzestupném pořadí.

Tyto linky jsou přístupné pomocí p příkaz. Například vložit text rejstříku 9 použití '9p . Dále, pokud chcete dát hodnotu registru 95 časy, použití „95p .

3. Malý smazat registr (“-)

Tento registr ukládá smazaný text, pokud je menší než řádek, pomocí příkazů jako x, daw, diw, dab, a znovu . Navíc, pokud smažete nějaký text pomocí VIZUÁLNÍ režim výběru, a pokud je menší než řádek, uloží se do malého registru mazání. Ve Vimu znamená řádek úplnou větu končící tečkou.

Například v následujícím souboru jsem vybral 3 slova spolupráci a podporu z řádku číslo 9 a smazal je pomocí d operátor. Malý registr mazání bude použit k uložení tohoto výběru, protože není delší než řádek. Použijte :reg “- příkaz pro výpis obsahu malého registru mazání.

4. Pojmenované registry (a-z nebo A-Z)

Pojmenované registry se používají k ukládání textu specifického pro uživatele. Pokud tedy chcete uložit text do vlastního registru, pak 26 registrů od A na S může být použito.

Například vytrhávám řádek v následujícím souboru pomocí „ zyy , text bude uložen v S zaregistrujte se, jak je znázorněno na následujícím obrázku.

Pojmenované registry s malými a velkými písmeny mají různé účely. Je-li například text uložen v registru malých písmen, bude k nahrazení textu tohoto registru použit registr malých písmen. Pro připojení textu k registru malých písmen se však použije registr velkých písmen se stejným názvem.

Pojďme to pochopit na příkladu. Z následujícího souboru jsem uložil řádek 8 do registru X použitím ' xyy .

Pro přidání textu za tento řádek nejprve vyberu několik slov ve VISUAL režimu. K připojení vybraného textu použiji 'Xy příkaz.

K nahrazení textu opět použiji „ xyy .

5. Registry pouze pro čtení (., %, 🙂

Vim má 3 registry pouze pro čtení, které ukládají vložené text, název souboru, a naposledy popraven příkaz.

. Uloží poslední vložený text
% Uloží název souboru
: Ukládá poslední provedený příkaz

Tyto registry, jak je navrženo v názvu, nelze upravit, lze však k nim snadno přistupovat.

Chcete-li vložit poslední vložený text, použijte '.p příkaz.

Chcete-li vytisknout název souboru, použijte '%p příkaz.

Chcete-li vytisknout poslední příkaz, použijte “:p.

The @: příkaz lze použít k opakování předchozího příkazu ve Vimu. V následujícím příkladu jsem po stisknutí vymazal první 3 řádky @: , smažou se další 3 řádky, takže se opakuje předchozí příkaz.

6. Alternativní vyrovnávací registr („#)

Alternativní vyrovnávací paměť je soubor, který je otevřen v aktuální vyrovnávací paměti. Registr “# ukládá název souboru ve vyrovnávací paměti v aktuálním bufferu. Otevřeme další soubor ve stejné vyrovnávací paměti pomocí :e ~/.vimrc příkaz, všimněte si, že aktuální název souboru je soubor.txt .

K uzavření otevřené vyrovnávací paměti použijte :bdelete nebo :bwipeout příkaz. Nyní je možné vidět alternativní název souboru uložený v “# Registrovat.

7. Registr výrazů („=)

Registr výrazů je jedinečný registr, který se nepoužívá k ukládání textu, místo toho ukládá výraz. Pokud máte například v souboru několik čísel, k sečtení těchto čísel se použijí výrazy Vim.

Tento registr je přístupný pomocí '= v režimu NORMAL a ctrl+r = v režimu INSERT.

Chcete-li například najít rozdíl mezi dvěma čísly, stiskněte „= a ve stavovém řádku se objeví znaménko rovná se; nyní zadejte obě čísla se znaménkem mínus (-) a stiskněte Vstupte klíč. Nyní, chcete-li vytisknout rozdíl, stiskněte p nebo použijte :dát příkaz.

Pro přístup k hodnotě registru výrazů použijte příkaz :reg “= příkaz.

Podobně, chcete-li získat absolutní hodnotu dvou čísel, použijte =abs(hodnota1-hodnota2) výraz.

Stejně tak lze pro uložení výstupu systémového příkazu použít tento (výrazový) registr. Například, pokud chci číst obsah souboru, který použiji =system('kočka ') , po stisku klávesy Return se obsah výstupu uloží. Za použití p nebo :dát lze obsah výstupu umístit do vyrovnávací paměti.

Existuje řada výrazů, které lze ve Vimu použít. Chcete-li se dozvědět více o výrazech Vim, použijte :pomocný výraz a :help výraz-syntaxe příkazy.

8. Registry výběru a zrušení (“*, “+, “~)

Vim má dva výběrové registry “* (uvozovka) a “+ (quoteplus), které se používají k ukládání textu z GUI. Tyto registry se používají ke kopírování textu z externích programů, jako jsou prohlížeče nebo jakýkoli jiný textový procesor.

Pokud například zkopírujete výběr textu z prohlížeče pomocí ctrl+c nebo cmd+c bude uložen v “* Registrovat. Nemůžete však použít p nebo :dát pro vložení tohoto textu do editoru Vim. Použití “*p pro vložení textu do editoru Vim, který je zkopírován z externích aplikací.

Je důležité poznamenat, že obojí “+ a “* registry jsou připojeny ke schránce, takže obojí („*p, „+p) lze použít k vložení textu do editoru Vim. Podobně, chcete-li vložit text z Vimu, použijte “*yy k vytažení řádku a jeho vložení do libovolné aplikace GUI použijte ctrl+v nebo cmd+v.

Je nezbytně nutné poznamenat, že pokud oba registr (* & +) dělají to samé, tak jaký to má smysl? Vim má dva výběrové registry “*, “+ dělat stejnou práci a to kvůli okennímu systému X11. X11 poskytuje dva způsoby ukládání textu, jeden je výběry a druhý je cut-buffery . Výběry jsou ve vlastnictví aplikace a jsou ztraceny při zavření aplikace, zatímco vyrovnávací paměti uchovávají text uložený na X-serveru. Pro tyto dva typy ukládání se používají registry „* a „+. Chcete-li se o tom dozvědět více, použijte :help x11-selection příkaz.

Dále, zahodit registr „~ který se používá k uložení textu z poslední operace přetažení. Pokud například zrušíte výběr textu z externí aplikace, uloží se do registru přetažení.

Pokud se vám zdá vkládání z externí aplikace pomocí tří různých kláves obtížné, můžete výběr namapovat, aby se uložil do nepojmenovaného registru.
Otevři vimrc soubor, prostírání schránka=nepojmenovaný v něm a uložte soubor. Nyní, kdykoli kopírujete z externí aplikace, lze ji snadno vložit pomocí :dát příkaz nebo klávesa p.

Poznámka : Registr drop (~) bude dostupný pouze v případě, že je Vim zkompilován s +dnd. V současné době je k dispozici pouze pro GTK GUI.

9. Registr černých děr („_)

Pokud provedete operaci kopírování nebo odstranění v editoru Vim, ve výchozím nastavení uloží text do registrů. Pokud chcete text smazat bez uložení do registru, použijte registr černých děr. Tento registr nezmění nepojmenovaný registr (“”) při mazání textu.

Například, pokud chci smazat všechny řádky, aniž bych je uložil do nepojmenovaného registru, pak nejprve označím všechny řádky pomocí ggVG a poté stiskněte '_d klávesy pro smazání všech řádků. Podobně, chcete-li odstranit jeden řádek do černé díry, použijte '_dd .

10. Registr vzorů posledního vyhledávání („/)

Jak název napovídá, tento registr ukládá poslední vyhledávací vzor pomocí / nebo ? operátory. Například pokud hledáte /Linux , poté pomocí “/str vloží slovo Linux.

Vim používá tento registr pro navigaci s n a N klíče po vyhledávání.

Je to zapisovatelný registr, jeho obsah lze měnit pomocí :let. Chcete-li například uložit Linux do tohoto registru, použijte :nechte @/=’Linux’.

Registry a makra

Ve Vimu jsou makra také uložena v pojmenovaných registrech (a-z). Pokud makra neznáte, pak makra jsou nastavené příkazy uložené v registru. Tuto sadu příkazů lze provést jednoduše pomocí znaku @ následovaného názvem registru makra. Makra v podstatě eliminují potřebu opakovaně zadávat více příkazů.

Například pro uložení makra do registru m , Použiji qmq . Chci se přestěhovat do 5 linky dolů pomocí 5j a smažte řádek pomocí dd . Použití, qm pro zahájení záznamu makra a poté stiskněte 5j a dd . Nyní pro ukončení záznamu makra stiskněte q . Chcete-li ověřit, zda je makro uloženo nebo nepoužito, :reg “m nebo :reg m.

Chcete-li provést tyto příkazy pomocí registru maker, použijte :@m příkaz.

Vymazání registru

Neexistuje žádný přímý přístup k vymazání registru, protože většinu registrů není nutné vymazat, protože budou nakonec přepsány. Existuje však několik technik, jak vymazat hodnotu registru v editoru Vim.

1. Zaznamenejte prázdné makro pro vymazání registru. Chcete-li například vymazat registr m, použijte qmq .

2. Nastavte prázdný text pomocí nechat . Chcete-li například vymazat registr m, použijte :nech @m=“.

3. Použijte setreg() funkce s prázdným řetězcem jako argumentem. Například pro vymazání registru m použití :volání setreg(‘m‘, “).

Závěr

K dispozici je 10 různých registrů s různou funkčností, díky čemuž je téměř nemožné si je zapamatovat. Pokud jste začátečník, pak bych doporučil mít na paměti pouze tři registry, bezejmenný registr (“”) , číslované registry (0-9) a pojmenované registry (a–z) .

Chcete-li uložit text do registru, použijte nabídku (“) podepište jménem registru následovaným příkazem operátora (y, d, c) . Chcete-li vložit text z registru, použijte příkazy p nebo P s uvozovkou (“) a registrovat jméno.

Určitě jste o tom slyšeli, pokud děláte úkol více než dvakrát, tak si to zautomatizujte. Registry Vim mohou být velmi užitečné pro automatizaci úkolů a v konečném důsledku zlepšit zážitek. Chcete-li se dozvědět více o registrech Vim, použijte :nápověda k registrům příkaz.