Articles

Vim zoeken en vervangen

Posted on

Vim is een geavanceerde en populaire teksteditor die in de meeste Linux distributies is voorgeïnstalleerd. Het is een op de opdrachtregel gebaseerde teksteditor die meestal wordt gebruikt in niet-GUI gebaseerde besturingssystemen. Het is zeer configureerbaar en heeft een groot aantal mogelijkheden. Een belangrijk punt met betrekking tot Vim is dat het zeer geoptimaliseerd is voor herhalingen.

In dit artikel, zullen we een van de meest handige functies uitleggen, namelijk zoeken en vervangen. Met een handvol instellingen kun je alles wat je maar wilt razendsnel en met een fijnere granulariteit doorzoeken.

Methode #1 Eén voorkomend woord tegelijk zoeken en vervangen (met de schuine streep en punt commando)

De eenvoudigste manier om een woord te zoeken en te vervangen in Vim is door gebruik te maken van de schuine streep en punt commando. Slash (/) kan worden gebruikt om naar een woord te zoeken, terwijl de punt (.) kan worden gebruikt om dat woord te vervangen.

Volg de onderstaande eenvoudige stappen om een woord te zoeken en te vervangen in Vim editor:

  • Open het bestand in Vim
  • Druk op de slash (/) toets samen met de zoekterm zoals “/ search_term” en druk op Enter. Het geselecteerde woord wordt gemarkeerd.
  • Druk vervolgens op de toets cgn om het gemarkeerde woord te vervangen en voer de replace_term in
  • Keer terug naar de normale modus. Druk vervolgens op “n” om naar de volgende zoekterm te gaan.
  • Druk vervolgens op de punt (.) als u de volgende zoekterm wilt vervangen door dezelfde vervang_term, druk anders nogmaals op de “n”-toets om naar de volgende zoekterm te gaan.

Het is de snelste en beste methode voor basis zoek- en vervangfuncties, omdat het slechts een paar toetsaanslagen vergt en minder verstoring van uw huidige werk veroorzaakt. Maar als je een woord zoekt dat te vaak voorkomt, wordt het een repeterende en tijdrovende taak.

Met Vim is er een andere, betere manier om deze repeterende taak te vermijden, namelijk met het substituut-commando.

Methode #2 Zoeken en vervangen met het substituut-commando

Het substituut-commando kan worden gebruikt om basis- tot geavanceerde zoek- en vervangfuncties uit te voeren met een enkel commando. De syntaxis voor dit commando is:

$ :s/<search_term><replace_term>/option

Merk op dat u dit commando in normale modus moet invoeren.

Waar

  • S: staat voor substitute
  • search_term: het woord dat u wilt zoeken en vervangen
  • replace_term: het woord waarmee u het wilt vervangen
  • Option: c (voor bevestiging), g (vervang alle voorkomen in één regel), i (voor het negeren van de zaak)

Zoeken en vervangen

Om basis zoeken en vervangen uit te voeren met behulp van het substituut commando, gebruik je de volgende syntaxis:

:%s/<search_term><replace_term>/g

Dit commando zal alle instanties van search_term vervangen door de replace_term.

Dit is bijvoorbeeld onze voorbeeldtekst:

“Ubuntu is een van de meest gebruikte Linux OS. Ubuntu bevat duizenden nuttige programma’s. Met de opdrachtregel van Ubuntu kunt u bijna elke taak uitvoeren”.

Om elk voorkomen van “Ubuntu” door “Debian” in de volgende tekst te vervangen, zou het volgende commando worden gebruikt:

:%s/Ubuntu/Debian/g

Zoeken en vervangen op een enkele regel

Om het voorkomen van een woord alleen op een enkele regel te zoeken en te vervangen in plaats van in het hele bestand, gebruikt u de volgende syntaxis:

:s/<search_term></replace_term/g

Om bijvoorbeeld het voorkomen van Ubuntu door Debian in de bovenstaande voorbeeldtekst te vervangen, zou het volgende commando zonder het %-symbool worden gebruikt:

:s/Ubuntu/Debian/g

Zoeken en vervangen met bevestiging

Als u om bevestiging wilt worden gevraagd voordat de zoekterm wordt vervangen, gebruikt u “c” aan het eind van de zoekopdracht, en wel als volgt:

:s/<search_term><replace_term>/gc

Het bovenstaande commando vraagt om bevestiging voor elke vervanging (voer y in voor ja en n voor nee).

Hoofdlettergevoelig zoeken en vervangen

Wanneer u zoeken en vervangen uitvoert in Vim, is dat standaard hoofdlettergevoelig. U kunt een hoofdletterongevoelige zoekopdracht uitvoeren door “i” toe te voegen aan het eind van het commando, als volgt:

:s/<search_term><replace_term>/gi

Zo kunt u bijvoorbeeld, om te zoeken naar de term “Ubuntu”, ongeacht de hoofdletter (UBUNTU, Ubuntu, ubuntu, uBuntu), zou het volgende commando worden gebruikt:

:s/ubuntu/debian/gi

Zoek en vervang het hele woord

Het vervangingscommando zoekt standaard naar elke overeenkomst, of deze nu gedeeltelijk of volledig is. Om de exacte zoek_term te matchen en dan te vervangen door de vervang_term, omsluit de zoek _term binnen de “<>”.

Bijv. in sommige documenten, wil je het exacte woord “jij” zoeken en vervangen door “ik”. In dat geval zou het volgende commando worden gebruikt:

:s/\<

jij>/me/

Het zal het woord “jij” vinden en het vervangen door “mij”. Het zal echter niet woorden als “jouw” vervangen.

Woorden zoeken en vervangen op bepaalde regels

Om een woord te zoeken op bepaalde regels in plaats van op één regel of het hele bestand, kan de volgende syntaxis worden gebruikt:

:<start_regel><eind_regel>s/<search_term><replace_term>/g

Bijv, om het voorkomen van Ubuntu in regels van 3 tot 8 in een bestand te vervangen door Debian, zou het commando zijn:

:1,10s/ubuntu/debian/g

Om het voorkomen van een woord vanaf de huidige regel tot het volgende x aantal regels te zoeken en te vervangen, zou de volgende syntaxis worden gebruikt:

:s/search_term/replace_term/g x

Ook voor het zoeken en vervangen van een woord vanaf de huidige regel tot de laatste regel zou de volgende syntaxis worden gebruikt:

:.,$s/search_term/replace_term/g

CONCLUSIE

In dit artikel hebben we de twee commandoregelmanieren geleerd om een willekeurig woord te zoeken en te vervangen in een Vim-editor. Het eerste commando, het gebruik van de schuine streep en de punt, is de eenvoudigste en gemakkelijkste methode, maar het blijkt repetitief te zijn als je een woord zoekt en vervangt dat te vaak voorkomt. Het andere commando, het substitutiecommando, lijkt misschien moeilijk en ingewikkeld, maar als je het eenmaal begint te oefenen, zul je merken dat het uiterst nuttig is in verschillende scenario’s.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *