vim
är en av de mest populära filredigerarna i Linux. En del av populariteten beror på kommandoradsläget för vim, vilket gör det möjligt för användare, särskilt mjukvaruutvecklare och avancerade användare att optimera tiden för filändringsoperationer.
I den här artikeln kommer vi att se hur du hittar och ersätter text i vim
kommandoradsläge.
Låt oss först öppna en textfil i vim:
vim test.txt
Vim fungerar i olika lägen. Två viktigaste lägen är kommandoläget som nämns ovan, och det andra är Insert-läge, som används för att ändra filinnehållet.
Som standard, när en fil öppnas, fungerar vim i kommandoläge. Du kan trycka på i
för att gå till infogningsläge.
I kommandoläge kan du direkt börja skriva vim-kommandon; de visas längst ner på terminalen. Den här nedre delen fungerar som en integrerad kommandotolk i vim.
För att söka efter en sträng, skriv omvänt snedstreck /
följt av strängen som ska sökas.
Till exempel: /hund
Som sett ovan tar den markören till nästa förekomst av strängen från den position där markören är placerad. Markören placerades vid strängen brun
som visas i en tidigare bild. För att hitta nästa förekomst, tryck n
. Efter den senaste händelsen går den tillbaka till första och ger ett meddelande "Sök träffade NEDERST, fortsätter högst upp".
För att söka efter en sträng med ett specialtecken, eller till exempel tecken som ett plus (+), eller ett mellanslag, föregå tecknet med ett snedstreck:
Till exempel: /C\+
För att hitta och ersätta den första strängförekomsten på en rad, placerar vi markören på den raden och använder följande kommando:
Till exempel: :s/hund/tiger
Som du kan se i skärmdumpen ovan, den tredje raden där markören är placerad, ordet hund
ha ersatts med tiger
enligt instruktionerna.
Att hitta och ersätta alla förekomster av sträng på en rad, använda sig av /g
i slutet.
Till exempel: :s/katt/hund/g
Att hitta och ersätta alla förekomster globalt, vi använder %s
istället för bara s
:
Till exempel: :%s/hund/mus
Om strängen består av specialtecken som mellanslag, kan den föregås av snedstreck, på samma sätt som tidigare.
? Skål!