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 de 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.
Als u naar een tekenreeks wilt zoeken , typt u backslash /
gevolgd door de tekenreeks die moet worden doorzocht.
For example:
/dog
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 werd op de tekenreeks geplaatst, brown
zoals weergegeven in een eerdere afbeelding. Druk op om de volgende gebeurtenissen te zoeken n
. Na de laatste keer dat het voorkomt, gaat het terug naar het eerste en geeft het een bericht "zoek op BOTTOM, doorgaan naar TOP" .
Als u wilt zoeken naar een tekenreeks met een speciaal teken , of bijvoorbeeld tekens zoals een plus (+) of een spatie, laat u het teken voorafgaan door een schuine streep:
For example:
/C\+
Om de eerste string-occurrence op een regel te vinden en te vervangen , plaatsen we de cursor op die regel en gebruiken we de volgende opdracht:
For example:
:s/dog/tiger
Zoals je kunt zien in de bovenstaande schermafbeelding, is de derde regel waar de cursor is geplaatst, het woord dog
vervangen door tiger
zoals aangegeven in de opdracht.
Gebruik /g
aan het einde om alle voorkomens van string op een regel te vinden en te vervangen .
For example:
:s/cat/dog/g
Om alle instanties wereldwijd te vinden en te vervangen , gebruiken we in %s
plaats van alleen s
:
For example:
:%s/dog/mouse
Als de tekenreeks uit een speciaal teken bestaat, zoals een spatie, kan deze worden voorafgegaan door een schuine streep, op dezelfde manier als eerder.
🍻 Proost!