Aan de slag met Vim voor Linux

Stel je voor dat je tot aan je knieën in je Linux systeem zit, wanhopig probeert een bestand te bewerken, en elke poging voelt aan als het ontcijferen van een oud code. Als hoe meer je rondklikt, hoe meer je verdwaalt, waarom dan niet naar Vim voor Linux gaan?

In deze tutorial zal je de geheimen van Vim ontrafelen, een veelgeprezen tekstbewerker, waardoor je van een Linux-zwerver verandert in een command-line virtuoos.

Pak je metaforische zwaard (oftewel je toetsenbord) en duik in de wereld van Vim!

Vereisten

Hier zijn een paar vereisten om het podium te bereiden voor het beheersen van Vim op je Linux systeem:

  • A Linux OS – This tutorial uses an Ubuntu 22.04 LTS.

Bestanden maken en bewerken met Vim voor Linux

Vim werkt in verschillende modi, elk met unieke bewerkingsmogelijkheden. Maar voordat je naar die modi springt, moet je eerst leren hoe je bestanden kunt maken en bewerken met Vim op Linux.

Volg deze stappen om een bestand te maken en bewerken met Vim:

1. Open een terminal en voer de volgende vim opdracht uit om een bestand genaamd sshd_config (willekeurig) te maken met Vim. Deze opdracht maakt automatisch het bestand aan als het niet bestaat. Anders wordt het bestaande bestand geopend in Vim.

De interface van Vim ziet eruit zoals hieronder als je een nieuw bestand hebt gemaakt, wat aangeeft dat Vim momenteel in de commandomodus staat. De commandomodus is een van de primaire modi waarin je met de tekst in de Vim-editor kunt werken.

Creating a new file via Vim for Linux

2. Kopieer vervolgens de onderstaande tekst naar je klembord, die voorbeeld SSH-serverinstellingen bevat puur ter demonstratie en weerspiegelt geen werkelijke serverconfiguraties.

3. Druk in Vim op i, de opdracht om de invoegmodus in te voeren. De invoegmodus is ook een van de primaire modi in Vim, waarmee je de inhoud van je document kunt typen en wijzigen.

Zodra je de invoegmodus binnenkomt, zie je dat de statusregel — INSERT — weergeeft zoals hieronder.

Entering the insert mode on Vim

4. Druk nu op Ctrl+Shift+V of Shift+Insert om de tekst die je in stap twee hebt gekopieerd naar de Vim-editor te plakken, en druk op Esc om de invoegmodus te verlaten (schakelt over naar de commandomodus).

Merk op dat de status — INSERT — verdwijnt, wat aangeeft dat je terug bent in de commandomodus.

Inserting the copied text into Vim

5. Typ tot slot de :w opdracht en druk op Enter om de wijzigingen aan het bestand op te slaan zonder de editor te sluiten.

Indien nodig kunt u de onderstaande andere opdrachten uitvoeren:

Command Details
:q! Quit the editor without saving the changes.
:w! Write the current file changes forcefully.
:wq Save the changes and quit the editor (or :wq! to save and quit forcefully).
e! Revert to the last saved version of the file.
Saving the changes

De statusregel geeft de gegevensgrootte weer die naar het bestand is geschreven, wat in dit geval 23 regels (23L) en 624 bytes (624B) is.

Verifying the changes are saved

Navigeren door teksten in Vim

Na het beheersen van de kunst van het maken en bewerken van bestanden met Vim, zul je je verdiepen in een cruciale vaardigheid die je tekstbewerkingsvaardigheden zal verbeteren – navigeren in Vim. Effectief navigeren is de sleutel tot het ontsluiten van het potentieel van Vim, zoals het verkennen van een uitgestrekt landschap.

Om te zien hoe je door teksten kunt navigeren in Vim, ga je als volgt te werk:

1. Typ nu het :set nu commando en druk op Enter om de regelnummering in Vim in te schakelen. Regelnummering is een cruciale functie van de editor bij het werken met code of grote documenten.

Als het lukt, zie je de regelnummers in de editor, zoals hieronder weergegeven.

Setting the line numbering

2. Schakel vervolgens over naar de commandomodus (Esc) en druk op het gg commando om naar het begin van het bestand te springen.

Jumping to the beginning of the file

3. Druk vervolgens op een van de volgende commando’s totdat je het begin van de MaxSessions parameter bereikt, en druk op $ om de cursor naar het einde van de regel te verplaatsen.

Command Details
h Move the cursor to the left or the previous character.
j Move the cursor one line down.
k Move the cursor one line up.
l Move the cursor to the right or the next character.
Placing the cursor at the end of the MaxSessions line

4. Vervang nu een tekst door de volgende:

  • Druk op i om over te schakelen naar de invoegmodus.
  • Verwijder de waarde (Backspace of Delete), die 10 is, en vervang deze door 25.
  • Schakel over naar de commandomodus (Esc) en sla de wijzigingen op (:w).
Editing a text in Vim

Teksten invoegen op specifieke punten

Vim biedt een reeks commando’s die nauwkeurige controle bieden over waar en hoe nieuwe tekst wordt ingevoegd (precies waar je ze nodig hebt). Deze functie werkt of je nu aan het begin van een regel, direct na de huidige cursorpositie, of aan het einde van een regel wilt invoegen.

Om te zien hoe het invoegen van tekst op specifieke punten werkt, voer je het volgende uit:

1. Druk op I (Shift+I) terwijl de cursor aan het einde van de regel staat om de invoegmodus in te voeren en tegelijkertijd de cursor aan het begin van de regel te plaatsen.

Inserting at the beginning of the line

2. Schakel over naar de commandomodus (Esc), verplaats de cursor naar een ander karakter in de huidige regel tekst (bijvoorbeeld naar het begin), en druk op het a-commando.

Dit commando schakelt Vim over naar de invoegmodus en plaatst de cursor op het volgende karakter vanaf zijn vorige positie. Deze functionaliteit is handig voor het snel toevoegen van tekst in het midden van een regel zonder de bestaande tekst te verstoren.

Inserting at the current cursor point

3. Voeg ‘y’ in om de sleutel MaxSession als MyaxSession te spellen, zoals hieronder weergegeven, en keer terug naar de commandomodus (Esc).

Je zult merken dat het nieuwe karakter ‘y’ onmiddellijk na het eerste verschijnt.

Inserting a character within a line of text

4. Pas nu de regel tekst als volgt aan:

  • Druk op Shift+A om het A-commando uit te voeren, waardoor Vim de invoegmodus kan betreden en de cursor naar het einde van de regel kan verplaatsen. Deze functionaliteit is ideaal voor het snel toevoegen van inhoud zoals een puntkomma of het voltooien van een zin.
  • Voeg 0 aan het einde van de regel toe, wat de waarde verandert naar 250.
  • Keer terug naar de commandomodus (`Esc`), en sla de wijzigingen op (`:w`).
Appending text to the end of the line

Nieuwe regels openen

Nu je strategisch tekst hebt leren plaatsen in je Vim-bestanden, is het tijd om een vaardigheid te verkennen die ervoor zal zorgen dat je inhoud goed gestructureerd en georganiseerd blijft. Het vermogen om nieuwe regels te openen in Vim is je toegangsbewijs tot een meer leesbare en esthetisch aantrekkelijke tekst.

Om nieuwe regels te openen, boven of onder, voltooi je de onderstaande stappen:

1. Terwijl je in de commandomodus bent, druk op `o` om een nieuwe regel onder de huidige regel tekst te openen en voeg de volgende opmerking toe over de MyaxSessions.

# Opmerking: Pas maxSessions aan volgens de serverbelasting
Adding a new line below the current line of text

2. Schakel over naar de commandomodus (`Esc`), plaats de cursor op een andere regel tekst en druk op `O` (Shift+O) om een nieuwe regel boven de huidige regel tekst toe te voegen.

Adding a new line above the current line of text

3. Voeg nu de volgende opdracht toe aan het bestand en sla de wijzigingen op (`:w`).

# Wees voorzichtig met logniveaus om prestatieproblemen te voorkomen
Populating the new line of text

Woorden en regels tekst verwijderen

Vim biedt efficiënte commando’s voor het verwijderen en vervangen van tekst die verder gaan dan de basis Delete- of Backspace-toetsen. Deze commando’s zijn toegankelijk vanuit de commandomodus, waarmee je snel wijzigingen en correcties kunt aanbrengen, zodat je karakters, woorden of hele regels kunt verwijderen of vervangen.

Om tekst te verwijderen en vervangen in Vim voor Linux, voer het volgende uit:

1. Verplaats uw cursor naar de parameter MyaxSessions, specifiek naar het teken ‘y’.

Placing the cursor at a specific character

2. Druk vervolgens op x om onmiddellijk het teken onder de cursor te verwijderen, wat in dit geval ‘y’ is.

De parameter is terug naar zijn oorspronkelijke tekst als MaxSessions, zoals hieronder getoond.

Deleting a character under the cursor

3. Verplaats uw cursor naar de regel PermitRootLogin no:.

Positioning the cursor

4. Druk nu op "_dd om de hele regel tekst te verwijderen, ongeacht de positie van de cursor.

Het "_ gedeelte in het commando geeft het black-hole register aan, dat de verwijderde tekst verwerpt (het wordt niet opgeslagen in een register).

Vim heeft zijn eigen set van registers waarin u teksten kunt opslaan, en het niet specificeren van het black-hole register zorgt ervoor dat het commando de tekst knipt in plaats van deze te verwijderen.

Als het succesvol is, merkt u dat de regel PermitRootLogin no: verdwenen is.

Deleting an entire line of text

5. Terwijl u zich in de commandomodus bevindt, plaats uw cursor aan het begin van het woord Specifies in de regel # Specificeert of root kan inloggen via ssh.

Placing the cursor at the beginning of a word

6. Voer tot slot het commando "_dw uit, wat het woord Specifies verwijdert zoals hieronder getoond:

Deleting a word

Optioneel kunt u kiezen voor de volgende commando’s voor extra verwijderingsbewerkingen:

Command Details
"_d$ Delete texts from the cursor position to the end of the line.
"_D Deletes from the cursor position to the end of the line.
"_d^ Deletes from the cursor position to the first non-whitespace character of the line
"_dgg Deletes from the cursor position to the beginning of the file.
"_dG Deletes from the cursor position to the end of the file.

Vervangen van Tekens en Regels Tekst

Van strategische verwijderingen in Vim, verleg je aandacht naar de keerzijde van de medaille – het vervangen van tekens en regels tekst. Vervangen is de penseelstreek die je in staat stelt om je tekst precies te verfijnen en opnieuw te definiëren. Het goede nieuws is dat Vim je in staat stelt om eenmalige karaktervervangingen of hele regels tekst uit te voeren.

Om tekens en regels tekst te vervangen, ga verder met deze taken:

1. Plaats je cursor op de regel AuthorizedKeysFile .ssh/authorized_keys, specifiek op het ‘z’ teken in authorized, zoals hieronder weergegeven:

Positioning the cursor

2. Zodra je gepositioneerd bent, druk op r, wat Vim vertelt dat je het teken onder de cursor gaat vervangen en voer het ‘s’ teken in. Het r commando stelt je in staat om een teken te vervangen zonder eerst de invoegmodus (i) in te voeren.

Merk op dat het ‘z’ teken in authorized is vervangen door het ‘s’ teken, waardoor het woord verandert in authorised.

Replacing a character within a line of text

3. Plaats vervolgens je cursor bij het teken ’z‘ in AuthorizeKeysFile.

Placing the cursor on another character

4. Druk op R (Shift+R ) om de vervangmodus in te voeren, typ ‘s’ om het teken te vervangen, maar verlaat de vervangmodus nog niet.

In tegenstelling tot het r commando, dat je alleen in staat stelt om één teken te vervangen, stelt het R commando je in staat om bestaande tekst te overschrijven terwijl je continu typt.

Entering replace mode

5. Uiteindelijk kopieert u de volgende tekst naar het klembord, verplaatst u uw cursor naar het begin van het bestand en plakt u de gekopieerde tekst (Ctrl+Shift+V of Shift+Insert).

Aangezien u nog steeds in de vervangingsmodus bent, vervangt het plakken van de tekst de eerste regel in het bestand.

Overwriting an entire line of text via the replace mode

Teksten zoeken binnen een bestand

Betrokken bij het opnieuw doen of ongedaan maken van acties, komt de vaardigheid om teksten binnen een bestand te zoeken van pas. Vim stelt u in staat om specifieke woorden, zinnen of patronen in uw bestand te zoeken.

Stel je de enorme productiviteitsboost voor wanneer je specifieke tekstgedeelten snel kunt lokaliseren en manipuleren zonder doelloos te scrollen.

Om naar teksten in een bestand te zoeken, volg deze stappen:

1. Verplaats uw cursor naar het begin van het bestand (gg commando), druk op / (voorwaartse schuine streep) om de zoekmodus te starten, typ de zoekterm log en druk op Enter.

Dit commando zoekt naar de door u gespecificeerde term (log), en verplaatst de cursor naar de volgende voorkomst van de term.

Searching for the term “log”

2. Druk vervolgens op n om naar de volgende voorkomst van de term te gaan.

Moving to the next occurrence of the term “log”

3. Druk nu op N (Shift+N) om terug te keren naar de vorige voorkomst.

Moving back to the previous occurrence of the term “log”

Bovendien biedt Vim andere zoek sneltoetsen zoals de volgende voor meer zoekflexibiliteit:

Command Details
? Initiates a reverse search of a term.
* Performs a forward search for the word under the cursor. Continue pressing * to cycle through further occurrences of the word until it loops back to the first instance.
# Performs a backward search for the word under the cursor. Continuously pressing # works similarly to the * command but cycles until it loops back to the last instance.

Zoeken combineren met andere commando’s op Vim

Terwijl u door de ingewikkelde landschappen van Vim navigeert, waarom voegt u niet nog een laag toe aan uw tekstbewerkingsvaardigheden – het combineren van zoekopdrachten met andere commando’s?

Vim stelt je in staat om handelingen uit te voeren, variërend van het vervangen van specifieke gevallen tot het verwijderen van regels die overeenkomen met een patroon.

Om de synergie tussen zoeken en handelen in Vim te ervaren, voer je het volgende uit:

1. Terwijl je in de commandomodus bent, plaats de cursor op het startpunt waar je de verwijdering wilt beginnen (dwz de eerste keer dat de zoekterm logboek voorkomt).

Positioning the cursor at the first occurrence of the term “log”

2. Typ vervolgens d/logboek en druk op Enter om alles te verwijderen vanaf de positie van de cursor tot de volgende keer dat de term logboek voorkomt, zoals hieronder weergegeven.

Deleting everything from the cursor up to the next occurrence of “log”

3. Maak de vorige actie ongedaan (met het u-commando) en plaats de cursor op de eerste keer dat de zoekterm logboek voorkomt.

Placing the cursor at the first instance of the search term “log”

4. Voer nu het onderstaande commando uit om teksten binnen een specifiek bereik te zoeken en vervangen, waarbij:

  • :. – Schakelt over naar de commandomodus (:) op de huidige regel (.).
  • ,$ – Specificeert het bereik voor de vervanging.
  • s/log/logs/g – Substitute all occurrences of the old word (log) with new (logs) globally (g) within the specified range.
Replacing all occurrences of the term “log” with “logs” within a specified rage

Het selecteren van tekst in de visuele modus in Vim

Naast het combineren van de kunst van zoeken met andere commando’s in Vim, moet je een functie onthullen die je tekstbewerkingservaring transformeert. De visuele modus van Vim stelt je in staat om tekst interactiever en visueel te manipuleren. De visuele modus biedt een flexibele en efficiënte methode om delen van je tekst te markeren en erop te handelen.

Om tekst te selecteren en bewerken, kun je ervoor kiezen om individuele tekens te selecteren en bewerken of blokken tekst te selecteren en bewerken, zoals hieronder beschreven:

1. Verplaats uw cursor naar het begin van het bestand (met het gg-commando) en druk op v om de visuele modus te activeren, zoals hieronder wordt weergegeven.

Entering visual mode

2. Druk op $ om uw cursor naar het einde van de regel te verplaatsen. Omdat u zich in de visuele modus bevindt, markeert het commando de regel tekst.

Highlighting a line of text

3. Voer nu een kopieer-en-plakactie uit zoals hieronder beschreven:

  • Druk op y om de gemarkeerde tekst naar het register van Vim te kopiëren.
  • Druk op G$ om de cursor naar het einde van de laatste regel in het bestand te verplaatsen.
  • Druk op p om de gekopieerde tekst in te voegen (specifiek na de cursor).
    Merk op dat het p-commando verschilt van de sneltoetsen voor het plakken van tekst (Ctrl+Shift+V of Shift+Insert). Omdat u de tekst kopieert met het y-commando, wordt de tekst opgeslagen in het register van Vim, en het p-commando plakt de tekst uit het register.
Copying and pasting a line of text after the cursor
Copying and pasting a line of text at the cursor’s position

4. Maak uw vorige actie ongedaan (u), verplaats de cursor naar het begin van het bestand (met het gg-commando) en druk op V (Ctrl+V) om de visuele lijnmodus in te voeren.

In tegenstelling tot het selecteren van een enkele regel in de visuele modus, stelt de visuele lijnmodus u in staat om meerdere regels tekst te selecteren, zoals u zult zien in de volgende stap.

Entering visual line mode

5. Gebruik uw pijltoets omlaag om de tekens te selecteren vanaf het begin van het bestand tot aan de regel Protocol 2.

Selecting multiple lines of text via visual line mode

6. Druk op d om de geselecteerde meerdere regels tekst te knippen.

Cutting multiple lines of text

7. Plak ten slotte de tekst die u hebt geknipt in stap zes als volgt in:

  • Verplaats naar de laatste regel in het bestand (G) en maak een nieuwe regel eronder (o).
  • Terug naar de commandomodus (`Esc`), en plak de tekst (`p`).
Pasting multiple lines of text

Conclusie

Gefeliciteerd! Je hebt je een weg gebaand door de complexe rijken van Vim voor Linux, waarbij je onderweg een schat aan tekstbewerkingswijsheid hebt ontgrendeld. Van het maken en bewerken van bestanden tot het beheersen van de kunst van de visuele modus, je hebt de hoed van een Vim-virtuoos opgezet.

Maar je commandoline-avonturen zijn nog maar net begonnen. Waarom verken je niet geavanceerde functies zoals macro’s en plugins om Vim aan te passen aan je behoeften?

Gebruik deze fundamentele vaardigheden om diepere aspecten van Vim te verkennen, zoals bestandsbeheer, complexere zoekpatronen en Vim-scripting voor personalisatie.

Source:
https://adamtheautomator.com/vim-for-linux/