Lagre endringer og gå ut av Vi-editoren. Visuell tekstvalgmodus

Beskrivelse.

Vi er en av de første redaktørene designet for drift UNIX-systemer... Den er fortsatt en av de kraftigste redaktørene til i dag og leveres som standard med nesten alle operativsystemer som UNIX. Det er ingen meny i den, og alle handlinger utføres ved hjelp av taster og hurtigtaster.

Vi editor fungerer i to moduser -

kommando

skrive

Umiddelbart etter start vi er det kl kommandomodus... I denne modusen tolkes tastetrykk som kommandoer til editoren, og ikke som tekst som legges inn i dokumentet.

For å bytte til tekstinntastingsmodus må du trykke på en av tastene:

midler

(bli med). I denne modusen settes den inntastede teksten inn etter tegnet som markøren er plassert på.

midler

(sett inn). I denne modusen settes den inntastede teksten inn foran tegnet som markøren er plassert på.

Til slutt, nøkkelen

midler

(åpen). Dette fører til at en ny linje settes inn i teksten etter linjen der markøren er plassert. Deretter flyttes markøren til ny linje, og editoren går inn i innsettingsmodus, slik at tekst kan skrives inn på en ny linje.

Det er også flere andre kommandoer for å angi tekstinntastingsmodus som ikke brukes så ofte. Dette er kommandoen

Hvilken

legger til en tom linje over gjeldende linje

; og teamet

Hvilken

begynner å sette inn tekst på slutten gjeldende linje

Du kan gå tilbake fra tekstinntastingsmodus til kommandomodus ved å trykke

Vi-editoren piper som standard når du går inn i kommandomodus.

Flytte gjennom tekst i vi.

Du kan som regel navigere gjennom teksten i tekstinntastingsmodus ved å bruke piltastene eller tastene

Side opp / Side ned

Dette fungerer imidlertid ikke alltid på terminalen. Det kan også hende at noen terminaler ikke har disse tastene. I dette tilfellet er det andre taster som lar deg navigere i dokumentet i kommandomodus.

For å bruke disse navigasjonstastene, trykk Escape-tasten for å gå inn i kommandomodus. I denne modusen kan du bruke tastene

for å flytte markøren til venstre, ned, opp og høyre. Her er noen tips for å hjelpe deg å huske formålet deres:

l er lengst til høyre og flytter derfor markøren til høyre.

h - lengst til venstre og flytter markøren til venstre

j - ser litt ut som en pil ned. Følgelig flytter den markøren ned.

k - Flytter markøren opp.

Det er noen flere navigasjonstaster i kommandomodus. Tabellen viser de ulike tastene og deres funksjoner.

Merk at standardtallet er 1 med hver kommando i denne tabellen. j-tasten flytter ned 1 linje, k-tasten flytter den opp 1 linje, og så videre. Alle disse kommandoene kan endres ved å skrive inn et tall foran dem. Så den følgende kommandoen flytter seg ned ikke én linje, men fem: 5j

Følgende kommando flytter markøren til den 75. linjen i filen som redigeres i dette øyeblikket: 75G

Og her er kommandoen som flytter markøren til den femte linjen fra bunnen av skjermen: 5L

Denne syntaksen er gyldig for alle kommandoer fra tabellen, bortsett fra kommandoen

som flytter markøren til det første ikke-mellomromstegn i dokumentet.

Andre navigasjonstaster.

I tillegg til markørtastene beskrevet ovenfor, er det flere andre hurtigtaster som ruller tekst på skjermen (se nedenfor):

Tekstredigeringskommandoer.

I vi editor, taster

ikke utføre handlingene som kan forventes av dem. For å slette tekst og lignende, må du bruke forskjellige nøkler i kommandomodus til redaktøren.

Operasjoner på filer og avslutter vi-editoren

Dette er operasjonene for å laste og lagre filer i vi-editoren.

- skriv endringer i filen.

- last opp en fil for redigering.

- gå ut av redigeringsprogrammet uten å lagre.

Søk og erstatt tekst i vi.

start av et direkte søkemønster i kommandomodus. For eksempel / ufs .

- begynnelsen av det omvendte søkemønsteret i kommandomodus.

- slette en linje.

- kopiering av tekst til den interne bufferen.

- lime inn tekst fra utklippstavlen.

Kopiere, klippe ut og lime inn tekst i vi-editor:

Tekst fra utklippstavlen kan limes inn hvor som helst i dokumentet ved å flytte markøren til ønsket plassering og bruke p- eller P-kommandoen.

setter inn tekst i dokumentet etter markøren. Kommando

setter inn tekst foran markøren. Teksten forblir i bufferen selv etter at du limer den inn i dokumentet. Derfor kan du bruke disse kommandoene igjen for å sette inn tekst andre steder i dokumentet.

Advarsel

Vi-editoren lagrer bare teksten til den siste kopien på utklippstavlen eller sletter i bufferen. Med andre ord, hvis du utstedte dd-kommandoen for å slette en tekstlinje, og deretter utførte yy-kommandoen for å kopiere en tekstlinje, vil teksten som dd-kommandoen opererte i bufferen erstattes av teksten til åå operasjon. Dette betyr at teksten fra dd-operasjonen vil gå tapt, dvs. sletteoperasjonen kan ikke angres.

Hvordan kommer jeg meg ut av Vi? Dette er spørsmålet jeg oftest får av brukere som har lansert denne fantastiske editoren for første gang :) Svar umiddelbart: Esc Esc ZQ eller Esc Esc: qa! hvis ingenting må lagres, Esc Esc ZZ eller Esc Esc: w!q hvis innholdet må lagres. Esc to ganger inn i dette tilfellet lar deg gå ut til normal modus fra hvilken som helst redigeringstilstand.

Nei, editor VI, eller rettere sagt VIM (Vi IMproved), er virkelig fantastisk, men veldig uvanlig. I denne korte artikkelen finner du ikke makroer, avansert redigering, innstillinger og mye mer. Her er bare de mest nyttige kommandoene og det grunnleggende om redigering.

Enhver administrator bør i det minste vite det grunnleggende om å jobbe i VIM, fordi i de fleste tilfeller er dette den eneste tilgjengelig redaktør i enkeltbrukermodus på et krasjet *nix-system. Dessuten er det bemerkelsesverdig selv for det faktum at det er inkludert i standardinstallasjonen i nesten alle * nix og brukes ofte som hovedredigering. For eksempel brukes vipw-kommandoen til å redigere passwd-filen i FreeBSD.

For å mestre VIM, må du forstå en enkel ting: mus, markørtaster er onde, og svekker effektiviteten av å jobbe med editoren. Alle tekstoperasjoner i VIM kan (og bør) utføres på hovedtastaturblokken.

Redaktøren kan være i tre moduser og er i utgangspunktet i såkalt "normal" modus. Du kan også gå ut av en hvilken som helst annen modus ved å trykke på Esc-knappen.

Fra normal modus, der operasjoner utføres på teksten og bevegelsen, kan du gå inn i "sett inn" -modus, der den faktiske teksten skrives. Det er følgende knapper for dette:

i - sett inn tekst opp til markøren
I - sett inn tekst fra begynnelsen av linjen
a - sett inn tekst etter markøren
A - sett inn tekst fra slutten av linjen
o - sett inn en ny linje under
O - sett inn en ny linje over
s - erstatt gjeldende tegn og forbli i innsettingsmodus
S - erstatt gjeldende linje
r - Erstatt gjeldende tegn og gå tilbake til normal modus
R - Erstatt flere påfølgende tegn

Kraften til VIM ligger i bruken av kommandomodifikatorer. Før en bevegelseskommando kan og må du ofte bruke en multiplikator. Det vil si at 6w er 6 ord, og 77j er 77 linjer ned.

Det skal bemerkes at modifikatorer ofte kan brukes til andre operasjoner, for eksempel 5S - erstatt 5 påfølgende linjer.

Går gjennom teksten.

Med tanke på at startposisjonen for høyre hånd- nøkler hjkl, da blir valget av nøkler ganske klart:

Kontroller gjeldende posisjon

h - venstre (pekefingeren beveger seg til venstre)
j - ned
k - opp.
l - til høyre.

linje for linje

^ eller 0 - start på linje
$ - slutten av linjen
w (ord) - til begynnelsen av neste ord
e (slutt) - til slutten av gjeldende ord
b (begynn) - til begynnelsen av gjeldende ord og videre til de foregående ordene
G (Go) - gå til linjen (som standard til den siste)

over skjermen

H (Høy) å gå til øverste linje skjerm
M (midt) for å flytte til midtlinjen på skjermen
L (lav) å gå til bunnlinjen vist på skjermen

i følge teksten

(- forrige avsnitt
) - neste avsnitt
(- forrige setning
) er neste setning
ctrl-b (bakover) flytt én skjerm tilbake
ctrl-f (fremover) flytt én skjerm fremover

Bokmerker

Du kan sette et m-merke på hvilken som helst linje og gå tilbake til det når som helst "(det vil si et enkelt anførselstegn og navnet på merket).

Operasjoner på tekst

~ - Endre store og små bokstaver for gjeldende tegn (eller så mange som angitt i multiplikatoren)
d - Slett + multiplikator, for eksempel: d $ - alt til slutten av linjen, d8w - 8 ord, d3h - 3 tegn til høyre, d1G - alt til begynnelsen av teksten.
dd - slett linje (55dd - 55 linjer)
For å være mer presis, er sletteoperasjoner kutte tekst inn i utklippstavlen, det vil si at du kan lime den inn.

y (rykke) - kopier til buffer (y5w - kopier 5 ord)
yy - kopier en streng til bufferen (2yy - 2 linjer)
p (lim inn) - lim inn fra utklippstavlen (2p - lim inn 2 ganger)

Visuell tekstvalgmodus

v (visuelt) - modus for valg av tegn for tegn
V - linjevalgmodus
Ctrl-V - rektangulær tekstblokk
Alle de vanlige handlingene kan utføres på det valgte fragmentet.

Angre og gjør om

u (angre) - Angre siste endring(7u - 7 endringer)
ctrl-r (redo) - Gjenta endring
: tidligere 40m - returner teksten slik den var for 40 minutter siden
: senere 20-årene - gå 20 sekunder fremover langs tidslinjen for tekstendring
: undolist - liste over redigeringer

Avslutt, registrer endringer

Tilbake til emnet for artikkelen:
: w (skriv) skriv fil til disk
: q (avslutt) gå ut av editoren, hvis endringene ikke trenger å lagres, legg til!

Lære Linux, 101

Redigering av filer med vi

En redaktør som alltid er tilgjengelig

Innholdsserie:

Kort anmeldelse

I denne artikkelen vil du lære de grunnleggende teknikkene for å jobbe med vi-editoren, som finnes i nesten alle UNIX- eller Linux-distribusjoner. Du vil lære å:

  • Naviger gjennom dokumentet med vi.
  • Bruk store vi-moduser.
  • Sett inn, rediger, slett, kopier og søk i tekst.
Om denne serien

Denne serien med artikler vil hjelpe deg å mestre oppgavene med å administrere Linux-operativsystemet. Du kan også bruke materialet i disse artiklene til å forberede deg på.

For beskrivelser av artikler i denne serien og for lenker til dem, vennligst kontakt vår. Denne listen oppdateres kontinuerlig med nye artikler etter hvert som de blir tilgjengelige og inneholder de siste (per april 2009) målene for LPIC-1-sertifiseringseksamenene. Hvis en artikkel mangler på listen, kan du finne den mer tidlig versjon tilsvarende de tidligere LPIC-1-målene (frem til april 2009) ved å kontakte vårt.

Denne artikkelen vil hjelpe deg med å forberede deg til LPI 101-eksamenen som administrator. inngangsnivå(LPIC-1) og inneholder materialene til mål 103.8 i emne 103. Målet har en vekt på 3.

Forutsetninger

Å ta ut den største fordelen fra artiklene våre må du ha grunnleggende kunnskap o Linux og ha en fungerende Linux-datamaskin der du kan utføre alle kommandoene du møter. Noen ganger forskjellige versjoner programmer viser resultater annerledes, så innholdet i oppføringene og figurene kan avvike fra det du ser på datamaskinen.

Navigere gjennom et dokument med vi

Hvordan kontakte Jan

Jan er en av våre mest populære og produktive forfattere. Sjekk ut de publiserte artiklene fra developerWorks. Du kan finne kontaktinformasjon på og kontakte ham, samt andre forfattere og bidragsytere til My developerWorks.

vi-editoren er inkludert i nesten alle Linux- og UNIX-distribusjoner. Faktisk, hvis i operativsystem det er bare en editor, da er det mest sannsynlig vi, så det er veldig viktig å kunne jobbe med det. Denne artikkelen introduserer bare grunnleggende vi-redigeringskommandoer, mens full informasjon Du kan finne mer informasjon om vi i developerWorks-manualen, man-sidene eller en av de mange bøkene om vi.

Kjører vi

I dag mange Linux-distribusjoner kom med vim-editoren ( V Jeg JEG ER bevist - forbedret vi) i stedet for klassisk vi. Vim-editoren er bakoverkompatibel med vi, og i tillegg til standarden tekstgrensesnitt Det har grafisk grensesnitt(gvim). Vanligvis er vi-kommandoen en symbolsk lenke til vim-programmet. Det finnes flere versjoner av vim: bittesmå, liten, normal, stor og stor. Versjonen av vim som brukes på operativsystemet ditt, så vel som dets funksjoner, kan bli funnet ved å bruke kommandoen

vi --versjon

I den forrige artikkelen i denne serien ønsket vi å endre prioriteten til det kjørende skallskriptet count1.sh. Hvis du har prøvd dette selv, har du kanskje funnet ut at kommandoene ble utført så raskt at du ikke kunne endre prioriteten med renice. Så la oss komme i gang med vi-editoren og legge til en linje i begynnelsen av skriptet for å sette inn en 20-sekunders pause slik at vi kan få tid til å endre prioritet.

Hvis du ikke har count1.sh-skriptet for hånden, kan du gjøre følgende: åpne et terminalvindu, gå til hjemmekatalogen din og kopier innholdet i oppføring 1 inn i vinduet. Dette vil opprette en underkatalog lpi103-8 i hjemmekatalogen som inneholder skriptfilen count1 .sh.

Oppføring 1. Et skript som lastes inn prosessor- telle1.sh
mkdir -p lpi103-8 && cd lpi103-8 && (ekko "x =" $ 1 ""> count1.shecho "echo" $ 2 "$ (dato)" >> count1.shecho "mens [$ x -gt 0 ]; do x = $ ((x-1)); ferdig ">> count1.shecho" ekko "$ 2" $ (dato) ">> count1.sh)

For å redigere en eksisterende fil, skriv vi med navnet på filen som parameter. Detaljert informasjon om de forskjellige alternativene du kan finne på man-sidene eller i seksjonen, men la oss nå starte redigeringsprogrammet uten noen alternativer:
vi telle1.sh
Dette bør åpne count1.sh-filen. Du bør se noe som ligner på oppføring 2. Hvis du bruker vim, kan noen ord eller tegn være uthevet. Vim-editoren har en uthevingsmodus (ikke tilgjengelig i den originale vi) som kan være aktivert på systemet ditt som standard.

Oppføring 2. Redigering av vi script count1.sh
x = "$ 1" ekko "$ 2" $ (dato) mens [$ x -gt 0]; do x = $ ((x-1)); ferdig ekko "$ 2" $ (dato) ~ ~ ~ ~ "count1.sh" 4L, 84C 1,1 Alle

vi-editoren begynte i tiden da ikke alle terminaltastaturer hadde markørtaster, så i vi kan du gjøre alt ved å bruke tastene på et standard alfanumerisk tastatur, samt flere spesielle nøkler, som for eksempel Esc og Sett inn... Du kan imidlertid konfigurere vi til å bruke ekstra nøkler moderne data-tastatur; de fleste tastene på tastaturet gjør noe nyttige handlinger... På grunn av sin arv, samt de langsomme tilkoblingene til eldre terminaler, har vi et velfortjent rykte som en redaktør som bruker korte og kryptiske kommandoer. La oss starte med å se på hurtigtaster for å navigere i filer.

Flytte

Følgende kommandoer er for å navigere i filen:

h Flytt ett tegn til venstre på gjeldende linje. j Gå til neste linje. k Flytt til forrige linje. l Flytt ett tegn til høyre på gjeldende linje. w Gå til neste ord på gjeldende linje. e Flytt til slutten av gjeldende ord på gjeldende linje. b Flytt til begynnelsen av gjeldende ord på gjeldende linje. Ctrl-f Rull én side fremover. Ctrl-b Bla tilbake én side.

Hvis du skriver inn et tall før noen av disse kommandoene, vil kommandoen bli utført spesifisert mengde en gang. Dette nummeret kalles gjentakelse teller eller rett og slett disk... For eksempel vil kommando 5h flytte markøren fem tegn til venstre. Repetisjonstellere kan brukes med mange vi-kommandoer.

Flytt linje for linje

Følgende kommandoer er for å hoppe til bestemte linjer i en fil.

G Flytt til en bestemt linje i en fil. For eksempel flytter 3G-kommandoen markøren til linje 3. G-kommandoen, uten noen parametere, flytter markøren til den siste linjen i filen. H Flytt til en bestemt linje relativt øverste kant skjerm. Kommando 3H flytter for eksempel markøren til den tredje linjen fra toppen av skjermen. L Ligner på H-kommandoen, men teller ned fra siste linje på skjermen. Dermed flytter 2L-kommandoen markøren til den andre linjen fra nederste linje på skjermen.

Arbeid med disse kommandoene og lær å bruke dem fritt. Hvis noe går galt under arbeidet ditt, kan du alltid avslutte vi. Hvordan du gjør dette er beskrevet nedenfor.

Avslutter vi

Det er alltid nødvendig å kunne gå ut av editoren. Dette vil tillate deg å ikke ødelegge viktig fil hvis du, mens du redigerer den, tillater noen kritisk feil... Du kan gå ut av vi på følgende måter: med å lagre endringer, uten å lagre endringer, med å starte redigeringen av filen på nytt helt fra begynnelsen. Hvis kommandoene nedenfor ikke fungerer, så sjekk om du er i innsettingsmodus, som du vil lære om litt senere. Hvis du er i tvil, trykk på tasten Esc for å gå ut av innsettingsmodus og gå tilbake til kommandomodus, der kommandoene skal fungere.

:q! Fullfør redigeringen av filen og forkast alle endringer. Denne kommandoen brukes veldig ofte når det oppstår vanskeligheter. : w! Skriv filen (uansett om den er endret eller ikke). Det gjøres et forsøk på å overskrive eksisterende filer, skrivebeskyttede filer eller andre ikke-overskrivbare filer. Som en parameter kan du angi navnet som den skal lagres under original fil som du begynte å redigere. Det er ofte tryggere å ikke bruke!-symbolet hvis du ikke er 100 % sikker på hva du gjorde. ZZ Skriv filen hvis den har endret seg, og avslutt deretter redigeringsprogrammet. Denne kommandoen brukes vanligvis for å avslutte vi normalt. :e! Rediger gjeldende kopi av filen på disken. Utført last på nytt fil med kansellering av alle endringer som er gjort. Denne kommandoen kan også brukes i tilfeller der en fil på disken har blitt endret av en eller annen grunn og du må bruke den nyeste versjonen av den. :! Kjør en tolkkommando. Skriv inn en kommando og trykk på tasten Tast inn... Når kommandoen er ferdig, vil du se utdataene og en melding om å gå tilbake til vi-editoren.

Notater.

  1. Når du skriver et kolon (:), flyttes markøren til nederste linje på skjermen, hvor du kan skrive inn kommandoen og dens parametere.
  2. Hvis du hopper over kommandoene ovenfor Utropstegn, så kan du få en feilmelding, for eksempel om umuligheten av å lagre endringer eller skrive til endelig fil(hvis du redigerer en fil med skrivebeskyttet tilgang).
  3. Det finnes lange former for kommandoer: (: quit,: write,: edit), men de brukes sjelden.

Vi-moduser

vi-editoren har to driftsmoduser.

Kommandomodus I kommandomodus navigerer du gjennom filen og redigerer filen, utfører operasjoner som å finne, slette, endre tekst og så videre. Vanligvis startes vi i kommandomodus. Sett inn modus I innsettingsmodus skriver du ny tekst fra markørposisjonen. Trykk på tasten for å gå tilbake til kommandomodus. Esc.

Disse to modusene bestemmer oppførselen til redaktøren. Alt du skriver inn i innsettingsmodus anses som tekst som skal settes inn i filen. Hvis du prøver å skrive en kommando og ingenting skjer (eller tegn vises under markøren), har du sannsynligvis glemt å trykke på tasten Esc for å gå ut av innsettingsmodus.

Redigering av tekst

Nå som du vet hvordan du åpner filer i vi-editoren, navigerer gjennom dem og avslutter vi, er det på tide å lære hvordan du redigerer teksten i filen.

Endre tekst

Bruk følgende kommandoer for å sette inn, slette eller endre tekst. Merk at noen av dem kan skrives med både store og små bokstaver (beskrevet nedenfor).

Jeg Bytt til innsettingsmodus før tegnet inn nåværende posisjon... Skriv inn teksten og trykk på tasten Esc for å gå tilbake til kommandomodus. Bruk I-kommandoen for å sette inn tekst på begynnelsen av gjeldende linje. en Bytt til innsettingsmodus etter tegnet på gjeldende posisjon. Skriv inn teksten og trykk på tasten Esc for å gå tilbake til kommandomodus. Bruk A-kommandoen for å sette inn tekst på slutten av gjeldende linje. c Endre gjeldende tegn og bytt til innsettingsmodus for å legge inn erstatningstegn. o Sett inn en ny linje etter gjeldende linje. Bruk O-kommandoen for å sette inn en ny linje over gjeldende linje. cw Slett resten av det gjeldende ordet og bytt til innsettingsmodus for å erstatte det. Bruk en repetisjonsteller for å erstatte flere ord. Bruk kommandoen c $ for å erstatte resten av linjen. dw Samme som cw (og c $), men uten å gå inn i innsettingsmodus. dd Slett gjeldende linje. Bruk en repetisjonsteller for å slette flere linjer. x Slett tegnet ved markørposisjonen. Bruk en repetisjonsteller for å slette flere tegn. s Plasser den siste slettede teksten etter gjeldende tegn. Bruk P-kommandoen for å plassere tekst foran gjeldende tegn. xp Nyttig kommando fra en kombinasjon av x og p. Erstatter tegnet ved markørposisjonen med tegnet til høyre for det.

Søk etter tekst

Du kan søke etter tekst i en fil ved å bruke regulære uttrykk.

/ Bruk vanlig uttrykk etter tegnet / for å søke direkte i filen. ? Bruk et regulært uttrykk etter? for å søke bakover i filen. n Bruk n for å gjenta siste søk i hvilken som helst retning.

Alle de ovennevnte kommandoene kan innledes med en repetisjonsteller. For eksempel vil 3 / x (akkurat som / x etterfulgt av 2n) lete etter den tredje forekomsten av x, med start på gjeldende posisjon. På samme måte vil kommandoen 2 / ^ e søke etter den andre linjen som starter med e, i forhold til gjeldende posisjon.

Merk at når slutten av filen er nådd, vil søket fortsette fra begynnelsen av filen.

referanse informasjon

En annen nyttig kommando vi er en hjelpekommando som du kan påkalle ved å skrive: help. Hjelp åpnes i selve vi-editoren; bruk kommandoen: q for å lukke hjelpen og fortsette. Hvis du trenger informasjon om et spesifikt emne (for eksempel linjepermutasjon), kan du prøve å legge til det riktige ordet etter kommandoen: help, for eksempel: help wrap.

Sette alt sammen

I begynnelsen av denne artikkelen skulle vi legge til en linje i count1.sh-filen vår. For å lagre den opprinnelige filen og skrive en modifisert versjon av den under navnet count2.sh, kan vi bruke editor-kommandoene etter at vi har åpnet filen med vi-kommandoen. Merk at notasjonen samsvarer med et tastetrykk Esc.

Oppføring 3. Kommandoer for redaktøren for å legge til en linje i count1.sh-filen
1GOsøvn 20 : w! telle2.sh:q

Disse kommandoene utføres følgende handlinger:

1G Flytt til den første linjen i filen. O Legger til en ny linje over gjeldende linje og bytter til innsettingsmodus. sove 20 Teksten som skal legges til. Tastetrykk Esc for å gå tilbake til kommandomodus. : w! telle2.sh Skrive en fil til disk. : q Avslutt vi.

Det er enkelt når du vet hvordan.

Denne artikkelen er den siste i en serie om emne 103 for LPI 101 Entry Level Administrator Exam (LPIC-1). Du finner lenker til resten av artiklene i denne serien på.

Redaktør Vi- Allsidig fullskjermtekstredigerer i miljøet UNIX... Redaktør Vi finnes i ethvert system Linux(til og med minimal konfigurasjon) og vil definitivt kjøre fra kommandolinjen Linux i den mest katastrofale situasjonen. Dermed vil brukeren alltid ha mulighet til å redigere konfigurasjonsfilerå bringe systemet til arbeidsforhold... Derfor, hver bruker Linux minst grunnleggende ferdigheter for å jobbe i Vi.

Enkle konsepter

Når som helst mens du jobber i redaktøren Vi du er i en av tre moduser redaktør:

  • kommandomodus ( kommandomodus);
  • inndatamodus ( innsettingsmodus);
  • siste linje modus ( siste linjemodus).

Når du starter editoren Vi du finner deg selv i kommandomodus... I denne modusen kan du gi kommandoer for å redigere filer eller bytte til en annen modus. Hvis du for eksempel skriver x i kommandomodus, slettes tegnet som markøren peker på. Piltaster flytter markøren over den redigerte filen. Vanligvis består kommandoer som brukes i kommandomodus av ett eller to tegn.

Hovedinntasting og redigering av tekst utføres i inndatamodus... Når du bruker editoren Vi mesteparten av tiden vil mest sannsynlig bli brukt i denne modusen. Overgangen til inndatamodus fra kommandomodus utføres av i-kommandoen (forkortelse for sett inn). Mens du er i inntastingsmodus, kan du skrive inn tekst der markøren peker. Gå ut av inndatamodus til kommandomodus ved å trykke på Esc-tasten.

Modus siste linje - spesialbehandling, der komplekse kommandoer gis til redaktøren. Når du skriver inn disse kommandoene, vises de på den siste linjen på skjermen (derav navnet på modusen). For eksempel, hvis du skriver inn kommandoen: i kommandomodus, vil den bytte til siste linjemodus, og du kan legge inn kommandoer som wq (skriv filen og gå ut av redigeringsprogrammet Vi) eller q! (avslutt editor Vi uten å lagre endringer). I den siste linjemodusen legges vanligvis inn kommandoer, hvis navn består av flere tegn. I denne modusen legges en kommando inn på den siste linjen, hvoretter Enter-tasten trykkes, og kommandoen utføres.

Starter editoren Vi

For å forstå alle konseptene til redaktøren Vi kjøre den og lage ny fil ved navnet test:

$ vi test ~ ~ ~ ~ ~ ~ "test"

Kolonnen med tegn ~ angir tomme linjer, markøren er på begynnelsen av den første linjen.

Skriver inn tekst

Vi-editoren er nå i kommandomodus. Trykk på i-tasten, og redigeringsprogrammet vil bytte til tekstinntastingsmodus. Nå går vi inn f.eks. følgende tekst:

Mange brukere foretrekker eventyrredaktøren Emacs. ~ ~ ~ ~ ~

Skriv inn et hvilket som helst antall linjer etter hvert trykk Enter-tasten... Du kan rette skrivefeil med Tilbaketaster... For å gå ut av inndatamodus og gå tilbake til kommandomodus, trykk på Esc-tasten.

I kommandomodus kan du bruke piltastene til å navigere i filen. Hvis det bare er én linje i filen, kan det hende at redaktøren piper når du prøver å trykke på pil opp eller pil ned.

I tillegg til i-kommandoen, er det flere andre måter å sette inn tekst på. Så, a-kommandoen begynner å sette inn tekst etter gjeldende markørposisjon, og ikke direkte på den gjeldende. På grunn av det faktum at teksten ble skrevet med en skrivefeil, bruker vi piltastene for å bringe markøren til plassen som skiller ordene begavet og eventyr... Trykk nå på a-tasten (redigeringsprogrammet går inn i inndatamodus) og skriv inn under, trykk deretter på Esc-tasten og gå tilbake til kommandomodus. Skjermen vil vise følgende:

For å skrive inn tekst fra neste linje, bruker vi kommandoen o. Trykk på denne tasten og skriv inn én eller to linjer med tekst:

Mange brukere foretrekker verktøytipsredigereren Emacs. Å velge et tekstredigeringsprogram er vanligvis et spørsmål om individuell smak. ~ ~ ~ ~

Slett tekst

I kommandomodus sletter hvert trykk på x-tasten tegnet som markøren peker på.

Du kan slette hele linjer med dd-kommandoen (det vil si å trykke på d-tasten to ganger på rad). Hvis markøren er på den andre linjen og du skriver inn dd-kommandoen, vil følgende forbli på skjermen:

Mange brukere foretrekker verktøytipsredigereren Emacs. ~ ~ ~ ~ ~

Du kan bruke dw-kommandoen til å slette ordet som markøren peker på. Flytt markøren over ordet begavet og skriv dw, deretter til ordet Tips og skriv dw igjen. Resultatet blir som følger:

Mange brukere foretrekker Emacs-editoren. ~ ~ ~ ~ ~

Endre tekst

Enkelte deler av teksten kan erstattes med andre; R-kommandoen brukes til dette. Flytt markøren til det første tegnet i et ord Emacs, trykk på R-tasten og skriv inn ordet vi:

Mange brukere foretrekker vi. ~ ~ ~ ~ ~

Handlingen til R-kommandoen ligner på i- og a-kommandoene, men R-kommandoen setter ikke inn ny tekst, men sletter den gamle.

Kommandoen r erstatter ett tegn, det som markøren peker på.

Ved å bruke ~-kommandoen kan du endre store og små bokstaver til bokstaven som markøren peker på (fra øvre til nedre og omvendt). Flytt markøren til det første tegnet i ordet vi og gi kommandoen ~:

Mange brukere foretrekker Vi-editoren. ~ ~ ~ ~ ~

Kommandoer for markørbevegelse

I tillegg til piltastene kan du bruke h-, j-, k- og l-tastene for å flytte markøren. De vil flytte markøren til henholdsvis venstre, ned, opp og høyre. Disse kommandoene kan brukes hvis (av en eller annen grunn) piltastene ikke fungerer som de skal. w-kommandoen flytter markøren til begynnelsen av neste ord; b-kommandoen flytter markøren til begynnelsen av forrige ord.

Kommandoen (nulltast) flytter markøren til begynnelsen av gjeldende linje, og $-kommandoen flytter markøren til slutten.

Når du redigerer store filer, brukes kommandoene C trl-F og Ctrl-B til å "rulle" hele skjermer fremover (dvs. ned) og tilbake (opp).

For å flytte markøren til slutten av filen, bruk G-kommandoen, og 10G-kommandoen vil for eksempel plassere markøren på linjen med nummeret 10 ... For å flytte markøren til begynnelsen av filen, kan du bruke 1G-kommandoen.

Kommandoer for markørbevegelse kan kombineres med andre kommandoer, for eksempel kommandoer for tekstsletting. For eksempel vil d $ slette alt mellom gjeldende markørposisjon og slutten av linjen; dG vil slette alt mellom gjeldende markørposisjon og slutten av filen, og så videre.

Lagre endringer og gå ut av redigeringsprogrammet Vi

For å avslutte redigeringsprogrammet Vi uten å lagre endringene som er gjort i filen, brukes kommandoen: q! ...

For å avslutte redigeringsprogrammet Vi med å lagre endringene som er gjort, brukes kommandoen: wq.

Bytt mellom filer

For å begynne å redigere en annen fil, bruk kommandoen: e, som skal angis først etter å ha lagret endringene som er gjort med kommandoen: w, i ellers Vi vil nekte å fortsette med å redigere neste fil.

Lim inn innholdet i andre filer

Du kan inkludere innholdet i en annen fil i den gjeldende filen med kommandoen: r. For eksempel vil kommandoen: r foo.txt sette inn innholdet i filen foo.txt til teksten fra gjeldende markørposisjon.

Hjelp med redaktøren Vi

Som med alle programmer på systemet Linux Først av alt bør du se dokumentasjonen på skjermen til programmet Vi... Vanligvis (bortsett fra gjenopprettingsmoduser etter systemfeil) en mer moderne og forbedret versjon er tilgjengelig Vi - Vim har en lignende Vi grensesnitt og masse ytterligere muligheter. Detaljert veiledningVim kan fås ved å starte denne editoren og gi kommandoen: help.

Erfarne brukere Linux brukes ofte på terminalen fordi det kan gjøres mye raskere. nødvendige handlinger... Under systemoppsett må vi ofte redigere ulike filer... Dette kan være programinnstillinger, noen data eller ren tekstfiler.

På operasjonssalen Linux system det er flere tekstredigerere som fungerer i terminalen. Oftest bruker nybegynnere nano-editoren, men hvis du la merke til det på nettstedet vårt, bruker alle artikler vi-tekstredigeringsprogrammet. Nano er vanskelig og mangler funksjonalitet. Jeg skriver bevisst ikke om nano i artiklene mine. Det er en mye bedre tekstredigerer der ute, og det er vi. Støttes her rask reise ved tekst, praktisk redigering, kommandoer for å endre arbeidsinnstillinger, utføre terminalkommandoer fra editoren, samt plugins for å utvide funksjonaliteten. Men det er litt vanskelig for nybegynnere og veldig uvanlig.

I denne artikkelen vil vi se på hvordan du bruker vim, dekke det grunnleggende om å jobbe med denne editoren, så vel som dens grunnleggende kommandoer.

Det finnes for øyeblikket to versjoner av editoren - vi og vim. Vim står for Vi Forbedret, forbedret vi. den en ny versjon som ga mange forbedringer. De fleste moderne distribusjoner bruker denne. Så hvis jeg skriver vi, betyr det at jeg antar at jeg bruker vim.

Vim-tekstredigereren kan fungere i to moduser. Dette er han hovedfunksjon... Den første modusen, som brukes som standard når du åpner redigeringsprogrammet, er kommandomodus. I denne modusen kan du angi vi-kommandoer i tillegg til å bruke symboltaster for å kontrollere editoren. Den andre modusen er vanlig tekstredigering, den fungerer på samme måte som tekstredigering i nano. For å bytte til kommandomodus, bruk tasten Esc... For å bytte til redigeringsmodus - tast Jeg... Hvis du bare er interessert i hvordan du lagrer og avslutter i vi editor, rull ned, men hvis du vil vite hvordan du bruker tekstredigerer vim, denne artikkelen er for deg.

Før du går videre, vil jeg råde deg til å ta et kurs innebygd i redaktøren. Alle treningsoppgaver vil ta 25-30 minutter å fullføre. Men etter at du har mestret alt som er skrevet der, vil denne artikkelen hjelpe deg med å konsolidere materialet. Faktum er at vim har mange kommandoer og hurtigtaster, og det er umulig å huske dem alle uten øvelse. For å starte treningen, skriv inn:

Men det er ikke nødvendig å gjøre dette nå, denne artikkelen inneholder all nødvendig grunnleggende informasjon, og etter å ha lest den kan du allerede trygt bruke vim, og gå gjennom opplæringen litt senere.

Slik bruker du Vim-editoren

Vi starter, som vanlig, med å starte programmet, samt alternativene som kan sendes til det. Vims syntaks er veldig enkel:

$ vim alternativer filnavn

$ vi alternativer filnavn

Bare å kjøre vim uten å spesifisere et filnavn vil opprette tom fil... La oss nå ta en titt på de grunnleggende lanseringsalternativene:

  • + nummer- flytt markøren til den angitte linjen etter start.
  • + / mønster- søk etter et mønster og flytt markøren til den første forekomsten
  • "+ kommando"- utfør kommandoen etter å ha startet programmet
  • -b- binær modus, for redigering av kjørbare filer.
  • -d- søkemodus for forskjeller i filer, du må spesifisere flere filer som skal åpnes.
  • -g- grafisk modus.
  • -n- ikke bruk automatisk lagring for å gjenopprette en fil i tilfelle feil.
  • -R- skrivebeskyttet modus.
  • -w- lagre alle handlinger i en fil.
  • -x- krypter filen mens du skriver.
  • -C- Vi-kompatibilitetsmodus.

Kult, ikke sant? Men dette er bare begynnelsen. Alternativer er ingenting sammenlignet med redigeringskommandoer.

Vim-kommandomodus

I kommandomodus kan du navigere i den redigerte teksten og utføre handlinger på den ved å bruke bokstavtastene. Det er denne modusen som åpnes som standard når redigeringsprogrammet starter. Her vil du bruke korte kommandoer, som kan innledes med et tall, for å gjenta kommandoen flere ganger. For nybegynnere kan det til å begynne med være veldig forvirrende at i kommandomodus tolkes tegn som kommandoer.

Følgende kommandoer brukes til å flytte:

  • h- ett tegn til venstre;
  • l- ett tegn til høyre;
  • j- en linje ned;
  • k- en linje opp;
  • w- et ord til høyre;
  • b- ett ord til venstre;
  • H- gå til bunnen av skjermen;
  • G- gå til slutten av filen;

Du kan starte redigeringsprogrammet og eksperimentere for å gjøre det lettere å forstå hvordan det fungerer. Hvis du trykker på et tall før du trykker på bokstavtasten, vil denne kommandoen gjentas flere ganger. For eksempel vil 3j flytte markøren opp tre linjer.

For å bytte til redigeringsmodus, bruk følgende kommandoer:

  • Jeg- sett inn tekst fra markørposisjonen, tegnet under markøren vil bli erstattet;
  • Jeg- sett inn tekst på begynnelsen av linjen;
  • en- legg til tekst fra markørposisjonen;
  • o- sett inn en ny linje etter denne og begynn å redigere;
  • O- sett inn en ny linje før denne og begynn å redigere;
  • r- erstatte gjeldende symbol;
  • R- erstatte flere tegn.

Gjenta symboler gjelder også for disse kommandoene. Eksperimenter, du kan få et interessant og ikke helt forventet resultat.

Mer komplekse kommandoer for redigering av tekst. Du kan redigere tekst ikke bare i normal modus men også i kommando ved hjelp av kommandoer. For å gjøre dette, bruk følgende kommandoer:

  • d- slette et symbol;
  • dd- slett hele linjen;
  • D- slett tegn fra markøren til slutten av linjen;
  • y- kopiere et symbol;
  • åå eller Y- kopier hele linjen;
  • v- velg tekst;

Disse vim-redigeringskommandoene fungerer litt annerledes etter å ha klikket på en av dem, ingenting skjer. Vi kan også angi antall tegn som kommandoen skal brukes på og retningen ved å bruke piltastene. For eksempel, for å slette to tegn til høyre for markøren, trykk på d3l, og for å slette tre linjer ned, trykk på d3j. Åå, dd, Y-kommandoene er ikke annet enn snarveier.

I tillegg til disse kommandoene er det flere nyttige som vi ikke kan unngå å vurdere:

  • s- sett inn etter markørposisjonen;
    P- sett inn før markørposisjonen;
  • u- Avbryt siste handling;
  • . - gjenta den siste handlingen igjen;
  • U- angre den siste handlingen på gjeldende linje;
  • /prøve- søk etter en oppføring;
  • % s / mønster / erstatt- erstatte det første ordet med det andre;
  • n- fortsett å søke fremover;
  • N- fortsett søket tilbake;

MED kjerneteam ordnet det opp. Men det har vi fortsatt kommandolinje Vim, som i seg selv også er av stor interesse.

Vim kommandolinje

Kommandolinje Vim startes i kommandomodus ved å trykke på kolon - " : Kommandoer for å lagre filen og avslutte redigeringsprogrammet er tilgjengelig her. utseende og interaksjoner med det ytre skallet. La oss ta en titt på de mest brukte kommandoene i vim-editoren:

  • : w- lagre filen;
  • : q- lukk redaktøren;
  • :q!- lukk redigeringsprogrammet uten å lagre;
  • : e fil- les innholdet i filen ved markørposisjonen;
  • : r fil- sett inn i innholdet i filen på neste linje;
  • :r!- utfør en shell-kommando og lim inn svaret i editoren;
  • : sett variabel = verdi- angi verdien til en variabel, for eksempel tabstop = 4, eller sett nummer, med denne kommandoen kan du kontrollere mange aspekter av hvordan vim fungerer.
  • : buffere- se åpne filer.

Med alt det grunnleggende sortert ut, vil nå bruk av vim ikke virke så vanskelig for deg. Men det er ikke alt, denne kraftige redaktøren kan gjøre mye mer. Deretter skal vi se på noen få eksempler på hvordan vim kan brukes til å hjelpe deg med å takle det nye programmet.

Redigere en fil i Vim

Til tross for at du fra alt det ovennevnte kan forstå hvordan dette gjøres, bør du vurdere på nytt. For å åpne filkjøringen:

vim filnavn

Så, hvis du ikke vil bruke kommandomodusfunksjonene for nå, trykker du bare i for å gå inn i redigeringsmodus. Her kan du redigere filen på samme måte som i nano. Når du er ferdig, trykk Esc for å gå inn i kommandomodus og skriv: wq. Ta opp og gå ut. Alt er klart.

Finne og erstatte i Vim

Ganske ofte må vi finne en bestemt rekkefølge i teksten. Vim-tekstredigereren vet hvordan du gjør dette.

Først, hvis du trenger å finne et tegn i en streng, trykk f og skriv inn ønsket tegn, markøren vil flytte til sin posisjon.

Bruk /-kommandoen for å søke i hele filen. Etter det må du skrive inn ordet du vil finne. Bruk n for å finne neste forekomst, og N. for å finne den forrige.

En litt annen konstruksjon vil bli brukt for å erstatte:

:% s / søk / erstatt / g

Kolon lanseres kommandoskall med laget s for utskifting. Symbol % betyr at du må behandle hele filen, og g betyr at du må behandle alle funnet linjer, ikke bare den første. For å få programmet til å spørre før hver utskifting, kan du legge til et alternativ på slutten av linjen c.

Samtidig redigering av flere filer

For å åpne flere filer, send dem bare i parametere når du starter programmet:

vim fil1 fil2 fil3

Vim linux-editoren vil åpne den første filen, for å bytte til den andre bruk kommandoen: n for å bytte tilbake: N.

Ved å bruke kommandoen : buffere du kan se alle åpne filer, og med kommandoen: buffer 3 vil bytte til den tredje filen.

Vim utklippstavle

Vim-tekstredigereren har sin egen utklippstavle. For eksempel må du kopiere inn i fire linjer og lime dem inn et annet sted i programmet, for dette, følg følgende handlingssekvens:

  • Trykk Esc for å gå inn i kommandomodus;
  • Skriv 4yy for å kopiere fire linjer;
  • Flytt markøren til stedet der du vil sette inn disse linjene;
  • Trykk p for å lime inn.

Du kan også bruke vim-utheving for å kopiere linjer. Marker tekst med v og trykk deretter på y for å kopiere.

Kyrillisk i Vim

Kyrillisk i Vim fungerer utmerket. Men det er en ting, men når det kyrilliske alfabetet er aktivert i systemet, fungerer ikke alle vim-kommandoer, de trenger ikke å fungere, de er ikke tilpasset det kyrilliske alfabetet.

Men å bytte layout hver gang du jobber i kommandomodus er heller ikke veldig praktisk, så åpne ~ / .vimrc-filen og legg til følgende linjer der:

sett keymap = russisk-jcukenwin
sett iinsert = 0
sett imsearch = 0

Nå er tastaturoppsettet i kommandomodus byttet av Ctrl + ^ og alle lagene jobber.

konklusjoner

I denne artikkelen så vi på hvordan du bruker vim-tekstredigereren. Dette er ikke alle funksjonene, men nå kan du trygt håndtere redaktøren og glemme nano. Bruker du allerede Vim? Eller en annen redaktør? Skriv i kommentarfeltet!

Litt mer informasjon om bruk av Vim finner du i videoen: