GeeksforGeeks
De standaard editor die bij het UNIX besturingssysteem wordt geleverd heet vi (visuele editor). Met vi editor kunnen we een bestaand bestand bewerken of een nieuw bestand maken. We kunnen deze editor ook gebruiken om alleen een tekstbestand te lezen.
Syntax:
vi filename
Invoer:
Uitvoer:
Wijze van werken in vi editor Er zijn drie manieren van werken in vi:
- Bevelmodus: Als vi opstart, staat het in de opdrachtmodus. In deze modus interpreteert vi alle tekens die we typen als commando’s en geeft ze dus niet weer in het venster. In deze modus kunnen we door een bestand lopen, en een stuk tekst verwijderen, kopiëren of plakken.
Om vanuit een andere modus in de Command Mode te komen, moeten we op de toets drukken. Als we drukken terwijl we al in de Command Mode zijn, dan zal vi piepen of knipperen op het scherm. - Invoeg mode: In deze modus kunt u tekst invoegen in het bestand. Alles wat in deze modus wordt getypt, wordt geïnterpreteerd als invoer en uiteindelijk wordt het in het bestand gezet. De vi start altijd in opdrachtmodus. Om tekst in te voeren, moet je in insert mode zijn. Om in insert mode te komen typ je gewoon i. Om uit insert mode te komen druk je op de Esc toets, die je weer in command mode zet.
- Last Line Mode (Escape Mode): Line Mode wordt opgeroepen door het typen van een dubbele punt , terwijl vi in de Command Mode staat. De cursor springt naar de laatste regel van het scherm en vi wacht op een commando. Deze modus stelt u in staat om taken uit te voeren zoals het opslaan van bestanden en het uitvoeren van commando’s.
Starten van de vi Editor
Er zijn de volgende manieren waarop u kunt beginnen met het gebruik van vi editor :
Commando’s en hun beschrijving
- vi bestandsnaam: Maakt een nieuw bestand aan als het nog niet bestaat, anders opent het een bestaand bestand.
- vi -R bestandsnaam : Opent een bestaand bestand in alleen-lezen modus.
- view bestandsnaam : Opent een bestaand bestand in alleen-lezen modus.
Verplaatsen binnen een bestand(navigatie):
Om binnen een bestand te verplaatsen zonder de tekst te beïnvloeden, moet je in commando-modus zijn (druk twee keer op Esc). Hier zijn enkele commando’s die gebruikt kunnen worden om één karakter per keer te verplaatsen.
Commando’s en hun beschrijving
- k : Verplaatst de cursor één regel omhoog.
- j : Verplaatst de cursor één regel omlaag.
- h : Verplaatst de cursor één karakterpositie naar links.
- l : verplaatst de cursor één teken naar rechts.
- 0 of | : plaatst de cursor aan het begin van de regel.
- $ : plaatst de cursor aan het einde van de regel.
- W : verplaatst de cursor naar het volgende woord.
- B : verplaatst de cursor naar het vorige woord.
- ( : plaatst de cursor aan het begin van de huidige zin.
- ) : plaatst de cursor aan het begin van de volgende zin.
- H : ga naar de bovenkant van het scherm.
- nH : gaat naar de n-de regel vanaf de bovenkant van het scherm.
- M : ga naar het midden van het scherm.
- L : Ga naar de onderkant van het scherm.
- nL : Ga naar de n-de regel vanaf de onderkant van het scherm.
- dubbele punt samen met x : dubbele punt gevolgd door een getal plaatst de cursor op regelnummer vertegenwoordigd door x.
Control Commando’s (Scrollen): Er zijn volgende handige commando’s die samen met Control Key gebruikt kunnen worden:
Commando’s en hun Beschrijving:
- CTRL+d : Ga 1/2 scherm vooruit.
- CTRL+f : Gaat één volledig scherm vooruit.
- CTRL+u : Gaat 1/2 scherm achteruit.
- CTRL+b : Gaat één volledig scherm achteruit.
- CTRL+e : Verplaatst het scherm één regel omhoog.
- CTRL+y : Verplaatst scherm één regel omlaag.
- CTRL+u : Verplaatst scherm 1/2 pagina omhoog.
- CTRL+d : Verplaatst scherm 1/2 pagina omlaag.
- CTRL+b : Verplaatst scherm één pagina omhoog.
- CTRL+f : Verplaatst scherm één pagina naar beneden.
- CTRL+I : Hertekent scherm.
Bewerken en invoegen in Bestanden (Tekst invoeren en vervangen): Om het bestand te bewerken, moeten we in de invoegmodus zijn. Er zijn vele manieren om de invoegmodus te openen vanuit de opdrachtmodus.
- i : voegt tekst in vóór de huidige cursorlocatie.
- I : voegt tekst in aan het begin van de huidige regel.
- a : voegt tekst in na de huidige cursorlocatie.
- A : voegt tekst in aan het einde van de huidige regel.
- o : Creëert een nieuwe regel voor tekstinvoer onder de cursor.
- O : Creëert een nieuwe regel voor tekstinvoer boven de cursor.
- r : Vervangt enkel teken onder de cursor door het volgende getypte teken.
- R : Vervangt tekst vanaf de cursor naar rechts.
- s : Vervangt enkel teken onder de cursor door een willekeurig aantal tekens.
- S :Vervangt hele regel.
Het verwijderen van tekens: Hier volgt de lijst met belangrijke commando’s waarmee tekens en regels in een geopend bestand kunnen worden verwijderd.
- X Hoofdletters: Verwijdert het teken vóór de cursorlocatie.
- x Kleine letters : Verwijdert het teken op de cursorlocatie.
- Dw : Verwijdert vanaf de huidige cursorpositie tot het volgende woord.
- d^ : Verwijdert vanaf de huidige cursorpositie tot het begin van de regel.
- d$ : Verwijdert vanaf de huidige cursorpositie tot het einde van de regel.
- Dd : Verwijdert de regel waar de cursor zich op bevindt.
Kopieer- en plakopdrachten: Kopieer regels of woorden van de ene plaats en plak ze op een andere plaats met behulp van de volgende commando’s.
- Yy : Kopieert de huidige regel.
- 9yy : Kopieert de huidige regel en 9 regels eronder.
- p : Plaatst de gekopieerde tekst na de cursor.
- P : Plaatst de gekopieerde tekst voor de cursor.
Opslaan en verlaten van commando’s van de ex-modus : U moet op de toets drukken gevolgd door de dubbele punt (:) voordat u de volgende commando’s typt:
- q : Afsluiten
- q! : Afsluiten zonder wijzigingen op te slaan, d.w.z. wijzigingen negeren.
- r fileName : Gegevens lezen uit bestand met de naam fileName.
- wq : Schrijven en afsluiten (opslaan en afsluiten).
- w fileName : Schrijven naar bestand genaamd fileName (opslaan als).
- w! fileName : Overschrijven naar bestand genaamd fileName (geforceerd opslaan als).
- !cmd : Voert commandoregelopdrachten uit en keert terug naar Commandomodus.
Zoeken en vervangen in (ex-modus): vi heeft ook krachtige zoek- en vervangmogelijkheden. De formele syntaxis voor zoeken is:
:s/string
Voorbeeld, stel dat we in een tekst willen zoeken naar de string “geeksforgeeks” Typ het volgende en druk op ENTER:
:s/geeksforgeeks
Invoer:
Uitvoer: het vinden van de eerste overeenkomst voor “geeksforgeeks” in tekst zal dan worden gemarkeerd.
De syntaxis voor het vervangen van een tekenreeks door een andere tekenreeks in de huidige regel is:
:s/pattern/replace/
Hier staat “pattern” voor de oude tekenreeks en “replace” voor de nieuwe tekenreeks. Bijvoorbeeld, om elk voorkomen van het woord “geeks” in een regel te vervangen door “geeksforgeeks” typ je:
:s/geeksforgeeks/gfg/
Input:
Output:
De syntaxis voor het vervangen van elk voorkomen van een tekenreeks in de hele tekst is vergelijkbaar. Het enige verschil is de toevoeging van een “%” voor de “s”:
:%s/pattern/replace/
Hierdoor zou het herhalen van het vorige voorbeeld voor de hele tekst in plaats van slechts voor een enkele regel zijn:
:%s/gfg/geeksforgeeks/