De volgende secties leggen de volgende categorieën vi commando’s uit.
-
Verplaatsen in een bestand
-
Tekst invoegen
-
Tekst wijzigen en vervangen
-
Wijzigingen in tekst ongedaan maken
-
Tekst verwijderen
-
Het controleren van uw spelling
-
Opmaak van uw bestandsuitvoer
-
Herhalen van commando’s
Verplaatsen in een bestand
In de vorige secties hebt u geleerd hoe u een bestand kunt maken, opslaan, afdrukken en afsluiten van een vi bestand. Nu u een bestand hebt gemaakt, moet u de concepten begrijpen die nodig zijn om er in te navigeren. Open nu uw oefenbestand en probeer elk van de commando’s die in deze sectie worden besproken.
De cursor verplaatsen
Wanneer u vi start, staat de cursor in de linkerbovenhoek van het vi scherm. In opdrachtmodus kunt u de cursor verplaatsen met een aantal toetsenbordcommando’s. Bepaalde lettertoetsen, de pijltjestoetsen, en de Return-toets, de Back Space (of Delete) toets, en de Space Bar kunnen allemaal worden gebruikt om de cursor te verplaatsen als je in commandomodus bent.
Opmerking –
De meeste vi commando’s zijn hoofdlettergevoelig. Hetzelfde commando getypt in kleine letters en in hoofdletters kan verschillende effecten hebben.
Verplaatsen met pijltjestoetsen
Als uw machine is uitgerust met pijltjestoetsen, probeer deze dan nu. U zou in staat moeten zijn om de cursor vrij over het scherm te bewegen door combinaties van de pijltjestoetsen omhoog, omlaag, rechts en links te gebruiken. Merk op dat u de cursor alleen over reeds bestaande tekst- of invoerruimtes kunt verplaatsen.
Als u vi vanaf een terminal op afstand gebruikt, kan het zijn dat de pijltjestoetsen niet correct werken. Het gedrag van de pijltjestoetsen hangt af van uw terminal emulator. Als de pijltjestoetsen voor u niet werken, kunt u de volgende vervangingen gebruiken:
-
Om naar links te gaan, drukt u op h.
-
Om naar rechts te gaan, drukt u op l.
-
Om omlaag te gaan, drukt u op j.
-
Om omhoog te gaan, drukt u op k.
Een woord verplaatsen
Druk op w (“woord”) om de cursor één woord per keer naar rechts te verplaatsen.
Druk op b (“terug”) om de cursor één woord per keer naar links te verplaatsen.
Druk op W of B om de cursor langs de aangrenzende interpunctie naar de volgende of vorige spatie te verplaatsen.
Druk op e (“einde”) om de cursor naar het laatste teken van het huidige woord te verplaatsen.
Verplaatsen naar begin of einde van regel
Druk op ^ om de cursor naar het begin van de huidige regel te verplaatsen.
Druk op $ om de cursor naar het einde van de huidige regel te verplaatsen.
Een regel omlaag
Druk op Return om de cursor naar het begin van de volgende regel omlaag te verplaatsen.
Verplaatsing naar links
Druk op de Back Space-toets om de cursor een teken naar links te verplaatsen.
Verplaatsing naar rechts
Druk op de spatiebalk om de cursor één teken naar rechts te verplaatsen.
Verplaatsing naar boven
Druk op H (“hoog”) om de cursor naar de bovenkant van het scherm te verplaatsen.
Verplaatsing naar het midden
Druk op M (“midden”) om de cursor naar het midden van het scherm te verplaatsen.
Verplaatsen naar beneden
Druk op L (“laag”) om de cursor naar de onderkant van het scherm te verplaatsen.
Paging en scrollen
Als u omlaag beweegt als de cursor onder in het scherm staat, of omhoog beweegt als de cursor boven in het scherm staat, ziet u de tekst omhoog of omlaag scrollen. Dit scrollen kan een effectieve manier zijn om meer tekst weer te geven in een kort bestand, maar het kan vervelend zijn om op deze manier door een lang bestand te bewegen.
U kunt vooruit of achteruit bladeren of scrollen door een bestand, een scherm of een half scherm tegelijk. Om deze commando’s op Paint uit te proberen, kunt u het beste tekst toevoegen, zodat u een langer bestand hebt om mee te werken.
Merk op dat paging en scrollen fundamenteel verschillend zijn. Scrollen scrollt de cursor regel voor regel omhoog of omlaag door de tekst, alsof hij op een papieren rol staat. Scrollen verplaatst de cursor schermvullend omhoog of omlaag door de tekst. Op een snel systeem merk je het verschil misschien niet. Maar als u werkt vanaf een terminal op afstand of in een andere situatie waarin uw systeem langzamer werkt dan normaal, kan dit verschil pijnlijk duidelijk worden.
Een scherm vooruit
Om een scherm vooruit te scrollen (naar beneden te gaan), drukt u op Ctrl-F. (Houd de Control-toets ingedrukt en druk op de F-toets.) De cursor gaat naar de linkerbovenhoek van het nieuwe scherm.
Scroll een half scherm vooruit
Om een half scherm vooruit te scrollen, drukt u op Ctrl-D.
Eén scherm terug
Om één scherm terug te scrollen (dat wil zeggen, omhoog te gaan), drukt u op Ctrl-B.
Scroll één schermhelft terug
Om één schermhelft terug te scrollen, drukt u op Ctrl-U.
Tekst invoegen
vi biedt vele commando’s om tekst in te voegen. Deze sectie laat u kennis maken met de meest nuttige van deze commando’s. Merk op dat elk van deze commando’s vi in de invoermodus plaatst. Om een van deze commando’s te gebruiken, moet u eerst in de commandomodus zijn. Vergeet niet op Esc te drukken om er zeker van te zijn dat je in command mode staat.
Append
Type a (append) om tekst in te voegen aan de rechterkant van de cursor. Experimenteer door de cursor ergens op een regel te plaatsen en a te typen, gevolgd door de tekst die u wilt toevoegen. Druk op Esc als u klaar bent.
Type A om tekst aan het eind van een regel toe te voegen. Om te zien hoe dit commando werkt, plaatst u de cursor ergens op een tekstregel en typt u A. De cursor gaat naar het einde van de regel, waar u uw toevoegingen kunt typen. Druk op Esc als u klaar bent.
Insert
Voeg tekst in aan de linkerkant van de cursor door i te typen vanuit de commandomodus.
Type I om tekst aan het begin van een regel in te voegen. De opdracht verplaatst de cursor vanaf elke positie op die regel. Druk op Esc om terug te keren naar de commandomodus nadat u de gewenste tekst hebt getypt.
Lijn openen
Maak gebruik van deze opdrachten om nieuwe regels te openen, boven of onder de huidige cursorpositie.
Type o om een regel onder de huidige cursorpositie te openen. Om te experimenteren, typ o gevolgd door een stukje tekst. U kunt meerdere regels tekst typen als u wilt. Druk op Esc als u klaar bent.
Type O om een regel boven de huidige cursorpositie te openen.
Tekst veranderen
Tekst veranderen houdt in dat een deel van de tekst wordt vervangen door een ander deel. vi heeft verschillende manieren om dit te doen, afhankelijk van de omstandigheden.
Verander een woord
Om een woord te vervangen, plaats de cursor aan het begin van het woord dat vervangen moet worden. Typ cw, gevolgd door het nieuwe woord. Druk op Esc om te beëindigen.
Om een deel van een woord te wijzigen, plaatst u de cursor op het woord, rechts van het deel dat moet worden opgeslagen. Typ cw, typ de correctie, en druk op Esc.
Verander een regel
Om een regel te vervangen, plaatst u de cursor ergens op de regel en typt u cc. De regel verdwijnt en er blijft een lege regel over voor uw nieuwe tekst (die van elke lengte kan zijn). Druk op Esc om te beëindigen.
Teken(s) vervangen
Om een of meer tekens te vervangen door het teken onder de cursor, typt u s, gevolgd door de nieuwe tekst. Druk op Esc om terug te keren naar de commandomodus.
Een teken vervangen
Met deze opdracht vervangt u het door de cursor gemarkeerde teken door een ander teken. Plaats de cursor op het karakter en typ r, gevolgd door slechts één vervangend karakter. Na de vervanging keert vi automatisch terug naar de opdrachtmodus (u hoeft niet op Esc te drukken).
Wijzigingen ongedaan maken
Wanneer u tekst bewerkt en wijzigingen aanbrengt in een vi bestand, zou u soms willen dat u iets niet had veranderd. vi’s ongedaan maken commando’s stellen u in staat om een bewerking terug te draaien en van daaruit verder te gaan.
Het vorige commando ongedaan maken
Als je in vi een fout maakt of je bedenkt je nadat een bewerking is voltooid, kun je je laatste commando ongedaan maken door onmiddellijk na het commando op u te drukken. Je hoeft niet op Esc te drukken nadat je u hebt getypt. Door een tweede keer op u te drukken maak je de ongedaanmaking ongedaan.
Wijzigingen op een regel ongedaan maken
Typ U om alle wijzigingen die u op een regel hebt aangebracht ongedaan te maken. Deze opdracht werkt alleen als u de cursor niet van de regel hebt verplaatst. U hoeft niet op Esc te drukken nadat u U hebt getypt.
Tekst verwijderen
Deze vi commando’s verwijderen het teken, het woord of de regel die u aangeeft. vi blijft in commando-modus, dus alle volgende tekstinvoegingen moeten worden voorafgegaan door extra commando’s om in de invoermodus te komen.
Een teken verwijderen
Om een teken te verwijderen, plaatst u de cursor op het teken dat u wilt verwijderen en typt u x.
De opdracht x verwijdert ook de ruimte die het teken innam – als een letter uit het midden van een woord wordt verwijderd, zullen de resterende letters zich sluiten, zodat er geen ruimte meer overblijft. U kunt ook lege ruimten in een regel verwijderen met de opdracht x.
Om een teken vóór (links van) de cursor te verwijderen, typt u X (hoofdletter).
Een woord of een deel van een woord verwijderen
Om een woord te verwijderen, plaatst u de cursor aan het begin van het woord en typt u dw. Het woord en de ruimte die het innam worden verwijderd.
Om een deel van een woord te verwijderen, plaatst u de cursor op het woord rechts van het deel dat moet worden opgeslagen. Typ dw om de rest van het woord te verwijderen.
Een regel verwijderen
Om een regel te verwijderen, plaatst u de cursor ergens op de regel en typt u dd. De regel en de ruimte die hij inneemt, worden verwijderd.
Kopiëren en verplaatsen van tekst – rukken, wissen en zetten
Veel tekstverwerkers bieden de mogelijkheid om tekstregels te “kopiëren en plakken” en “knippen en plakken”. De vi editor heeft ook deze mogelijkheden. Het vi commando-mode equivalent van “kopiëren en plakken” is “yank and put”. Het equivalent van “knippen en plakken” is “delete” en “put”.
De methoden voor het kopiëren of verplaatsen van kleine blokken tekst in vi bestaat uit het gebruik van een combinatie van de commando’s yank, delete en put.
Regels kopiëren
Het kopiëren van een regel vereist twee commando’s: yy of Y (“yank”) en ofwel p (“put below”) of P (“put above”). Merk op dat Y hetzelfde doet als yy.
Om een regel te rukken, volgt u deze stappen.
-
Plaats de cursor ergens op de regel die u wilt rukken.
-
Type yy.
-
Verplaats de cursor naar de regel erboven waar u de gerukte regel wilt plaatsen (kopiëren).
-
Type p.
Een kopie van de overgenomen regel verschijnt in een nieuwe regel onder de cursor.
Om de overgenomen regel in een nieuwe regel boven de cursor te plaatsen, typt u P.
Het commando yy werkt goed met een telling: om bijvoorbeeld 11 regels te yanken, typt u 11yy. Elf regels, aftellend vanaf de cursor, worden gejankt, en vi geeft dit aan met een bericht onder in het scherm: 11 regels verwijderd.
Je kunt ook de P of p commando’s gebruiken direct na een van de verwijdercommando’s die eerder zijn besproken. Deze actie plaatst de tekst die je hebt verwijderd respectievelijk boven of onder de cursor.
Voorzichtig –
Gebruik alleen cursor-verplaatsende commando’s tussen het rukken of verwijderen en het zetten. Als je een andere tekst verwijdert of weggooit voordat je de nieuwe tekst hebt geplaatst, gaan de regels die je hebt verwijderd of weggooit verloren.
Regels verplaatsen
Verplaatsen van regels vereist ook twee commando’s: dd (“delete”) en ofwel p of P.
Om een regel te verplaatsen, plaatst u de cursor ergens op de regel en typt u dd. Om bijvoorbeeld 5 regels te wissen, typ je 5dd.
Daarna verplaats je de cursor naar de regel waarboven je de gewiste regel weer wilt invoegen en typ je p. Hiermee wordt de tekst op een nieuwe regel onder de cursor ingevoegd.
Als alternatief kun je de gewiste regel boven de cursor plaatsen door P te typen.
Een graaf gebruiken om commando’s te herhalen
Vele vi commando’s kunnen worden voorafgegaan door een herhalingsfactor (een graaf genoemd) – een getal dat aan het commando voorafgaat en aangeeft hoe vaak het commando moet worden herhaald.
De meeste commando’s in de vorige paragrafen hebben een graaf. Bijvoorbeeld, 3dd herhaalt het commando om een regel te verwijderen drie keer, dus drie regels. 2dw verwijdert twee woorden, en 4x verwijdert vier tekens of spaties. U kunt ook tellingen gebruiken met commando’s om de cursor te verplaatsen, zoals 3w en 2Ctrl-F. In de sectie Samenvatting van Basis vi Commando’s wordt elk commando dat een telling gebruikt aangegeven met “” voor de naam van het commando.
Typt u een punt (.), dan wordt het vorige commando dat de tekst wijzigt herhaald. Als u bijvoorbeeld net een regel hebt verwijderd met dd, kunt u de cursor naar een andere regel verplaatsen en die verwijderen door gewoon een punt te typen.