Behovet av att lära sig använda textredigerare i Linux är obestridligt. Varje systemadministratör och ingenjör hanterar dagligen konfigurationsfiler (ren text), och de flesta gånger görs detta enbart med ett eller flera verktyg från ett kommandoradsgränssnitt (t.ex. nano, vim, eller emacs).
Medan nano är kanske mer lämplig för nya användare, vim eller emacs är det valfria verktyget för mer erfarna användare på grund av dess avancerade funktioner.
Men det finns ännu en anledning till att lära dig att använda en av dessa textredigerare bör vara högsta prioritet för dig: du kan antingen stöta på en CLI-server eller bara köra till ett problem med skrivbordshanteraren i din GUI-baserade Linux-server eller skrivbord och den enda resursen för att undersöka den och redigera konfigurationsfiler är kommandot linje.
Mellan denna artikel och nästa i denna serie med 2 artiklar kommer vi att granska 15 tips och tricks för att förbättra din vim Kompetens. Det antas att du redan känner till den här textredigeraren. Om inte, gör dig själv en tjänst och bekanta dig med vim innan du går vidare: du kanske vill hänvisa till
Hur man använder vi/vim som en fulltextredigerare för en mycket detaljerad guide om att börja med vim.Del 2: 8 Intressanta tips för ”Vi/Vim” Editor
När du har startat vim trycker du på F1 eller använda : h i ex för att gå in i onlinehjälpen. Du kan hoppa till ett specifikt avsnitt eller ämne genom att placera markören på det och sedan trycka på Ctrl+]
(Ctrl, sedan den avslutande hakparentes).
När du är klar trycker du på Ctrl+t
för att återgå till föregående skärm. Alternativt kan du leta upp ett specifikt ämne eller kommando med : h
.
Till exempel,
: h x
kommer att visa hjälpen för x(radera) kommando:
och
: h ersättare.
kommer att ta upp hjälp om ersättning kommando (vårt sista tips i den här artikeln).
Om du befinner dig i att redigera en fil som är större än en skärm, kommer du att uppskatta funktionaliteten som tillhandahålls av märken. Du kan tänka dig ett märke i vim som ett bokmärke - när du väl placerar det någonstans kan du snabbt och enkelt gå tillbaka till det. Antag att du redigerar a 300 ord konfigurationsfil och av någon anledning måste du upprepade gånger växla mellan rader 30 och 150 till exempel.
Gå först till raden #30 genom att gå in :30 i ex läge, återgå sedan till kommandoläge och tryck ma (m, då a) för att skapa ett märke med namnet "A" i kö 30.
Gå sedan till rad 250 (med :250 i ex -läge) och tryck på `a
(backtick alltså a) för att återgå till märket a i kö 30. Du kan använda små och stora bokstäver för att identifiera märken i vim (upprepa nu processen för att skapa ett märke med namnet A i kö #250).
Du kan se dina märken med
: markerar aA.
Som du kan se refereras varje märke till en specifik rad / kolumnposition i filen, inte bara efter rad.
Anta att du redigerar ett skalskript och inser att den tidigare utvecklaren var ganska usel när det gäller indragning. Låt oss se hur du kan fixa det med ett par vim -kommandon.
Välj först ett visuellt block genom att placera markören i början av blocket och tryck sedan på Ctrl+v (Ctrl, då v).
Tryck sedan på .
(punkt) -kommandot för att upprepa båda indragningarna. Det valda blocket kommer antingen att flyttas till höger eller till vänster med bara en knapptryckning.
Ett annat klassiskt exempel på att använda punkt kommandot är när du behöver radera en rad ord: placera markören på det första ordet du vill radera och tryck sedan på dw. För att fortsätta radera nästa ord, tryck bara på .
(kortare och enklare än att upprepa dw flera gånger).
Om din tangentbordslayout inte tillåter att enkelt infoga speciella Unicode -tecken i en fil, eller om du hittar dig själv framför en server med andra språkinställningar än den du är van vid, kommer detta trick in praktisk.
För att göra detta, tryck på Ctrl+v i infogningsläge följt av bokstaven u och hexadecimala numeriska koden för det tecken du vill infoga. Du kan kontrollera Unicode -diagram för en lista över specialtecken och deras motsvarande numeriska koder.
Till exempel,
Ctrl+v följt av | returnerar |
u0040 | @ |
u00B5 | μ |
u20AC | € |
Det kommer att finnas tillfällen då du måste infoga utdata från externa kommandon direkt i en fil som redigeras med vim. Till exempel skapar jag ofta en variabel med namnet DIR i mina skript för att lagra den absoluta sökvägen till katalogen där skriptet finns för att kunna använda det senare i skriptet. För att göra det använder jag:
: r! pwd
i ex läge. Således infogas den nuvarande arbetskatalogen.
Ett annat exempel: om du måste använda standardgateway någonstans i ett skript kan du enkelt infoga den i den aktuella filen utan att avsluta vim enligt följande:
:! r ip ruttshow | grep standard | klipp -f 3 -d ""
Om du behöver lägga till innehållet i en separat fil i den du redigerar för närvarande, liknar syntaxen det föregående tipset. Släpp bara utropstecknet så är du klar.
Till exempel för att kopiera innehållet i /etc/passwd:
: r /etc /passwd.
Du kan tycka att detta tips är användbart när du behöver ändra konfigurationsfiler men vill behålla de ursprungliga för att rulla tillbaka till "fabriksinställningar" så att säga.
Sann historia. En gång under en tentamen blev jag ombedd att öppna en stor textfil som innehåller slumpmässiga data. Den tilldelade uppgiften bestod av att ersätta varje förekomst av ordet Klot med Jorden (ja, jag kommer fortfarande ihåg de exakta orden). För dem som känner till sed, detta kommer att ringa en klocka ex läge, typ:
:%s/old/new/g.
var gammal är mönstret att söka efter och ny är strängen som kommer att ersätta den.
I det fall som beskrivs ovan använde jag:
:%s/Globe/Earth/g.
för att få jobbet gjort.
Så vad sägs om att du vill bli ombedd innan du gör byten? Lätt. Lägg bara till en c i slutet av ovanstående kommando, enligt följande:
:%s/old/new/gc.
Förekomsten av mönstret kommer att markeras och du kommer att bli tillfrågad om du vill ersätta det med den nya strängen:
:%s/gacanepa/me/gc.
var
I den här artikeln har vi börjat granska några vim tips och tricks att lägga till dina färdigheter i textredigering. Du kommer förmodligen att tänka på flera andra, så dela dem med hjälp av formuläret nedan och jag kommer att överväga att täcka dem i nästa och sista artikeln i denna vim -serie. Jag ser fram emot att höra från dig.