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

VI de onvergetelijke editor

Oplossing

Help-pagina bij de all-round UNIX editor VI

vi: misschien niet de editor die je het snelst beheerst, maar wel goed en Krachtig.

Daarom hier wat aandachtspuntjes. Onder UNIX is het manual ("man vi") bijna altijd beschikbaar. Het geeft in ieder geval alle juiste informatie voor de versie waar jij mee zult werken. De informatie in dit verhaal zal in de meeste gevallen kloppen, er kunnen echter verschillen zijn, veroorzaakt door een afwijkende UNIX of vi versie. Dit verhaal is bedoeld om de beginnende gebruiker even op gang te helpen, en als geheugensteun voor mezelf, natuurlijk :-).

Deze tekst is opgedragen aan Anja Barten, al weet ik dat ze ongeveer de laatste zal zijn om vi te gaan gebruiken.

Gebruik van dit document is voor eigen verantwoordelijkheid. De auteur kan niet verantwoordelijk worden gehouden voor schade welke het gevolg is van gebruik van dit document. Kopieren en distributie van dit document is aan iedereen toegestaan, zolang er geen aanpassingen aan dit document worden gedaan zonder toestemming van de copyrighthouder.

Het is best goed mogelijk dat je fouten constateert. Bijvoorbeeld de opties zijn me niet allemaal duidelijk. Ik heb graag dat je aanvullingen, opmerkingen en suggesties stuurt naar marc.fokker -at- kpn.com.

Opmerking: Vermijd het gebruik van de bijzondere verplaatsingstoetsen.(pijltjes, page up, page down, home, end) Afhankelijk van besturingssysteem of terminal kunnen er vervelende dingen in je bestand gebeuren. Er kunnen bijvoorbeeld spontaan regels in je bestand worden tussen gevoegd. Op lang niet alle systemen werken deze toetsen zonder problemen.
Voor snelle verplaatsingen van de cursor heeft
vi genoeg (betere) mogelijkheden.

Er zijn drie verschillende modi bij vi te onderscheiden.

1. commando modus

In deze modus begint vi, er kan geen tekst worden ingevoerd. Alle bewerkingen zoals het verplaatsen van de cursor, verwijderen en plakken van tekst gebeuren in deze modus.

2. invoer modus

Om tekst in te kunnen voeren, moet vi in de invoer modus worden gebracht. Er zijn zijn enkele manieren om vi in deze modus te brengen. De invoermodus moet verlaten worden wanneer men tekst wilt bewerken, of het programma wilt beëindigen.

3. ex modus

Een zeer krachtig hulpmiddel. Ex is een regelgeoriëteerde tekstverwerker, en eigelijk gewoon een ander gezicht van vi. Ex bevat middeltjes om vlot strings te veranderen, selectief regels te verwijderen, tekstbuffers als bestand weg te schrijven, shell-commando's uit te voeren, etc, etc. Stoppen kan via deze modus verschillende manieren.

Van invoermodus naar de commandomodus

Om uit de invoermodus te geraken en weer in de commandomodus terecht te komen, kun je de ESC toets drukken.
Er zijn echter terminals die de ecape-toets missen. Bij dergelijke terminals kan men door de toetscombinatie
CTRL [ (control toets samen met rechte haakje openen) in te drukken een escape character genereren. Een andere mogelijkheid kan het drukken van de toets zijn waarop samen de ` en de ~ samen voorkomen. (linksboven van de lettertoetsen). Soms genereert dit ook een escape.

Naar ex-modus

Vanuit de commandomodus kun je naar de ex-modus overgaan. Dit doe je door een : (dubbele punt) te toetsen. Op de onderste regel, helemaal links van het beeld, verschijnt dan een dubbele punt. Dit is de ex-prompt. Nu kan er een ex-commando worden ingevoerd, natuurlijk gevolgd door return te toetsen. Dit commando wordt dan uitgevoerd waarna de ex-modus verlaten wordt en vi weer in commando-modus terugkeert.

Overzicht van verschillende soorten commando's

  1. Opstartparameters. De verschillende manieren om vi te starten.

  2. Het tussentijds opslaan en openen van bestanden

  3. Het stoppen van vi, met of zonder opslaan

    1. Het beëindigen van het programma vanuit de commando modus

    2. Het beëindigen van het programma via de ex-modus

  4. Het schrijven en bewerken van tekst

    1. Van Commando modus naar invoer modus

      1. Van commando modus naar invoer modus: Tussenvoegen

      2. Van commando modus naar invoer modus: Overschrijven

    2. Veranderingen en vervangingen in tekst

    3. Snel strings in tekst vervangen met ex

    4. Het verwijderen, kopiëren en plakken van tekst

      1. Knippen van tekst

      2. Snel regels knippen met ex

      3. Kopiëren van tekst

      4. Kopiëren van tekst met ex

      5. Plakken

      6. Verplaatsen van tekst met ex

    5. Ongedaan maken / herstellen

    6. Ongedaan maken via ex

  5. Verplaatsen van de cursor

    1. Verplaatsingen van de cursor over character-posities

    2. Verplaatsingen binnen tekst

    3. Verplaatsingen binnen regels

    4. Verplaatsingen van het scherm

    5. Zoeken naar een string

    6. Regelnummer georiënteerd verplaatsen

    7. Regelnummer georiënteerd verplaatsen met ex

    8. Het gebruiken van gemarkeerde posities binnen tekst

  6. Diverse belangrijke en nuttige commando's

    1. Handige commando's

    2. Gebruik maken van de shell vanuit vi doormiddel van ex

    3. Afdrukken van bestanden zonder de editor te stoppen

    4. Macro's en afkortingen gebruiken binnen vi doormiddel van ex

    5. De syntax van de opties van ex

    6. In te stellen opties van ex


Opstartparameters. Verschillende manieren om vi te starten.

vi bestand

Start vi en opent bestand.

vi bestand1 bestand2

Start vi en opent de bestanden achter elkaar.

vi -R bestand

Start vi en opent bestand in de alleen lezen modus.

view bestand

Start vi en opent bestand in de alleen lezen modus.

vi -r bestand

Start vi en herstel bestand en zijn wijzigingen na een crash.

vi + bestand

Start vi en open bestand op de laatste regel.

vi +n bestand

Start vi en open bestand op de n-de regel.

vi +/patroon bestand

Start vi en open bestand op de plaats waar patroon voorkomt.

ex bestand

Start de ex editor en open bestand.


Het tussentijds opslaan en openen van bestanden

Al deze commando's worden in de ex-modus uitgevoerd.

:w

Sla het bestand op.

:w!

Sla het bestand op, negeer eventuele schrijfbeveiliging.

:f naam

Sla het huidige bestand op als naam.

:17,24w bestand

Schrijf de regels 17 tot en met 24 naar bestand.

:17,24w>> bestand

Plak regels 17 tot en met 24 aan het einde van bestand.

:e!

Heropen de laatst weggeschreven versie van het huidige bestand.

:e bestand

Open bestand zonder vi te beëindigen.

:n

Open het volgende bestand. Alleen bij meer opgegeven bestanden.

:e#

Open voorgaande bestand.

:e#n

Open het n-de opgegeven bestand. Alleen bij meer opgegeven bestanden.


Het stoppen van vi, met of zonder opslaan

Het beëindigen van het programma vanuit de commando modus

ZZ

Slaat wijzigingen van de tekst op, en beëindigt vi.

Het beëindigen van het programma via de ex-modus

q

Stop het programma.

q!

Stop het programma, sla veranderingen van de tekst niet op.

x

Stop het programma en sla veranderingen op.


Het schrijven en bewerken van tekst

Van Commando modus naar invoer modus
Vi start altijd in de commando modus, voor er één letter kan worden ingevoerd, moet vi in de invoer modus worden gebracht. Er zijn twee hoofdgroepen, hier onder tref je beide soorten:
Van commando modus naar invoer modus: Tussenvoegen

i

Begin invoer modus op de huidige cursor positie.

ni

Begin invoer modus op de huidige cursor positie, voeg de volgende reeks characters n maal toe, nadat de reeks met een return wordt besloten. De vi-versie Vim ondersteunt deze mogelijkheid niet.

I

Begin invoer modus op het begin van de huidige regel.

A

Begin invoer modus aan einde van regel.

a

Begin invoer modus 1 character rechts van cursor.

o

Open een nieuwe regel ONDER huidige en begin invoer modus.

O

Open een nieuwe regel BOVEN de huidige en begin invoer modus.


Van commando modus naar invoer modus: Overschrijven

cw

Verwijder het woord waar de cursor staat, en begin invoer modus.

5cw

Verwijder vijf woorden vanaf waar de cursor staat, en begin invoer modus.

cc

Verwijder alles van de regel waar de cursor staat, en begin invoer modus.

cm

Verwijder alles zoals het verplaatsingscommando m definiëert, en begin invoer-modus.

C

Verwijder alles op de regel rechts vanaf de cursorpositie, en begin invoer modus.

R

Overschrijf tekst op de huidige cursorpositie totdat invoermode weer verlaten wordt.

s

Wis character op opgeven plaats, en begin invoer.

ns

Wis character op opgeven plaats, en begin invoer. Een opgegeven getal n markeert overschrijfbare ruimte met een $, precies n plaatsen rechts van de cursor positie. Wanneer de hele gemarkeerde ruimte is overschreven, zal verdere invoer de bestaande tekst op de regel naar rechts schuiven.
De vi-versie Vim ondersteunt deze optie niet.


Veranderingen en vervangingen in tekst

rx

Verander het character onder de cursor in character x.

nrx

Verander het aantal n volgende characters in character x.

~

Verander het character onder de cursor in een hoofdletter, of juist in een kleine letter.

n~

Verander n characters vanaf het character onder de cursor in hoofdletters, of juist in kleine letters.


Snel strings in tekst vervangen met ex

:[[n],m]s/string1/string2[/optie]

De algemene syntax voor vervangingen. In het eerste deel van opdrachtregel wordt aangegeven in welke regels van de tekst de verandering moet plaats vinden. Zo kunnen n en m regelnummers zijn, maar ook zelf geplaatste markeringen binnen de tekst. Regel adressering mag weggelaten worden. Er wordt dan alleen vervangen op de regel waar de cursor staat.
De
s staat hier voor het ex-commando substitute, vervang.
In deze opdracht wordt
string1 vervangen door string2.
Voor
optie kunnen enkele waarden worden ingevuld, en ze mogen worden gecombineerd. De optie g wijzigt alle voorkomens van string1 in de regel in string2. De optie c vraagt voor iedere verandering om bevestiging. De optie p laat onderin het scherm zien hoeveel veranderingen uitgevoerd zijn.

&

Herhaal het laatste s (substitute, vervang) commando..

:g/string/commando

Voer op iedere regel van het bestand waar string voorkomt, commando uit. Bijvoorbeeld :g/string2/s/string2/string3/gc

:v/string/commando

Voer op iedere regel van het bestand waar string niet voorkomt, commando uit. Bijvoorbeeld :v/string2/s/string2/string3/gc

:s/hond/kat

Vervangt het eerste voorkomen op de regel van hond door kat. Zo wordt ook honderd dus katerd.

:s/ hond / kat

Vervangt het eerste voorkomen op de regel van hond door kat. Alleen precies de juiste strings worden vervangen door de spaties voor en achter de woorden, maar hond, blijft door de komma staan..

:s/hond/kat/g

Vervangt hond door kat overal op de hele regel.

:g/hond/s/hond/kat/gc

Vervangt overal in de tekst hond door kat, en vraagt hierbij om bevestiging.

:g/hond/s//kat/g

Vervangt overal in de tekst hond door kat. Net als regel hierboven, een null-target voor substitutie zorgt ervoor dat het target hetzelfde is als de voorgaande uitdrukking in dit commando, de globale zoekstring.

:3/dier/s/hond/kat/g

Vervangt in de derde regel waar dier voorkomt, alle voorkomens van hond door kat.

:3,6/Heer/Mevrouw/g

Vervangt overal in de 3e tot en met de 6e regel het woord Heer door Mevrouw.

:14,75/groot/s//&st/g

Vervangt van de 14e tot en met de 75ste regel alle voorkomens van het woord groot door grootst. Het & vertegenwoordigd het zoekargument.

:3,6/dier/s/hond/kat/g

Vervangt van de 3e tot en met de 6e regels die het woord dier bevatten, alle voorkomens van hond door kat.

:g/\([m,M]\)icrosoft/s//Netscape/g

Vervangt in de hele tekst alle voorkomens van Microsoft en microsoft door Netscape.

:g/./s/\([m,M]\)icrosoft/Netscape/g

Net als de regel erboven. Vervangt in de hele tekst alle voorkomens van Microsoft en microsoft door Netscape.

:/Deel 3/,/Deel 5/s/slak/mier/g

Vervangt vanaf Deel 3 tot aan waar Deel 5 voorkomt in de tekst, alle voorkomens van het woord slak door mier.


Het verwijderen, kopiëren en plakken van tekst

Wanneer een dergelijk commando wordt voorafgegaan door een getal n, wordt de bijbehorende bewerking n maal uitgevoerd. Ook kunnen in bpaalde gevallen een combinaties gemaakt worden met een commando voor verplaatsing van de cursor. (Voorbeeld: Het commando d2/over<return> zal alles vanaf de huidige cursor positie voorwaards knippen tot het tweede voorkomen van de string over in de tekst.

Knippen van tekst
Zie ook plakken van tekst.

CTRL-H of Backspace

Verwijder het character links van de cursor. Alleen in invoer-modus.

CTRL-W

Verwijder het woord links van de cursor. Alleen in invoer-modus.

nx

Wis n characters vanaf waar de cursor staat. (Als DEL-toets op PC.) Wanneer n wordt weggelaten, dan vindt de bewerking vanaf de cursorpositie plaats.

nX

Wis n characters links van de cursor. (Als BACKSPACE-toets op PC.) Wanneer n wordt weggelaten, dan wordt één character links van de cursorpositie gewist.

ndw

Wis n woorden rechts van de cursor. Wanneer n wordt weggelaten, dan wordt het woord vanaf de cursorpositie weggeknipt.

ndW

Wis n strings rechts van de cursor. Wanneer n wordt weggelaten, dan wordt vanaf de cursorpositie de string weggeknipt.

D

Wis alles vanaf de cursor tot het einde van regel.

d0

Wis alles op de regel links van de cursor.

ndd

Wis n regels vanaf waar de cursor op staat. Wanneer n wordt weggelaten, dan wordt de regel waar de cursor staat, gewist.

dG

Wis alle regels vanaf de cursor tot het einde van het bestand.

d17G

Wis alle regels vanaf de cursor tot en met regel 17.

dm

Wis alles vanaf de cursorpostitie zoals het dit difiniëert.


Snel regels knippen met ex
Voor snel knippen van een bepaald character, zie Vervangen. Vervang dan door niets!

:d

Knipt de regel weg waar de cursor zich bevindt.

:dn

Knipt het aantal n regels weg vanaf waar de cursor zich bevindt.

:.,$d

Knipt alle regels weg vanaf waar de cursor zich bevindt tot aan het bestandseinde.

:g/^Vervelend/d

Wist alle regels waarin het woord Vervelend op de eerste plaats in de regel voorkomt.

:g/ervelend/d

Wist alle regels waarin het woord ervelend voorkomt.

:g/[Vv]ervelend/d

Wist alle regels waarin de woorden Vervelend en vervelend voorkomen.

:g/e$/d

Wist alle regels waarin de letter e het laatste teken van de regel is.

:g/foute *$/d

Wist alle regels waarin het woord foute als laatste op een regel voorkomt, al of niet door spaties gevolgd.

:v/onzin/d

Wist alle regels, behalve de regels waarin het woord onzin in voorkomt.


Kopiëren van tekst
Zie ook plakken van tekst.

Y of y

Kopiëert de hele regel waar de cursor staat naar de buffer.

nY of yny

Kopiëert het opgegeven aantal regels n naar de buffer.

yverplaatsing

Kopiëert tekst vanaf waar de cursor staat, tot aan wat het verplaatsings-commando definiëert naar de buffer.

yw

Kopiëert het woord van de cursorpositie naar de buffer.

ynw

Kopiëert n woorden rechts van de cursorpositie naar de buffer.

"xyy

Kopiëert de regel van de cursorpositie naar de buffer met de naam x.

"xym

Kopiëert alles vanaf de cursorpositie tot aan wat het verplaatsings-commando definiëert, naar de buffer met de naam x.


Kopiëren van tekst met ex

:con of :tn

Kopiëert de regel waar de cursor zich bevindt achter de regel met nummer n.

:.,/patroon/co$

Kopiëer alle regels vanaf de huidige regel tot en met de regel waarin patroon voorkomt, naar het einde van het bestand.


Plakken
Wanneer een dergelijk commando wordt voorafgegaan door een getal
n, wordt de bijbehorende bewerking n maal uitgevoerd.
Zie ook knippen en kopiëren van tekst.

J

Verbindt de volgende regel met de regel waar de cursor zich bevind door het newline teken weg te halen. Dit commando laat één spatie tussen twee regels waarvan de eerste niet met een . eindigt, en twee spaties wanneer de eerste regel wel met een punt eindigt. Vim ondersteunt geen nummerieke mogelijkheid om meer regels aan een te voegen.

P

Bij woorden in de buffer: Plakt de bufferinhoud op de cursorpositie.
Bij regels in de buffer: Plakt de bufferinhoud boven de regel waar de cursor staat.

p

Bij woorden in de buffer: Plakt de bufferinhoud 1 character rechts van de cursor.
Bij regels in de buffer: Plakt de bufferinhoud onder de regel waar de cursor staat.

"np

Plakt de inhoud van de met n genummerde verwijder-buffer één character rechts van de cursor.

"nP

Plakt de inhoud van de met n genummerde verwijder-buffer één character links van de cursor.

"xp

Plakt de inhoud van de met x genaamde kopiëer-buffer één character rechts van de cursor.

"xP

Plakt de inhoud van de met x genaamde kopiëer-buffer één character links van de cursor.


Verplaatsen van tekst met ex

:mn

Verplaats de regel waar de cursor zich bevindt achter de regel met nummer n.

:25,50m.

Verplaats regels 25 tot en met 50 naar achter de regel waar de cursor zich bevindt.


Ongedaan maken / herstellen

CTRL-[

Maak laatste commando ongedaan. Wanneer programma in invoer mode is, wordt deze verlaten.

u

Maak laatste commando ongedaan.

U

Herstel de regel zoals deze was voordat de cursor er naar toe gebracht werd.

"np

Herstel de n-de verwijdering. Hierin is: 1 < n < 9; 1 komt overeen met de laatste verwijdering.

"1pu.u.

Doorloop de verwijder-buffer tot de gezochte verwijdering wordt gevonden. Toets herhaaldelijk u. tot de gewenste verwijdering bereikt wordt.


Ongedaan maken via ex

:e!

Heropen de laatst weggeschreven versie van het huidige bestand.


Verplaatsen van de cursor

Wanneer een verplaatsings-commando wordt voorafgegaan door een getal n, wordt de bijbehorende bewerking n maal uitgevoerd.

Verplaatsingen van de cursor over character-posities

h, CTRL-H, Backspace

Beweeg de cursor een positie naar links.

l of Spatie

Beweeg de cursor een positie naar rechts.

j, CTRL-J of CTRL-N

Beweeg de cursor een regel naar onder.

k of CTRL-P

Beweeg de cursor een regel naar boven.


Verplaatsingen binnen tekst

w

Beweeg de cursor vooruit naar begin van woord.

W

Beweeg de cursor vooruit naar begin van string.

e

Beweeg de cursor vooruit naar einde van woord.

E

Beweeg de cursor vooruit naar einde van string.

b

Beweeg de cursor achteruit naar begin van woord.

B

Beweeg de cursor achteruit naar begin van string.

)

Beweeg de cursor naar het begin van volgende zin..

(

Beweeg de cursor naar het begin van vorige zin..

}

Beweeg de cursor naar het begin van volgende paragraaf..

{

Beweeg de cursor naar het begin van vorige paragraaf..

]]

Beweeg de cursor naar het begin van volgende sectie. (Secties moeten gemarkeerd worden met een { op de eerste positie van een regel.).

[[

Beweeg de cursor naar het begin van vorige sectie.. (Secties moeten gemarkeerd worden met een { op de eerste positie van een regel.)


Verplaatsingen binnen regels

$

Beweeg de cursor naar het einde van de regel.

0

Beweeg de cursor naar het begin van de regel.

^

Beweeg de cursor naar het eerste niet blanke character van de regel.

+

Beweeg de cursor naar het begin van de volgende regel.

-

Beweeg de cursor naar het begin van de vorige regel.

H

Beweeg de cursor naar de eerste niet-spatie op de bovenste regel van het scherm.

nH

Beweeg de cursor naar de eerste niet-spatie op de n-de regel na de bovenste regel van het scherm.

M

Beweeg de cursor naar de eerste niet-spatie op de middelste regel op het scherm.

L

Beweeg de cursor naar de eerste niet-spatie op de onderste regel op het scherm.

nL

Beweeg de cursor naar de eerste niet-spatie op de n-de regel voor de onderste regel op het scherm.


Verplaatsingen van het scherm

CTRL-E

Beweeg het scherm een regel vooruit.

CTRL-Y

Beweeg het scherm een regel achteruit.

CTRL-F

Beweeg de cursor een scherm vooruit.

CTRL-D

Beweeg de cursor een half scherm vooruit.

CTRL-B

Beweeg de cursor een scherm achteruit.

CTRL-U

Beweeg de cursor een half scherm achteruit.

Z <return>

Verplaats het scherm zodanig dat de regel met de cursor bovenin komt te staan.
Niet in de vi versie Vim.

Z.

Verplaats het scherm zodanig dat de regel met de cursor in het midden komt te staan.
Niet in de vi versie Vim.

Z-

Verplaats het scherm zodanig dat de regel met de cursor onderin komt te staan.
Niet in de vi versie Vim.


Zoeken naar een string
Wanneer een dergelijk commando wordt voorafgegaan door een getal
n, wordt de bijbehorende bewerking n maal uitgevoerd.

%

Plaats de cursor op een een rond-, krul, of recht haakje, en toets % om het bijbehorende haakje op te zoeken.

/<string>

Ga naar opgegeven string voorwaards in de tekst.

?<string>

Ga naar opgegeven string achterwaards in de tekst.

/

Herhaal het voorgaande zoek-commando voorwaards.

?

Herhaal het voorgaande zoek-commando achterwaards.

n

Herhaal het commando / of ?.

N

Als het commando n, maar keert de zoekrichting om.

fx

Ga voorwaards naar character x in de huidige regel.

Fx

Ga achterwaards naar character x in de huidige regel.

tx

Ga voorwaards naar één postitie voor character x in de huidige regel.

Tx

Ga achterwaards naar één postitie voor character x in de huidige regel.

;

Herhaal het voorgaande f, F, t of T zoek-commando binnen de huidige regel.

,

Herhaal het voorgaande f, F, t of T zoek-commando binnen de huidige regel in omgekeerde richting.


Regelnummer georiënteerd verplaatsen

CTRL-G

Toon het regelnummer van de regel waar de cursor op staat.

G

Beweeg de cursor naar de laatste regel van de tekst.

nG

Beweeg de cursor naar het opgegeven regelnummer n van de tekst.


Regelnummer georiënteerd verplaatsen met ex

:n

Beweeg de cursor naar het opgegeven regelnummer n van de tekst.

:set nu

Maak regelnummers zichtbaar.

:set nonu

Maak regelnummers onzichtbaar.


Het gebruiken van gemarkeerde posities binnen tekst

mx

Markeer de cursor-postitie met merkteken x.

`x

Spring naar merkteken x.

``

Spring naar het vorige merkteken x.

'x

Spring naar het eerste niet-blanke character van de regel met merkteken x.

''

Spring naar het eerste niet-blanke character van de regel met het vorige merkteken.


Diverse belangrijke en nuttige commando's

Handige commando's

.

Herhaal het laatste commando.

CTRL-L

Herschrijf het scherm. (Wanneer er rotzooi of een systeemmelding overheen is gekomen).

:l

Toon de niet zichtbare charcters tab: ^I, backslash:\, backspace: ^H, newline: $, bell: ^G en formfeed ^L.

:.=

Toon het regelnummer waar de cursor zich bevind.

:=

Toon het aantal regels in het bestand.


Gebruik maken van de shell vanuit vi doormiddel van ex

:sh

Spring naar een nieuwe shell.

CTRL-D of exit

Om uit de shell in vi terug te keren.

:! commando

Laat de shell een commando uitvoeren.

:!!

Herhaal het laatste shell-commando.

:r bestand

Lees bestand en plaats de inhoud hiervan onder de regel waar de cursor staat.

:r! commando

Voer commando uit, en plaats de uitvoer hiervan onder de regel waar de cursor staat.

:w !commando

Start commando, en stuur de inhoud van het huidige bestand als input naar commando toe.

:so script

Lees en voer de commando's van het script uit.

:cd directory

Ga naar directory uit.

:verplaatsing! commando

Stuur de teksregels vanaf de cursor-positie tot aan de definitie in verplaatsing naar commando. Bijvoorbeeld: .,13! sort stuurt alles vanaf de huidige regel tot aan regel 13 naar het externe commando sort.


Afdrukken van bestanden zonder de editor te stoppen

:!lp %

Print het huidige bestand.

:!lp <bestand>

Print opgegeven bestand.


Macro's en afkortingen gebruiken binnen vi doormiddel van ex
In vi kunnen macro's worden gedefiniëerd door opdrachten aan bepaalde toetsen toe te kennen. Bij voorkeur worden deze toegekent aan toetsen die nog geen opdracht voor vi vertegenwoordigen. De volgende toetsen hebben standaard geen betekenis: K, V, g, q, v, *, = en de functietoetsen. Macro's worden in de commando-modus gebruikt.

:map x reeks

Definiëer de letter x tot de commando reeks.

:map K i<B>^[

Opdracht definitie voor K: voeg <B> in, en verlaat de invoer-modus.

:unmap x

Maakt de macro-definitie voor de letter x weer ongedaan.

:map! x reeks

Definiëer de letter x tot de in te voegen reeks in de invoer-modus.

:unmap! x

Maakt de macro-definitie voor de letter x in de invoer-modus weer ongedaan.

:ab str string

Wanneer strgevolgd door een blank character in vi wordt ingevoerd, plaats dan string.

:ab

Toon alle afkortingdefinities.

:una str

Maak de afkortingdefinitie str ongedaan.


De syntax van de opties van ex
Omgevingsvariabelen voor vi kunnen tijdelijk met de hand worden ingesteld via ex. Ook kunnen deze opties voor vi permanent ingesteld via het bestand .exrc. In het bestand moet echter steeds het eerste : weggelaten worden.

:set optie

Activeer een bepaalde optie.

:set optie waarde

Ken een waarde toe aan optie.

:set nooptie

Deactiveer optie.

:set

Toon de waardes van alle opties die door de gebruiker zijn toegekend.

:set all

Toon de waardes van alle opties, ook de default-waardes.

:set optie?

Toon de waarde van optie.


In te stellen opties van ex
Onderstaand tref je de standaard instellingen aan van de vi-opties aan.

:set nonu

Toont niet de regelnummers.

:set noai

Begint elke nieuwe regel niet in de beginkolom van de voorgaande regel.

:set nosm

Toont niet een kort moment het openings haakje (rond, recht of krul), nadat het bijbehorende sluit-haakje is getypt. Handig bij het schrijven van programma-code.

:set noic

Negeert bij zoekopdrachten niet het verschil tussen hoofd- en kleine letters.

:set showmode

Toont op de onderste regel in welke mode vi is.

:set wm=n

Bepaalt de wrapmargin, het aantal blanke characterposities van af de rechterkant van het scherm. Bij een kolombreedte van 80 characters zal :set wm=7 resulteren in een rechter marge op kolom 73.

:set nolist

Laat niet de tabs en newline-tekens zien.

:set opt

Versnel output: elemineer een automatische return.(?)

:set prompt

Laat : zien in de ex-modus.

:set mesg

Geef ander gebruikers de mogelijkheid direct berichten naar je scherm te sturen.

:set magic

Maakt mogelijk dat er naar patronen gezocht kan worden met speciale characters.

:set lisp

Pas haakjes aan voor compatabiliteit met Lisp.

:set dir=tmp

Geef een naam voor de directory van het bufferbestand.

:set eb

Laat foutmeldingen met een bel-signaal gepaard gaan.

:set bf

Vermijd controlcharacters van invoer.(?)

:set ap

Plaats een regel na d, c, J, M :s, t, u commando.(?)

:set nore

Simuleer geen 'slimme' terminal op een 'domme terminal'.

:set remap

Sta het gebruik van macro's binenen andere macro's toe.

:set noreport

indiceer het grootste aantal veranderingen op de status-regel.(?)

:set ro

Verander het bestand in een alleen lezen bestand.

:set scroll=n

Set n regels voor CTRL-D en z.(?)

:set sh=shell_pad

Geef aan welke shell geladen wordt bij een shell-opdracht.

:set sw=8

Geef de shift-breedte aan.(?)

:set term

Geef de het terminal-type aan.

:set noterse

Verkort fout-berichten niet met terse.

:set notimeout

Elimineer de één seconde tijdslimiet niet voor uitvoering van grote macro's.

:set tl=0

Set significance of tags beyond this many characters (0 means all).(?)

:set ts=8

Stel aantal characterposities in voor tab-breedte.

:set nowa

Onderdruk niet de normale controle voor schrijfcommando's.

:set warn

Waarschuw indien nodig met: No write since last change.

:set window=n

Stel het aantal regelnummers van de monitor in op n.



 
Was dit artikel bruikbaar? ja / nee
Gerelateerde artikelen VI
Bash scripting
GNU-utility's
Geen netwerk in Centos 6 na installatie
OpenShot Video editor
Maak je website-teksten lekker leesbaar
Ambernet Webmail
Basiskennis
Tooltips die het ook op tablets en smartphones doen
Windows eerst in grub
Artikel details
Artikel ID: 627
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: 19-Jul-2019 16:42:51
Aantal bekeken: 826
Beoordeling (Stemmen): Artikel beoordeeld 5.0/5.0 (3)

 
« Ga terug