Tekst zoeken en vervangen in Vim op Linux

vim is een van de meest populaire bestandseditors in Linux. Een deel van de populariteit is te danken aan de opdrachtregelmodus van vim, waarmee gebruikers, met name softwareontwikkelaars en geavanceerde gebruikers, de tijd voor bestandswijzigingsbewerkingen kunnen optimaliseren.

In dit artikel zullen we zien hoe u tekst kunt vinden en vervangen in vim opdrachtregelmodus.

Laten we eerst een tekstbestand openen in vim:

vim test.txt

Vim werkt in verschillende modi. De twee belangrijkste modi zijn de hierboven genoemde opdrachtmodus, en de tweede is de modus Invoegen, die wordt gebruikt om de bestandsinhoud te wijzigen.

Als een bestand wordt geopend, werkt vim standaard in de opdrachtmodus. U kunt op drukken I om naar de invoegmodus te gaan.

In de Command-modus kun je direct beginnen met het typen van vim-commando's; ze verschijnen onderaan de terminal. Dit onderste deel fungeert als een geïntegreerde opdrachtprompt in vim.

Een tekenreeks zoeken, typ backslash / gevolgd door de tekenreeks die moet worden doorzocht.

Bijvoorbeeld: /hond

Zoals hierboven te zien is, gaat de cursor naar het volgende voorkomen van de tekenreeks vanaf de positie waar de cursor is geplaatst. De cursor is op de tekenreeks geplaatst bruin zoals op een eerdere afbeelding te zien is. Druk op om de volgende gebeurtenissen te vinden N. Na de laatste keer dat het voorkomt, gaat het terug naar het eerste en geeft het een bericht "zoek op BOTTOM, ga verder bij TOP".

Zoeken naar een tekenreeks met een speciaal teken, of bijvoorbeeld tekens zoals een plus (+), of een spatie, laat het teken voorafgaan door een schuine streep:

Bijvoorbeeld: /C\+

Eerste tekenreeksoptreden op een regel zoeken en vervangen, plaatsen we de cursor op die regel en gebruiken de volgende opdracht:

Bijvoorbeeld: :s/hond/tijger

Zoals je kunt zien in de bovenstaande schermafbeelding, is de derde regel waar de cursor is geplaatst, het woord hond is vervangen door tijger zoals aangegeven in de opdracht.

Alle exemplaren van string op een regel zoeken en vervangen, gebruiken /G op het eind.

Bijvoorbeeld: :s/kat/hond/g

Alle instanties wereldwijd zoeken en vervangen, we gebruiken %s in plaats van alleen s:

Bijvoorbeeld: :%s/hond/muis

Als de tekenreeks uit speciale tekens bestaat, zoals een spatie, kan deze worden voorafgegaan door een schuine streep, op dezelfde manier als eerder.

? Proost!