Zoeken op website

8 Interessante ‘Vi/Vim’ Editor Tips en trucs voor elke Linux-beheerder - Deel 2


In het vorige artikel van deze serie hebben we 7 tips en trucs besproken die je kunt toevoegen aan je vi/m-vaardigheden. Naast de eerder gegeven redenen is het leren hoe je effectief een teksteditor in Linux kunt gebruiken een essentiële vaardigheid voor een systeembeheerder of ingenieur en is het een vereiste competentie om te slagen voor elk groot Linux-certificeringsprogramma (zoals LFCS, LFCE, RHCSA en RHCE). .

Dat gezegd hebbende, laten we aan de slag gaan.

TIP #8: Maak horizontale of verticale vensters

Deze tip werd gedeeld door Yoander, een van onze lezers, in deel 1. Je kunt vi/m starten met meerdere horizontale of verticale scheidingen om afzonderlijke bestanden in hetzelfde hoofdvenster te bewerken:

Start vi/m met twee horizontale vensters, met test1 bovenaan en test2 onderaan

vim -o test1 test2 

Start vi/m met twee verticale vensters, met test3 aan de linkerkant en test4 aan de rechterkant:

vim -O test3 test4 

U kunt de cursor van het ene venster naar het andere verplaatsen met de gebruikelijke vi/m-bewegingsroutine (h: rechts, l: links, j: onder, k: boven):

  1. Ctrl+w k – bovenaan
  2. Ctrl+w j – onderaan
  3. Ctrl+w l – links
  4. Ctrl+w h – rechts

TIP #9: Verander letters, woorden of hele regels in HOOFDLETTERS of kleine letters

Let op: deze tip werkt alleen in vim. In de volgende voorbeelden is X een geheel getal.

  1. Om een reeks letters in hoofdletters te veranderen, plaatst u de cursor op de eerste letter, typt u vervolgens gUX in de ex-modus en drukt u ten slotte op de pijl-rechts op het toetsenbord.
  2. Om een X aantal woorden te wijzigen, plaatst u de cursor aan het begin van het woord en typt u gUXw in de ex modus.
  3. Om een hele regel in hoofdletters te veranderen, plaatst u de cursor ergens op de regel en typt u gUU in de ex-modus.

Als u bijvoorbeeld een hele regel kleine letters naar hoofdletters wilt converteren, plaatst u de cursor ergens op de regel en typt u gUU:

Als u bijvoorbeeld twee hoofdletters woorden naar kleine letters wilt converteren, plaatst u de cursor aan het begin van het eerste woord en typt u gu2w:

TIP #10: Verwijder tekens, woorden of tot het begin van een regel in de INSERT-modus

Hoewel u in de ex-modus (dat wil zeggen dw om een woord te verwijderen) tekens of meerdere woorden tegelijk kunt verwijderen, kunt u dit ook als volgt doen in de Invoegmodus:

  1. Ctrl + h: verwijder het vorige teken naar de plaats waar de cursor zich momenteel bevindt.
  2. Ctrl + w: verwijder het vorige woord tot de plaats waar de cursor zich momenteel bevindt. Om dit correct te laten werken, moet de cursor in een lege ruimte worden geplaatst na het woord dat u wilt verwijderen.
  3. Ctrl + u: verwijder de huidige regel, beginnend bij het teken direct links van de plaats waar de cursor staat.

TIP #11: Verplaats of kopieer bestaande regels naar een andere regel van het document

Hoewel het waar is dat je in de ex-modus de bekende dd-, yy- en p-opdrachten kunt gebruiken om respectievelijk regels te verwijderen, yanken (kopiëren) en plakken, werkt dit alleen als de cursor op de plek staat waar je die bewerkingen wilt uitvoeren . Het goede nieuws is dat je met de opdrachten kopiëren en verplaatsen hetzelfde kunt doen, ongeacht waar de cursor zich momenteel bevindt.

Voor het volgende voorbeeld gebruiken we een kort gedicht getiteld “Forever” van Terri Nicole Tharington. Om te beginnen laten we vim de regelnummers weergeven (:set nu in de Command-modus – beschouw dit als een extra tip). We gebruiken :3copy5 (ook in de Command-modus) om regel 3 onder regel 5 te kopiëren:

Maak nu de laatste wijziging ongedaan (Esc + u – nog een bonustip!) en typ :1move7 om regel 7 te vervangen door regel 1. Let op hoe regels 2 tot en met 7 zijn verschoven up en voormalige lijn 1 beslaat nu lijn 7:

TIP #12: Tel overeenkomsten die voortkomen uit een zoekopdracht op patroon en ga van de ene gebeurtenis naar de andere

Deze tip is gebaseerd op het vervangingscommando (tip #7 in Deel 1 van deze serie), met de uitzondering dat er niets wordt verwijderd, aangezien het vervangingsgedrag wordt overschreven door de optie n, resulterend in het aantal keren dat het opgegeven patroon voorkomt:

Zorg ervoor dat u geen enkele schuine streep weglaat!

:%s/pattern//gn 

Bijvoorbeeld,

:%s/libero//gn

Om van het ene exemplaar van het patroon naar het volgende te gaan in de ex-modus, drukt u op n (kleine letter N). Om naar de vorige instantie te gaan, drukt u op N.

TIP #13: Open vi/m direct op een opgegeven regel

Wanneer u vi/m start, wordt de cursor standaard in eerste instantie op de laatste regel geplaatst die is bewerkt. Als je het programma wilt openen en de cursor direct op een bepaalde regel wilt plaatsen, kun je de volgende truc gebruiken:

vim filename +line_number

Open bijvoorbeeld forever.txt en plaats de cursor in regel 6:

vim forever.txt +6

Laten we dit voorbeeld een beetje aanpassen. Stel dat we het bestand willen openen op de regel waar het derde exemplaar van het patroon verschijnt:

vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

Laten we eens nader bekijken wat het bovenstaande commando doet:

  1. grep -in patroonbestandsnaam – toont alle regels uit de bestandsnaam waar het patroon voorkomt, met het regelnummer aan het begin van elke uitvoerregel.
  2. sed -n 3p – geeft de derde regel weer van de uitvoer van de voorgaande pijplijn.

Eindelijk,

  1. cut -d: -f1 retourneert het eerste veld van de vorige pijplijn, waarbij de dubbele punt (:) het veldscheidingsteken is.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1

Het resultaat van het vorige commando wordt vervolgens doorgegeven aan vi/m om het programma op de opgegeven regel te openen.

TIP #14: Pas uw vi/m-omgeving aan

Als u vi/m gebruikt om configuratiebestanden te bewerken of code te schrijven, wilt u de regelnummers kunnen weergeven wanneer u het programma voor het eerst opent en automatisch inspringen instellen, zodat wanneer u op Enter drukt > toets, de cursor wordt automatisch op de juiste positie geplaatst. Bovendien wilt u wellicht het aantal witruimten dat een tabblad in beslag neemt, aanpassen.

Hoewel je dat elke keer kunt doen als je vi/m start, is het eenvoudiger om deze opties in ~/.vimrc in te stellen, zodat ze automatisch worden toegepast:

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

Voor verdere opties om uw vi/m-omgeving aan te passen, kunt u de online vim-documentatie raadplegen.

TIP #15: Krijg algemene Vim-hulp/opties met vimtutor

Als je op enig moment je algemene vi/m-vaardigheden moet opfrissen, kun je vimtutor starten vanaf de opdrachtregel, waarna een volledige vi/m-help wordt weergegeven waar je zo vaak als je wilt naar kunt verwijzen zonder dat u een webbrowser hoeft op te starten om te zoeken hoe u een bepaalde taak in vi/m kunt uitvoeren.

vimtutor

Merk op dat u door de inhoud van vimtutor kunt navigeren of zoeken alsof u door een gewoon bestand in vi/m navigeert.

Samenvatting

In deze serie van twee artikelen heb ik verschillende vi/m-tips en -trucs gedeeld die je zouden moeten helpen effectiever te zijn als het gaat om het bewerken van tekst met behulp van opdrachtregelhulpmiddelen. Ik weet zeker dat je er nog meer hebt – dus deel ze gerust met de rest van de community door het onderstaande formulier te gebruiken. Zoals altijd zijn ook vragen en opmerkingen welkom.