De Help Desk punt NL
Kennisbank
De Helpdesk > De Helpdesk > Kennisbank

VI

Oplossing

 

terug naar top

 

  • Voorwoord:
    De meest Linux gebruikers krijgen vroeg of laat wel eens te maken met een situatie waarin ze in een console een bestand moeten editeren.
    De redenen kunnen gaan van een corrupte X-server, tot het remote inloggen via telnet of ssh.
    Een texteditor die altijd beschikbaar is onder Linux is Vi.
    Er zijn misschien heel wat gebruiksbvriendelijkere alternatieven zoals Pico, joe, Emacs, ... maar het is altijd nog de vraag of deze beschikbaar is.
    Zo kun je een kenner zijn van Pico, maar laat je nu juist op een systeem ingelogd zijn waar deze juist niet op werd geïnstalleerd! Juist een probleem.
    Als je leert werken met Vi ben je van dit probleem voor goed verlost.

    terug naar top

  • Hoe werkt Vi:
    vi staat voor visual.
    vi is een verbeterde versie van zijn 2 voorgangers ed en ex.
    Vi werkt voor de veiligheid van de gebruiker via een buffer. Bij het oproepen wordt een naam van een bestand als parameter meegegeven. Deze naam bestaat al of dit is een naam van een nieuw aan te maken bestand. Bestaat het bestand al, dan wordt de inhoud in deze buffer geladen. Alle veranderingen worden nu in deze buffer doorgevoerd.
    Als de naam van het bestand nog niet bestaat wordt er een lege buffer klaar gezet.
    Als je dus stopt met vi zonder de buffer weg te schrijven, is het bestand nog in oorspronkelijke staat.

    Je roept vi op via de volgende syntax.
    vi [opties] bestand [bestand ...]
    Vi beschikt over verschillende werkmodi:
    • Een invoermodus om tekst in te voeren en te wijzigen.
    • Een opdrachtmodus waarin alle ingegeven tekens opdrachten voorstellen.
    • Een opdrachtregelmodus (ex-modus) waarin speciale opdrachten gebruikt kunnen worden die van de voorgaande textverwerker ex werden afgeleid.

    terug naar top

  • Tekst ingeven/wijzigen:
    Met de volgende regel start u vi.
    vi nieuwe_text
    Je krijgt dan een venster te zien dat er ongeveer uit ziet als het volgende.
    ~
    ~
    ~
    ~
    ~
    ~
    ~
    ~
    "nieuwe_text" [NEW FILE] 1 line, 1 char
    De cursor zal knipperen in de linker bovenhoek.
    Je zit standaard in de opdracht modus.
    Met het commando a (append) of i (insert) kot u in de ingave modus.
    Je zit geen verandering op het scherm, maar toch werd de modus veranderd.
    Als je nu een a drukt zal deze als tekt op het scherm verschijnen.
    Als de cursor ergens midden in de tekst staat is er een verschil tussen a en i.
    Als je a gebruikte zal alles wat je ingeeft verschijnen na het teken waar de cusor stond waar je de opdracht starte.
    Als je i gebruikte zal alles wat je ingeeft verschijnen voor dit teken.
    Mogelijke opdrachten om in de invoermodus te komen.
    OpdrachtVerklaring
    a Plakken achter het einde van het actuele teken.
    A Plakken aan het einde van de actuele lijn.
    i Invoegen voor het actuele teken.
    I Invoegen aan het begin van de actuele lijn.
    o Open: Invoegen van een nieuwe regel onder de actuele regel
    O Invoegen van een nieuwe regel voor de actuele regel.
    [Esc] De invoegmodus verlaten. (Terug naar de opdracht modus.)
    Als je dus een tekst hebt ingevoegd en je wil terug naar de Opdracht modus druk je op de Esc toets.
    Een voorbeeld.
    - Stel je hebt de volgende tekst.
    Jantje zag eens hangen.
    ~
    ~
    ~
    ~
    ~
    ~
    ~
    "nieuwe_text" [NEW FILE] 1 line, 1 char
    - Je wil dit natuurlijk wijzigen in "Jantje zag eens pruimen hangen." :-)
    Om dit te verwezenlijken moet je eerst terug naar de opdracht modus. [Esc] Daarna ga je met je cusror (via de cursor toetsen) voor de h van hangen staan.
    Je gaat terug naar de invoer modus via i geef nu 'pruimen ' in.
    De tekst is gewijzigd. Om nu onder deze regel een nieuwe regel in te geven druk je opnieuw op [Esc] voor de Opdracht modus. Met de opdracht o gaat de cursor naar de volgende lijn.
    Je kunt nu de volgende regel ingeven. "Als appelen zo groot."
    Jantje zag eens pruimen hangen.
    Als appelen zo groot.
    ~
    ~
    ~
    ~
    ~
    ~
    "nieuwe_text" [NEW FILE] 1 line, 1 char
    Voor het bewegen door de tekst heb je buiten de cursortoetsen ook nog enkele andere opdrachten.
    OpdrachtVerklaring
    0 Begin van de actuele regel.
    $ Einde van de actuele regel.
    w Volgende woord.
    b Vorige woord.
    [Ctrl]+ [F] Naar de volgende pagina bladeren.
    [Ctrl] + [B] Naar de vorige pagina bladeren.
    G Naar laatste regel van het bestand.
    nG Naar n-de regel van het bestand. 7G voor zevende regel.
    Deze opdrachten kunnen van pas komen voor grote bestanden.
    Nu moeten we enkel nog te weten komen hoe je fouten corrigeert. Hiervoor heb je ook weer opdrachten.
    OpdrachtVerklaring
    x Wist het teken onder de cursor.
    X Wist het teken voor de cursor.
    rc Vervangt het teken onder de cursor door het teken c. (zie verder)
    u Hiermee maakt u de laatste wijziging (en enkel de laatste) ongedaan.
    Verder is er nog het commando d dat in combinatie met een ander commando de volgende opties heeft.
    OpdrachtVerklaring
    dw Wist het actuele woord tot aan het einde.
    d$ of D Wist de actule regel tot aan het einde.
    d0 Wist tot aan het begin van de actuele regel.
    dfc Wist in de actuele regel tot aan het eerst c-teken. (zie terug).
    dG Wist tot en met de laatste regel inclusief de actuele regel.
    d1G Wist alles vanaf de eerste tot en met de actuele regel.
    dd Wist de actuele regel.
    Vi verlaten
    1. ZZ Met deze opdracht sla je de buffer op naar de harde schijf en velaat je vi.
    2. :q![enter] Met deze opdracht verlaat je vi ZONDER de buffer op te slagen. Al je wijzigingen worden dus terug teniet gedaan!
      Let op! Na ingave van het dubbele punt zal de cursor naar de rechter zijde van het scherm verspringen. (ex-modus) Je geeft nu nog enkel de q![enter] in.
    3. :w[Met deze opdracht schrijft u de buffer naar de schijf, ZONDER vi te verlaten.
      Let op! Na ingave van het dubbele punt zal de cursor naar de rechter zijde van het scherm verspringen. (ex-modus) Je geeft nu nog enkel de w[enter] in.

    terug naar top

  • Zoeken in Vi:
    Als je een groot configuratie bestand of een shell script moet wijzigen kan het handig zijn om de zoek functies van vi te gebruiken.
    Dit doe je via het / (slash) commando.
    Op het moment dat u deze slash invoert zal deze op de laatste regel van het scherm verschijnen met de knipperende curssor er achter.
    U zult zien dat vi over uitstekende zoek functies beschikt.
    Je kunt om te beginnen een simpele tekst ingeven die je zoekt.
    Indien je /jan [enter] in onze 'geweldig zinvolle :-)' tekst ingeeft zal hij misschien wel jan(tje) vinden. Misschien omdat dit afhankelijk is van de positie van de cursor.
    Standaard zoekt vi vanaf de cursor naar beneden toe. Via ? (ipv< /) zoekt vi naar boven.
    De cursor zal na de zoekopdracht altijd staan aan het begin van de gevonden tekst.
    Flexibele zoekopdrachten
    • /[Dd]e [enter]:vi zoekt zowel 'De' als 'de'
    • /[A-Z]x[enter]:vi zoekt naar Ax, Bx, Cx, ....tot Zx.
    • /[A-Za-z0-9)x[enter]:vi zoekt naar Ax, Bx, Cx, ... tot Zx, en ax, bx, cx, ...zx en 0x, 1x, 2x ... 9x
    • /[^a-z]x [enter]:vi zoekt naar alle tekens voor x behalve (^) ax, bx, cx, ...zx
    • /.rake [enter]: zoekt naar elke combinatie met 1 teken en rake. 1rake, drake, $rake, enz... zijn allemaal geldig.
    • /*drake [enter]: zoekt naar elke combinatie met drake achter. Mandrake, XFddrake, rpmdrake, enz... kunnen allemaal worden gevonden.
    • /a\* [enter]: de backslash wordt gebruikt om de speciale tekens uit te sluiten. Nu zoekt mandrake niet naar alles wat met een a begint. Maar naar a*.

    terug naar top

Je ziet dat het werken met vi niet moeilijk is. Eens je er even mee gespeeld hebt ben je er zo mee weg.
Voor meer info over vi, verwijzen we je naar het commando: man vi

 

 
Was dit artikel bruikbaar? ja / nee
Gerelateerde artikelen VI de onvergetelijke editor
Geen netwerk in Centos 6 na installatie
Bash scripting
GNU-utility's
wachtwoord kwijt van computer met linux
Hoe integreer je Linux in een bestaand netwerk?
Cache of swap wissen linux
Hoe codeer je speciale tekens in html?
Gewiste bestanden, herstellen, terughalen
Grub herstellen en aanpassen opstartvolgorde
Artikel details
Artikel ID: 117
Categorie: Linux
Zoekwoorden VI, edit, linux, editor, tekst, teksteditor, VIM, text, bewerken, exit, opslaan, save, verlaten, ingeven, zoeken, linux, unix, editeren, texteditor, teksteditor,
Datum toegevoegd: 5-Aug-2003 23:38:21
Aantal bekeken: 27179
Beoordeling (Stemmen): Artikel beoordeeld 4.4/5.0 (20312)

 
« Ga terug