Guide till Vim Marks

Guide Till Vim Marks



Vim-märken är specifika platser i en fil som kan ställas in med ett namn och senare returneras genom att kalla dem vid deras namn. Brevet m följt av en annan bokstav {a-z eller A-Z} kan användas för att sätta märket, och en enda citat ) ') med märket namn används för att återgå till det märket. Observera att små bokstäver bokstäver används för att ställa in lokala märken medan versal bokstäver används för att ställa in globala märken .

Förstå Vim Marks

Vim låter dig ställa in specifika positioner i en fil, speciellt om du arbetar med en stor fil där du behöver flytta fram och tillbaka snabbt. Denna funktion gör det exceptionellt enkelt att navigera i en fil med hundratals rader. Om du till exempel arbetar med en Python-kod med 500 rader kod, kan du behöva rulla igenom filen för att komma till en specifik kodrad. Men om du ställer in markeringar på önskade platser kan du enkelt flytta genom att trycka på ett par tangenter.







Tja, Vim-märkesfunktionaliteten är inte begränsad till navigeringen, du kan använda märken för att utföra andra kommandon också, vilket jag kommer att diskutera i senare avsnitt av den här guiden. Låt oss utforska hur du ställer in och använder märken i Vim.



Notera: Jag använder Linux-distribution (Ubuntu 22.04) och Vim version 8.2 för instruktionerna i den här guiden.



Sätt ett märke

För att ställa in märket i Vim, håll markören där du vill sätta märket och tryck på m nyckel , följt av något brev från a till Med . Till exempel om jag vill sätta en markering med namnet på bokstaven Med då skriver jag mz i NORMAL-läget.





mz

Det finns flera sätt att sätta ett märke i Vim, denna procedur är den snabbaste.

Även om det ovannämnda förfarandet är flitigt använt och mycket snabbt, får du dock ingen visuell indikation på om märket har satts eller inte om du inte kontrollerar det uttryckligen.



För att lista märkena i Vim, använd :märken kommando, som jag kommer att diskutera i Lista märken sektion. Du kan dock aktivera tangenttryckningsindikeringen längst ned i fönstret genom att använda :set showcmd.

: uppsättning showcmd

Du kan också använda märke eller den Mark kommandon för att ställa in märket. Till exempel Med mark kan också ställas in med kommandot nedan:

: markera z

Varje Vim-fil kan ha märken från a till Med , men om du sätter ett märke Med för en position och använd samma märkesnamn för en annan position, kommer den tidigare inställda markeringen att tas bort (skrivs över).

Observera att de stora bokstäverna {A-Z} också kan användas för att sätta ett märke. Märken med stora bokstäver är globala märken och baserat på filer. Jag kommer att diskutera de globala märkena grundligt i ett separat avsnitt.

Lista märken

Som diskuterats i föregående avsnitt kan alla skapade märken enkelt listas

använda :märken kommando.

: märken

I utdatabilden ovan listas alla märken; vissa är anpassade och vissa är standard.

Det finns också några andra metoder för att lista märkena. För att lista ett specifikt märke, använd :märken kommandot med märkets namn. Till exempel för att lista märket Med, Använd :marks kommando:

: markerar z

På samma sätt, för att lista flera märken, använd :märken :

: markerar abz

Var a , b, och Med är olika märkesnamn.

Märkena i filerna är inte synliga som standard och för att se dem grafiskt finns det olika plugins. De välkända plugins som kan visa märken i Vim är ShowMarks och Vim signatur .

Eftersom ShowMarks plugin är full av fel och inte har uppdaterats på många år kommer jag att installera Vim signatur plugin för att se märken.

När du har installerat plugin-programmet, ställ in markeringen, så kommer plugin-programmet explicit att visa det med namnet som visas i följande bild.

Hoppa till ett märke

Efter att ha ställt in märket är nästa steg att navigera mellan märkena. För att hoppa till början av den markerade raden i den aktuella bufferten, tryck på enda citat (') med märkets namn {a-z}.

'Med

För att hoppa till den exakta platsen (rad/kolumn) tryck på backtick (`) med märkets namn {a-z}.

`z

Singeln (‘) och backtick (`) kan också användas för att hoppa över de globala markeringarna {A-Z}.

En tabell över navigering genom gemener nämns nedan:

'' Hoppa tillbaka till linjen där du hoppade
' Hoppa tillbaka till positionen där du hoppade
' . /`. För att hoppa till den senast redigerade raden/positionen
`[\`] För att hoppa till början/slutet av den senaste ryckte texten
`<\`> För att hoppa till början/slutet av det senaste visuella valet
[räkna]] ' För att hoppa till nästa rad i [räkna] antalet markeringar från den aktuella markörpositionen
[räkning]]` För att hoppa [räkna] antalet markeringar från nuvarande markörposition

Det är viktigt att notera att navigeringsknapparna som nämns ovan är för gemener.

Diskussionen om Vim-märken är ofullständig om vi inte diskuterar hoppar och hopplista . De hopplista lagrar de hopp som görs i filen eller över filerna, oavsett om de är märken eller normala Vim-standardhopp.

För att lista alla hopp, använd :hoppar kommandot, och för att ta bort alla hopp, använd :clearjumps. För att navigera i hoppen, använd ctrl+o och ctrl+i nycklar.

Notera: Innan du tar bort hoppen, tänk på att radering av hoppen kan påverka navigeringshistoriken.

Jag tycker att det är bekvämare att använda hopp för att flytta genom märkena. Först rensar jag alla hopp för om jag inte gör det kan jag hamna i andra filer. Sedan registrerar jag märkeshopp i hopplista fil med det enda citatet eller backtick. När det är klart använder jag ctrl+o och ctrl+i knapparna för att snabbt hoppa igenom märkena.

För mer hjälp om att navigera mellan märkena, använd :hjälpmärken och :hjälp jumplist kommandon.

Globala märken

Globala märken i Vim är inställda på att hoppa mellan filerna. Till skillnad från lokala märken anges globala märken med versaler och kan användas över filerna.

Låt oss förstå vikten av globala märken med hjälp av ett exempel. Förutsatt att du arbetar med en kodfil och vill komma åt en specifik funktion i den filen. Så, istället för att öppna filen, skriv helt enkelt det inställda globala märket, så öppnas filen med den specifika platsen.

Använd kommandot mark för att ställa in det globala märket m följt av en stor bokstav {A-Z}.

mZ

Nu kan du komma åt detta märke från vilken fil som helst. För att hoppa till det globala märket, använd samma procedur som nämns i Hoppa till ett märke sektion. Filen som innehåller märket öppnas och stänger den nuvarande.

'MED

På samma sätt, för att gå till den exakta platsen, använd backtick med märkets namn (`Z).

Numrerade märken

De numrerade markeringarna {0-9} används för att lagra den aktuella markörpositionen i viminfo fil när du avslutar filen. De numrerade märkena är speciella och kan inte ställas in direkt. Dessa märken genereras automatiskt i viminfo fil för att hålla reda på ändringarna i filen när du avslutar filen. Till exempel, när du avslutar en fil viminfo filen sparar den senaste markörpositionsinformationen i numrerade markeringar som 0, 1, 2 och så vidare.

Du kan lista de numrerade märkena med hjälp av :märken kommando.

För mer information om Vim-numrerade märken, använd :hjälp viminfo-file-marks kommando.

Ta bort märken

Det finns olika metoder för att ta bort alla märken, specifika märken eller en rad märken.

För att radera märken, :delmarks eller :delm kommandon kan användas.

:delmarks z För att ta bort ett specifikt märke, t.ex. Med
:delmarks x-z För att radera märken från x till Med sådan att radering x , och , och Med
:delmarks abxy Att radera a , b , x, och och märken
:delmarks zZ Att radera Med och MED märken

För att ta bort alla gemener {a-z}, använd :delmarks! kommando. För att rensa versaler och siffror måste du använda :delmarks A-Z och :delmarks 0-9 kommandon. Om du vill ta bort versaler {A-Z}, använd :delmarks A-Z . Numrerade markeringar kan också raderas med samma kommando.

Avancerade funktioner

Eftersom märken är platser kan de användas för att redigera filen också i Vim. Till exempel, för att ta bort, kopiera eller ändra något från ett specifikt märke till ett annat märke kan du använda respektive kommando med namnet på märket.

I följande tabell visas Med används som märkesnamn.

d ' z / d`z Ta bort från den aktuella raden till nästa markerade rad / Ta bort från den aktuella positionen till nästa exakt markerade position
c ' z / c`z Ändra text från aktuell rad till nästa markerade rad / Ändra text från aktuell position till nästa exakt markerade position
och ' z / y`z Kopiera (rycka) text från den aktuella raden till nästa markerade rad / Kopiera text från den aktuella positionen till nästa exakt markerade position

Om du vill utföra en linjärt åtgärd, anropa sedan märket med det enda citattecken ('), och om du vill utföra en karaktärsmässigt operation, använd backtick (`).

På liknande sätt, om du vill ta bort, ändra eller dra något mellan två märken kan du använda följande kommandosyntax.

: 'x,' och < d,c eller y >

Till exempel om du vill ta bort alla rader från markering 'x att markera 'och Använd : ' x, ' y d kommando.

Se följande fil med märken b och c .

För att ta bort alla linjer från märket b till c (inklusive), kör kommandot nedan:

: 'b,' CD

Skillnad mellan gemener och versaler

Både gemener och versaler har distinkta funktioner.

De små bokstäverna används i filerna och kan ställas in från alfabetet a till alfabetet Med i vilken fil som helst. De är unika för filerna de har skapats i. De kan nås och hanteras i de filer där de skapas. Å andra sidan är de versaler {A-Z} globala och kan inte anges med samma namn. Dessa märken kan nås från vilken fil som helst med apostrof (') eller backtick (').

Navigeringen och processen att ta bort gemener och versaler liknar varandra. Men gemener har fler navigeringskommandon på grund av deras inställningar i filen.

En annan viktig sak är att markeringar inte raderas när filen eller sessionen avslutas. Så om du har angett ett märke kommer filmärkena att förbli intakta när du öppnar igen.

Vim Marks Cheat Sheet

De nyckeloperationer som du behöver för att använda märkesfunktionen i Vim-redigeraren nämns i följande bild.

Slutsats

Märkena i Vim-redigeraren är anpassade positioner för att navigera i en fil med hundratals rader. Det finns två typer av märken, versaler och gemener. De små bokstäverna är praktiska för att navigera i filen. För att navigera över filerna används versaler. För att sätta märket, bokstaven m används med en annan liten eller stor bokstav {a-z, A-Z}. Märken för alla filer kan listas med hjälp av :märken kommando. För att ta bort ett märke :delmarks eller :delm kommandon med märkets namn används.