Linux Tutorial – 6. Vi Tekst Editor

Inleiding

Benmeester de Vi tekst editor en leer hoe je complexe bewerkingen op je bestanden kunt maken met minder tijd en moeite.

In de laatste sectie hebben we een paar bestanden gemaakt, maar ze waren leeg. Een beetje saai, maar we moeten ergens beginnen. In deze sectie gaan we kijken naar een tool om inhoud in bestanden te zetten en die inhoud ook te bewerken. Vi is een tekst editor die waarschijnlijk heel anders is dan alle andere editors die je eerder hebt gebruikt. Het zal even duren voor je het begrijpt, maar als je het eenmaal doorhebt zul je beseffen dat het eigenlijk heel krachtig is. Het is een beetje zoals touch typing, in het begin is het leren onhandig en vraag je je af waarom je de moeite neemt, maar als je het eenmaal onder de knie hebt wil je niet meer terug.

Zelfs als je Vi niet de hele tijd gebruikt zul je zeker merken dat werkpatronen die je ontwikkelt bij het leren van de editor gemakkelijk kunnen worden overgezet naar andere programma’s en met groot effect.

Deze en de volgende secties vormen eigenlijk de basis voor de laatste paar secties waar we ze allemaal samenvoegen en wat echt funky dingen gaan doen. Ik heb ervoor gekozen om eerst naar Vi te kijken zodat je geest wat tijd heeft om het te verwerken en te begrijpen als voorbereiding voor later, wanneer we het nodig zullen hebben.

Vi is een zeer krachtig gereedschap. In dit deel wil ik niet alles behandelen wat Vi kan, maar wil ik je op weg helpen met de basis. Aan het eind van de sectie geef ik wat links naar bronnen waar u Vi verder kunt leren. Ik raad je ten zeerste aan om er een paar van te bekijken.

Een Command Line Editor

Vi is een command line text editor. Zoals je nu wel weet, is de commandoregel een heel andere omgeving dan de GUI. Het is een enkel venster met alleen tekst invoer en uitvoer. Vi is ontworpen om binnen deze beperkingen te werken en velen zouden beweren dat het daardoor eigenlijk heel krachtig is. Vi is bedoeld als een tekstverwerker (vergelijkbaar met Notepad onder Windows, of Textedit op de Mac) in tegenstelling tot een tekstverwerkingspakket zoals Word of Pages. Het heeft echter veel meer kracht in vergelijking met Notepad of Textedit.

Als gevolg hiervan moet je de muis dumpen. Alles in Vi gaat via het toetsenbord.

Er zijn twee modi in Vi. Invoeg (of Invoer) modus en Bewerk modus. In de invoermodus kunt u inhoud invoeren of invoeren in het bestand. In de bewerkingsmodus kunt u door het bestand bewegen, acties uitvoeren zoals verwijderen, kopiëren, zoeken en vervangen, opslaan enz. Een veel voorkomende fout is om te beginnen met het invoeren van commando’s zonder eerst terug te gaan naar de bewerkmodus of om te beginnen met het typen van invoer zonder eerst naar de invoegmodus te gaan. Als je een van deze fouten maakt, is het over het algemeen eenvoudig te herstellen, dus maak je niet te veel zorgen.

Als we vi starten, geven we het normaal gesproken uit met een enkel opdrachtregelargument, namelijk het bestand dat je wilt bewerken.

vi <file>

Als je vergeet een bestand op te geven, is er een manier om een bestand binnen vi te openen, maar het is het gemakkelijkst om vi gewoon af te sluiten en het nog eens te proberen. Denk er ook aan dat wanneer we een bestand opgeven, dit zowel een absoluut als relatief pad kan zijn.

Laten we er in duiken en aan de slag gaan. Het wordt moeilijk voor mij om veel te demonstreren, dus in plaats daarvan zal ik opsommen wat ik wil dat je typt en je moet het proberen en zien wat er gebeurt.

Laten we eerst naar je directory gaan die je hebt gemaakt in de sectie over bestandsmanipulatie. We gaan een paar bestanden aanmaken en dit zal ze uit de weg houden van je normale dingen.

Nu gaan we ons eerste bestand bewerken.

  1. vi firstfile

Wanneer je dit commando uitvoert, opent het het bestand. Als het bestand niet bestaat, wordt het voor u aangemaakt en vervolgens geopend. (je hoeft bestanden niet aan te raken voordat je ze bewerkt) Als je vi hebt geopend ziet het er ongeveer zo uit (maar afhankelijk van het systeem waar je op zit kan het er iets anders uitzien).

  1. ~
  2. ~
  3. ~
  4. ~
  5. “firstfile”

U begint altijd in de bewerkmodus, dus het eerste wat we gaan doen is overschakelen naar de invoegmodus door op i te drukken. Wanneer u in de invoegmodus bent, kunt u dat zien aan de linkerbenedenhoek.

  1. ~
  2. ~
  3. ~
  4. ~
  5. — INSERT —

Nu typt u een paar regels tekst in en drukt u op Esc, waardoor u weer in de bewerkmodus komt.

Opslaan en afsluiten

Er zijn een paar manieren om dit te doen. Ze doen in wezen allemaal hetzelfde, dus kies de manier die uw voorkeur heeft. Zorg er wel voor dat u in de bewerkingsmodus bent

Als u niet zeker weet of u in de bewerkingsmodus bent of niet, kunt u linksonder kijken. Zolang er geen INSERT staat, is er niets aan de hand. Je kunt ook gewoon op Esc drukken om zeker te zijn. Als je al in bewerkingsmodus bent, doet het geen kwaad om op Esc te drukken.

De meeste commando’s binnen vi worden uitgevoerd zodra je een reeks toetsen indrukt. Elk commando dat begint met een dubbele punt ( : ) vereist dat u <enter> indrukt om het commando te voltooien.

Het bestand dat u op dat moment open hebt staan, opslaan en afsluiten

Andere manieren om bestanden te bekijken

vi stelt ons in staat om bestanden te bewerken. Als we willen, kunnen we het ook gebruiken om bestanden te bekijken, maar er zijn twee andere commando’s die daar wat handiger voor zijn. De eerste is cat, wat eigenlijk staat voor concatenate. Het belangrijkste doel is om bestanden samen te voegen, maar in zijn meest eenvoudige vorm is het handig om gewoon bestanden te bekijken.

cat <file>

Als je het commando cat uitvoert, met als argument het bestand dat we net gemaakt hebben, dan zal je de inhoud op het scherm zien, gevolgd door de prompt.

Als u per ongeluk cat uitvoert zonder een command line argument mee te geven, zult u merken dat de cursor naar de volgende regel gaat en dat er vervolgens niets gebeurt. Omdat we geen bestand hebben opgegeven, leest cat in plaats daarvan van iets dat STDIN heet (waarover we meer zullen leren in de sectie ‘Piping en redirection’, dat standaard op het toetsenbord staat. Als u iets typt en dan <enter> indrukt, ziet u dat cat uw invoer naar het scherm spiegelt. Om hier uit te komen kunt u <Ctrl> + c indrukken, wat het universele signaal is voor Annuleren in Linux.

In feite kunt u, wanneer u in de problemen komt, in het algemeen <Ctrl> + c indrukken om uzelf uit de problemen te halen.

  1. cat firstfile
  2. hier ziet u
  3. welke inhoud u
  4. in uw bestand hebt ingevoerd

Dit commando is leuk als we een klein bestand moeten bekijken, maar als het bestand groot is, zal het grootste deel van de inhoud over het scherm vliegen en zullen we alleen de laatste pagina met inhoud zien. Voor grotere bestanden is er een beter geschikt commando en dat is minder.

less <file>

less stelt u in staat om binnen een bestand op en neer te gaan met behulp van de pijltjestoetsen. U kunt een hele pagina vooruit gaan met de spatiebalk of een pagina terug door op b te drukken. Als u klaar bent kunt u op q drukken om af te sluiten.

Kijk eens naar het bestand dat u zojuist hebt gemaakt met behulp van deze beide commando’s.

Navigeren door een bestand in Vi

Nu gaan we terug in het bestand dat we zojuist hebben gemaakt en voeren nog wat meer inhoud in. In de invoegmodus kunt u de pijltjestoetsen gebruiken om de cursor te verplaatsen. Voer nog twee alinea’s in en druk dan op Esc om terug te gaan naar de edit modus.

Hieronder staan enkele van de vele commando’s die je kunt invoeren om door het bestand te bewegen. Speel er eens mee en zie hoe ze werken.

  • Pijltjestoetsen – verplaats de cursor
  • j, k, h, l – verplaats de cursor omlaag, omhoog, links en rechts (vergelijkbaar met de pijltjestoetsen)
  • ^ (caret) – verplaats de cursor naar het begin van de huidige regel
  • $ – verplaats de cursor naar het einde van de huidige regel
  • nG – verplaats de cursor naar de n-de regel (bijv. 5G verplaatst de cursor naar de 5-de regel)
  • G – verplaats de cursor naar de laatste regel
  • w – naar het begin van het volgende woord verplaatsen
  • nw – n woord vooruit verplaatsen (bijv. 2w verplaatst twee woorden vooruit)
  • b – naar het begin van het vorige woord verplaatsen
  • nb – n woord terug verplaatsen
  • { – één paragraaf achteruit verplaatsen
  • } – één alinea vooruit

Als u in de bewerkingsmodus van vi :set nu intypt, worden de regelnummers ingeschakeld. Ik vind dat het aanzetten van regelnummers het werken met bestanden een stuk makkelijker maakt.

Verwijderen van inhoud

We hebben zojuist gezien dat als we in vi willen bewegen er nogal wat opties voor ons beschikbaar zijn. Bij een aantal van die opties kunnen we ook een getal opgeven om zo vaak te verplaatsen. Verwijderen werkt op dezelfde manier als verplaatsen, in feite staan verschillende verwijder-commando’s ons toe om een bewegingscommando te gebruiken om te definiëren wat er verwijderd gaat worden.

Hieronder staan enkele van de vele manieren waarop we inhoud kunnen verwijderen binnen vi. Speel er nu eens mee. (bekijk ook het gedeelte hieronder over ongedaan maken, zodat u uw verwijderingen ongedaan kunt maken.)

  • x – verwijder een enkel karakter
  • nx – verwijder n karakters (bijv. 5x verwijdert vijf karakters)
  • dd – verwijder de huidige regel
  • dn – d gevolgd door een verplaatsingsopdracht. Verwijder tot waar de verplaatsingsopdracht u zou hebben gebracht. (b.v. d5w betekent 5 woorden verwijderen)

Wijzigingen ongedaan maken

Wijzigingen ongedaan maken in vi is vrij eenvoudig. Het is het teken u.

  • u – de laatste actie ongedaan maken (u kunt op u blijven drukken om het ongedaan maken voort te zetten)
  • U (let op: hoofdletter) – alle wijzigingen op de huidige regel ongedaan maken

Taking it Further

We kunnen nu inhoud in een bestand invoegen, door het bestand heen bewegen, inhoud verwijderen en ongedaan maken en vervolgens opslaan en afsluiten. Je kunt nu basis bewerkingen doen in vi. Dit is echter nog maar het topje van de ijsberg van wat vi allemaal kan. Ik zal hier niet op alle details ingaan (ik denk dat ik al genoeg heb gezegd) maar ik zal je een paar dingen geven waar je misschien naar wilt kijken om je expertise in vi te vergroten. Een eenvoudige zoekactie in de zoekmachine van je keuze voor vi <insert concept here> zal je vele pagina’s met nuttige informatie opleveren. Er zijn ook veel vi spiekbladen die alle beschikbare commando’s op een rijtje zetten.

  • kopiëren en plakken
  • zoeken en vervangen
  • buffers
  • markeringen
  • ranges
  • instellingen

Heb veel plezier en vergeet niet om door te zetten. vi zal in het begin pijnlijk zijn, maar met oefening zal het snel je vriend worden.

Samenvatting

vi Bewerk een bestand. cat Bekijk een bestand. less Handig voor het bekijken van grote bestanden.
Geen muis vi is een tekstverwerker waarbij alles met het toetsenbord wordt gedaan. Als je kunt aanraaktypen, is dit geweldig. Zo niet, dan moet je er misschien over denken om het te leren. Bewerkingscommando’s Er zijn er veel. Oefening is de sleutel om de meest gebruikte en nuttige te onthouden.

Activiteiten

Laten we eens spelen met wat inhoud.

  • Begin met het maken van een bestand en zet er wat inhoud in.
  • Bewaar het bestand en bekijk het zowel in cat als in less
  • Ga terug in het bestand in vi en voer wat meer inhoud in.
  • Verplaats de inhoud met ten minste 6 verschillende bewegingscommando’s.
  • Probeer met een aantal van de verwijdercommando’s, vooral die waarin een bewegingscommando is opgenomen. Vergeet niet dat u uw wijzigingen ongedaan kunt maken, zodat u niet steeds nieuwe inhoud hoeft in te voegen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.