Linux Tutorial – 6. Vi Text Editor

Indledning

Mestrer Vi-teksteditoren og lær hvordan du kan lave komplekse redigeringer på dine filer med mindre tid og kræfter.

I sidste afsnit oprettede vi et par filer, men de var tomme. Lidt kedeligt, men vi er nødt til at starte et sted. I dette afsnit vil vi se på et værktøj til at lægge indhold ind i filer og også redigere dette indhold. Vi er en teksteditor, der højst sandsynligt er meget anderledes end nogen editor, du har brugt før. Det vil tage et stykke tid at sætte sig ind i det, men når du først har gjort det, vil du indse, at det faktisk er ret kraftfuldt. Det er lidt ligesom touch typing, i starten er det akavet at lære det, og man undrer sig over, hvorfor man gider, men når man først har fået styr på det, vil man ikke have lyst til at gå tilbage.

Selv om man ikke bruger Vi hele tiden, vil man helt sikkert opdage, at de arbejdsmønstre, man udvikler ved at lære editoren, let kan overføres til andre programmer og med stor effekt.

Dette afsnit og de næste par afsnit danner faktisk grundlaget for de sidste par afsnit, hvor vi vil sætte det hele sammen og begynde at lave nogle virkelig funky ting. Jeg har valgt at se på Vi først, så din hjerne har lidt tid til at bearbejde og skabe mening med det som forberedelse til senere, når vi får brug for det.

Vi er et meget kraftfuldt værktøj. I dette afsnit er mit mål ikke at dække alt, hvad Vi kan gøre, men at få dig i gang med det grundlæggende. I slutningen af afsnittet vil jeg give nogle links til ressourcer, hvor du kan lære Vi yderligere. Jeg kan varmt anbefale dig at kigge på et par af dem.

En kommandolinjeeditor

Vi er en kommandolinje-teksteditor. Som du nok er helt klar over nu, er kommandolinjen et helt andet miljø end din GUI. Det er et enkelt vindue med kun tekstinput og output. Vi er blevet designet til at arbejde inden for disse begrænsninger, og mange vil hævde, at det faktisk er ret kraftfuldt som følge heraf. Vi er tænkt som en ren teksteditor (svarende til Notepad på Windows eller Textedit på Mac) i modsætning til en tekstbehandlingspakke som Word eller Pages. Den har dog meget mere kraft i forhold til Notepad eller Textedit.

Dermed skal du droppe musen. Alt i Vi foregår via tastaturet.

Der er to tilstande i Vi. Indsæt (eller Input)-tilstand og redigeringstilstand. I input-tilstand kan du indtaste eller indtaste indhold i filen. I redigeringstilstand kan du bevæge dig rundt i filen, udføre handlinger som sletning, kopiering, søge og erstatte, gemme osv. En almindelig fejl er at begynde at indtaste kommandoer uden først at gå tilbage til redigeringstilstand eller at begynde at skrive input uden først at gå ind i indsætningstilstand. Hvis du gør en af disse to ting, er det som regel let at komme tilbage, så du skal ikke bekymre dig for meget.

Når vi kører vi, udsender vi det normalt med et enkelt kommandolinjeargument, som er den fil, du gerne vil redigere.

vi <file>

Hvis du glemmer at angive en fil, så er der en måde at åbne en fil i vi på, men det er nemmest bare at afslutte vi og prøve en gang til. Husk også, at når vi angiver filen, kan det være med enten en absolut eller relativ sti.

Lad os dykke ned i det og komme i gang. Det bliver svært for mig at demonstrere meget af det her, så i stedet vil jeg liste op, hvad jeg vil have dig til at skrive, og så må du prøve dig frem og se, hvad der sker.

Først skal vi flytte ind i din mappe, som du oprettede i afsnittet om filmanipulation. Vi vil oprette et par filer, og det vil holde dem ude af vejen for dine normale ting.

Nu vil vi redigere vores første fil.

  1. vi firstfile

Når du kører denne kommando, åbner den filen. Hvis filen ikke findes, vil den oprette den for dig og derefter åbne den. (ingen grund til at røre ved filer før du redigerer dem) Når du går ind i vi, vil det se nogenlunde sådan her ud (men afhængigt af hvilket system du er på kan det se lidt anderledes ud).

  1. ~
  2. ~
  3. ~
  4. ~
  5. ~
  6. ~
  7. “firstfile”

Du starter altid i redigeringstilstand, så det første, vi skal gøre, er at skifte til indsætningstilstand ved at trykke på i. Du kan se, hvornår du er i indsætningstilstand, da nederste venstre hjørne fortæller dig det.

  1. ~
  2. ~
  3. ~
  4. ~
  5. ~
  6. ~
  7. — INSERT —

Tryk nu et par linjer tekst og tryk på Esc, hvilket bringer dig tilbage til redigeringstilstand.

Save and Exiting

Der er et par måder at gøre dette på. De gør alle stort set det samme, så vælg den måde, du foretrækker. For alle disse skal du først sikre dig, at du er i redigeringstilstand.

Hvis du er usikker på, om du er i redigeringstilstand eller ej, kan du kigge i nederste venstre hjørne. Så længe der ikke står INSERT er du i orden. Alternativt kan du også bare trykke på Esc for at være sikker. Hvis du allerede er i redigeringstilstand, gør det ikke noget at trykke på Esc, så du gør ingen skade.

De fleste kommandoer i vi udføres, så snart du trykker på en sekvens af taster. Enhver kommando, der begynder med et kolon ( : ), kræver, at du trykker på <enter> for at fuldføre kommandoen.

Spar og afslut den fil, du i øjeblikket har åben

Andre måder at se filer på

vi giver os mulighed for at redigere filer. Hvis vi ville, kunne vi også bruge den til at se filer, men der er to andre kommandoer, som er lidt mere praktiske til det formål. Den første er cat, som faktisk står for concatenate (sammenkædning). Dens hovedformål er at sammenføje filer, men i sin mest grundlæggende form er den nyttig til blot at se filer.

cat <file>

Hvis du kører kommandoen cat og giver den et enkelt kommandolinjeargument, som er den fil, vi lige har oprettet, vil du se dens indhold vist på skærmen efterfulgt af en prompt.

Hvis du ved et uheld kører cat uden at give den et kommandolinjeargument, vil du bemærke, at markøren bevæger sig til den næste linje, hvorefter der ikke sker noget. Fordi vi ikke har angivet en fil, læser cat i stedet fra noget, der hedder STDIN (som vi lærer mere om i afsnittet “Piping og omdirigering”, der som standard er tastaturet. Hvis du skriver noget og derefter trykker <enter>, vil du se cat spejle dit input til skærmen. For at komme ud herfra kan du trykke <Ctrl> + c, som er det universelle signal for Annuller i Linux.

Faktisk set kan du, når du kommer i problemer, generelt trykke <Ctrl> + c for at komme ud af problemerne.

  1. cat firstfile
  2. her vil du se
  3. det indhold, du
  4. indtastede i din fil

Denne kommando er fin, når vi har en lille fil at se, men hvis filen er stor, vil det meste af indholdet flyve hen over skærmen, og vi vil kun se den sidste side af indholdet. For større filer er der en bedre egnet kommando, som er mindre.

less <file>

less giver dig mulighed for at bevæge dig op og ned i en fil ved hjælp af piletasterne. Du kan gå en hel side fremad ved hjælp af mellemrumstasten eller en side tilbage ved at trykke på b. Når du er færdig, kan du trykke på q for quit.

Få et kig på den fil, du lige har oprettet nu ved hjælp af begge disse kommandoer.

Navigation i en fil i Vi

Nu skal vi gå tilbage til den fil, vi lige har oprettet, og indtaste noget mere indhold. I indsætningstilstand kan du bruge piletasterne til at flytte markøren rundt. Indtast yderligere to afsnit med indhold, og tryk derefter på Esc for at gå tilbage til redigeringstilstand.

Nedenfor er nogle af de mange kommandoer, du kan indtaste for at bevæge dig rundt i filen. Leg lidt med dem og se, hvordan de fungerer.

  • Piletaster – flytter markøren rundt
  • j, k, h, l – flytter markøren nedad, opad, venstre og højre (svarer til piletasterne)
  • ^ (caret) – flytter markøren til begyndelsen af den aktuelle linje
  • $ – flytter markøren til slutningen af den aktuelle linje
  • nG – flytter til den niende linje (f.eks. 5G flytter til den femte linje)
  • G – flytter til den sidste linje
  • w – flytte til begyndelsen af næste ord
  • nw – flytte fremad n ord (f.eks. 2w flytter to ord fremad)
  • b – flytte til begyndelsen af det foregående ord
  • nb – flytte tilbage n ord
  • { – flytte et afsnit bagud
  • } – flytte et afsnit fremad

Hvis du skriver :set nu i redigeringstilstand i vi vil det aktivere linjenumre. Jeg synes, at det gør arbejdet med filer meget nemmere at slå linjenumre til.

Sletning af indhold

Vi har lige set, at hvis vi vil bevæge os rundt i vi, er der en hel del muligheder til rådighed for os. Flere af dem giver os også mulighed for at sætte et tal foran dem for at flytte så mange gange. Sletning fungerer på samme måde som bevægelse, faktisk giver flere slettekommandoer os mulighed for at inkorporere en bevægelseskommando for at definere, hvad der skal slettes.

Nedenfor er der nogle af de mange måder, hvorpå vi kan slette indhold i vi. Prøv at lege med dem nu. (se også afsnittet nedenfor om fortrydelse, så du kan fortryde dine sletninger.)

  • x – sletter et enkelt tegn
  • nx – sletter n tegn (f.eks. 5x sletter fem tegn)
  • dd – sletter den aktuelle linje
  • dn – d efterfulgt af en bevægelseskommando. Slet til det sted, hvor bevægelseskommandoen ville have ført dig hen. (f.eks. d5w betyder at slette 5 ord)

Ogældelse

Ogældelse af ændringer i vi er ret nemt. Det er tegnet u.

  • u – Fortryd den sidste handling (du kan blive ved med at trykke på u for at blive ved med at fortryde)
  • U (Bemærk: stort bogstav) – Fortryd alle ændringer i den aktuelle linje

Det videre forløb

Vi kan nu indsætte indhold i en fil, flytte rundt i filen, slette indhold og fortryde det og derefter gemme og afslutte. Du kan nu foretage grundlæggende redigering i vi. Dette er dog kun en lille smule af hvad vi kan gøre. Jeg vil ikke gå ind i alle detaljerne her (jeg tror, jeg har kastet nok efter dig allerede), men jeg vil give dig et par ting, som du måske vil kigge på for at fremme din ekspertise i vi. En simpel søgning i din foretrukne søgemaskine på vi <indsæt begreb her> vil finde dig mange sider med nyttige oplysninger. Der findes også mange snydeark til vi, som opregner alle de kommandoer, du har til rådighed.

  • kopier og indsæt
  • søg og erstat
  • buffers
  • markers
  • ranges
  • settings

Have fun and remember to keep at it at it. vi vil være smertefuldt i starten, men med øvelse vil det snart blive din ven.

Summary

vi Rediger en fil. cat Vis en fil. less Praktisk til visning af store filer.
Ingen mus vi er en teksteditor, hvor alt foregår på tastaturet. Hvis du kan skrive med tastatur, så er det her fantastisk. Hvis ikke, så bør du måske overveje at lære det. Redigeringskommandoer Der er mange af dem. Øvelse er nøglen til at huske de mest almindeligt anvendte og nyttige.

Aktiviteter

Lad os lege med noget indhold.

  • Start med at oprette en fil og indtaste noget indhold i den.
  • Spar filen og se den i både cat og less
  • Gå tilbage i filen i vi og indtast noget mere indhold.
  • Bevæg dig rundt i indholdet ved hjælp af mindst 6 forskellige bevægelseskommandoer.
  • Leg dig frem med flere af slettekommandoerne, især dem, der indeholder en bevægelseskommando. Husk, at du kan fortryde dine ændringer, så du ikke hele tiden behøver at sætte nyt indhold ind.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.