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!