Průvodce po Vim Marks

Pruvodce Po Vim Marks



Značky Vim jsou specifická místa v souboru, kterým lze nastavit název a později je vrátit jejich jménem. Dopis m následované dalším písmenem {a-z nebo A-Z} lze použít k nastavení značky a a jediný citát ) ‘) s názvem značky se používá pro návrat k této značce. Všimněte si, že malá písmena k nastavení se používají písmena místní značky zatímco velká písmena písmena se používají k nastavení globální značky .

Pochopení Vima Markse

Vim vám umožňuje nastavit konkrétní pozice v souboru, zejména pokud pracujete na velkém souboru, kde se potřebujete rychle pohybovat tam a zpět. Díky této funkci je navigace v souboru se stovkami řádků mimořádně jednoduchá. Pokud například pracujete na kódu Pythonu s 500 řádky kódu, může být nutné procházet souborem, abyste se dostali na konkrétní řádek kódu. Pokud však nastavíte značky na požadovaná místa, můžete se snadno pohybovat stisknutím několika kláves.







No, funkce značek Vim není omezena na navigaci, značky můžete použít i k provádění dalších příkazů, o kterých budu diskutovat v dalších částech této příručky. Pojďme prozkoumat, jak nastavit a používat značky ve Vimu.



Poznámka: Pro pokyny v této příručce používám distribuci Linuxu (Ubuntu 22.04) a Vim verze 8.2.



Nastavte značku

Chcete-li nastavit značku ve Vimu, podržte kurzor na místě, kde chcete značku nastavit, a stiskněte m klíč , následuje jakýkoli dopis od A na S . Například když chci nastavit značku s názvem písmene S pak napíšu mz v režimu NORMAL.





mz

Existuje několik způsobů, jak nastavit značku ve Vimu, tento postup je nejrychlejší.

I když je výše zmíněný postup široce používaný a velmi rychlý, nezískáte žádnou vizuální informaci o tom, zda byla značka nastavena či nikoli, pokud to výslovně nezkontrolujete.



Chcete-li vypsat značky ve Vimu, použijte :značky příkaz, o kterém budu diskutovat v Seznam značek sekce. Můžete však aktivovat indikaci úhozu ve spodní části okna pomocí :nastavit showcmd.

: soubor showcmd

Můžete také použít označit nebo Označit příkazy k nastavení značky. Například, S značku lze také nastavit pomocí níže uvedeného příkazu:

: značka z

Každý soubor Vim může mít značky od A na S , ale pokud nastavíte značku S pro pozici a použít stejný název značky pro jinou pozici, dříve nastavená značka bude odstraněna (přepsána).

Všimněte si, že velká písmena {A-Z} lze také použít k nastavení značky. Značky s velkými písmeny jsou globální značky a na základě souborů. Globálním značkám se budu důkladně věnovat v samostatné části.

Seznam značek

Jak bylo uvedeno v předchozí části, všechny vytvořené značky lze snadno vypsat

za použití :značky příkaz.

: značky

Na výše uvedeném výstupním obrázku jsou uvedeny všechny značky; některé jsou vlastní a některé jsou výchozí.

Existují i ​​jiné způsoby, jak vypsat značky. Chcete-li uvést konkrétní značku, použijte :značky příkaz s názvem značky. Například vypsat značku S, použít :marks příkaz:

: známky z

Podobně, chcete-li uvést více značek, použijte :značky :

: známky abz

Kde A , b, a S jsou různé názvy značek.

Značky v souborech nejsou standardně viditelné a pro jejich grafické zobrazení existují různé pluginy. Známé pluginy, které umí zobrazovat značky ve Vimu, jsou ShowMarks a Vim podpis .

Protože je plugin ShowMarks plný chyb a nebyl mnoho let aktualizován, nainstaluji jej Vim podpis plugin pro zobrazení značek.

Po instalaci pluginu nastavte značku a plugin ji explicitně zobrazí s názvem, jak je znázorněno na následujícím obrázku.

Přejít na značku

Po nastavení značky je dalším krokem navigace po značkách. Chcete-li přejít na začátek označeného řádku v aktuálním bufferu, stiskněte tlačítko jednoduchá uvozovka (‘) s názvem značky {a-z}.

'S

Pro skok na přesné místo (řádek/sloupec) stiskněte zaškrtnutí (`) s názvem značky {a-z}.

`z

Single (‘) a backtick (`) lze také použít k přeskakování globálních značek {A-Z}.

Níže je uvedena tabulka navigace mezi malými písmeny:

'' Skočte zpět na řadu, odkud jste skočili
Skočte zpět do pozice, odkud jste skočili
' . /`. Pro skok na poslední upravený řádek / pozici
`[\`] Pro skok na začátek/konec posledního vytrhnutého textu
`<\`> Pro skok na začátek/konec posledního vizuálního výběru
[počet]] ' Pro skok na další řádek [count] počtu značek z aktuální pozice kurzoru
[počet]]“. Pro přeskočení [count] počtu značek z aktuální pozice kurzoru

Je důležité si uvědomit, že výše uvedené navigační klávesy jsou určeny pro malá písmena.

Diskuse o známkách Vim je neúplná, pokud nebudeme diskutovat o skoky a jumplist . The jumplist ukládá skoky provedené v souboru nebo napříč soubory, ať už se jedná o značky nebo normální výchozí skoky Vimu.

Chcete-li vypsat všechny skoky, použijte :skáče a k odstranění všech skoků použijte příkaz :clearjumps. Chcete-li procházet skoky, použijte ctrl+o a ctrl+i klíče.

Poznámka: Před odstraněním skoků mějte na paměti, že odstranění skoků může ovlivnit historii navigace.

Pro pohyb po značkách mi přijde pohodlnější používat skoky. Nejprve vymažu všechny skoky, protože pokud to neudělám, mohu skončit v jiných souborech. Pak registruji skoky značek v jumplist soubor pomocí jednoduché uvozovky nebo zpětného zaškrtnutí. Jakmile je hotovo, použiji ctrl+o a ctrl+i klávesy pro rychlé procházení značek.

Pro další nápovědu k navigaci mezi značkami použijte :pomocné značky a :help jumplist příkazy.

Globální známky

Globální značky ve Vimu jsou nastaveny tak, aby přeskakovaly mezi soubory. Na rozdíl od místních značek jsou globální značky nastaveny velkými písmeny a lze je používat napříč soubory.

Pojďme pochopit důležitost globálních značek pomocí příkladu. Za předpokladu, že pracujete na souboru kódu a chcete získat přístup ke konkrétní funkci v tomto souboru. Takže místo otevírání souboru jednoduše zadejte nastavenou globální značku a soubor se otevře s konkrétním umístěním.

Chcete-li nastavit globální značku, použijte příkaz mark m následuje velké písmeno {A-Z}.

mZ

Nyní můžete k této značce přistupovat z libovolného souboru. Chcete-li přejít na globální značku, použijte stejný postup, jaký je uveden v Přejít na značku sekce. Soubor obsahující značku se otevře a aktuální se zavře.

'S

Podobně, chcete-li přejít na přesné místo, použijte backtick s názvem značky (`Z).

Číslované značky

Číslované značky {0-9} se používají k uložení aktuální pozice kurzoru v viminfo soubor, když soubor ukončíte. Číslované značky jsou speciální a nelze je nastavit přímo. Tyto značky jsou automaticky generovány v viminfo soubor, chcete-li sledovat změny v souboru, když soubor ukončíte. Například, když ukončíte jakýkoli soubor viminfo soubor ukládá informace o poslední pozici kurzoru do očíslovaných značek, jako je 0, 1, 2 atd.

Číslované značky můžete vypsat pomocí :značky příkaz.

Pro více informací o číslovaných značkách Vim použijte :help viminfo-file-marks příkaz.

Mazání značek

Existují různé způsoby, jak odstranit všechny značky, konkrétní značky nebo řadu značek.

Chcete-li odstranit značky, použijte :Delmarky nebo :delm lze použít příkazy.

:delmarks z Chcete-li smazat konkrétní značku, např. S
:delmarks x-z Chcete-li odstranit značky z X na S takové, že smazání X , a , a S
:delmarks abxy Vymazat A , b , X, a a značky
:delmarks zZ Vymazat S a S značky

Chcete-li vymazat všechna malá písmena {a-z}, použijte :Delmarky! příkaz. Chcete-li vymazat velká písmena a číselné značky, musíte použít :delmarks A-Z a :delmarks 0-9 příkazy. Pokud chcete vymazat velká písmena {A-Z}, použijte :delmarks A-Z . Očíslované značky lze také vymazat pomocí stejného příkazu.

Pokročilé funkce

Vzhledem k tomu, že značky jsou umístění, lze je použít k úpravě souboru také ve Vimu. Chcete-li například odstranit, zkopírovat nebo změnit něco z konkrétní značky na jinou značku, můžete použít příslušný příkaz se zmínkou o názvu značky.

V následující tabulce je S se používá jako název značky.

d ' z / d`z Smazat z aktuálního řádku na další označený řádek / Smazat z aktuální pozice do další přesně označené pozice
C ' z / c`z Změnit text z aktuálního řádku na další označený řádek / Změnit text z aktuální pozice na další přesně označenou pozici
a ' z / y'z Zkopírujte (vytrhněte) text z aktuálního řádku na další označený řádek / Zkopírujte text z aktuální pozice do další přesně označené pozice

Pokud chcete provést a po řádcích operaci, pak zavolejte značku pomocí jednoduchých uvozovek (‘), a pokud chcete provést a charakterově operace, použijte backtick (`).

Podobně, pokud chcete smazat, změnit nebo vytrhnout cokoli mezi dvěma značkami, můžete použít následující syntaxi příkazu.

: 'X,' a < d, c nebo y >

Například pokud chcete odstranit všechny řádky z mark 'X oznámkovat 'a použít : ' X, ' y d příkaz.

Viz následující soubor se značkami b a C .

Chcete-li odstranit všechny čáry ze značky b k C (včetně), proveďte příkaz uvedený níže:

: 'b,' c d

Rozdíl mezi malými a velkými značkami

Malá i velká písmena mají odlišné funkce.

V souborech se používají malá písmena a lze je nastavit z abecedy A na abecedu S v libovolném souboru. Jsou jedinečné pro soubory, ve kterých byly vytvořeny. Lze k nim přistupovat a spravovat je v rámci souborů, kde byly vytvořeny. Na druhou stranu, velká písmena {A-Z} jsou globální a nelze je nastavit se stejným názvem. K těmto značkám lze přistupovat z libovolného souboru pomocí apostrofu (‘) nebo zpětného zaškrtnutí (`).

Navigace a proces mazání malých a velkých značek jsou podobné. Ale malá písmena mají více navigačních příkazů kvůli jejich nastavení v souboru.

Další důležitá věc je, že značky se při ukončení souboru nebo relace nesmažou. Takže pokud jste nastavili značku, pak při opětovném otevření zůstanou značky souboru nedotčeny.

Cheat Sheet Vim Marks

Klíčové operace, které potřebujete k použití funkce značek v editoru Vim, jsou uvedeny na následujícím obrázku.

Závěr

Značky v editoru Vim jsou uživatelsky nastavené pozice pro navigaci v souboru se stovkami řádků. Existují dva typy značek, velká a malá písmena. Malá písmena jsou užitečná při navigaci v souboru. K navigaci mezi soubory se používají velká písmena. Chcete-li nastavit značku, písmeno m se používá s jiným malým nebo velkým písmenem {a-z, A-Z}. Značky libovolného souboru lze vypsat pomocí :značky příkaz. Chcete-li odstranit značku :Delmarky nebo :delm používají se příkazy s názvem značky.