Meerdere bestanden tegelijkertijd bewerken

Binnen Emacs kan aan meer dan één bestand tegelijkertijd worden gewerkt. In wezen is de enige limiet over hoeveel buffers Emacs kan bevatten, de feitelijke hoeveelheid beschikbaar geheugen op de machine. De opdracht voor het inlezen van een nieuw bestand in een Emacs buffer is C-x C-f. Wanneer je het intikt, zal je worden gevraagd om een bestandsnaam in de minibuffer:


Find file: ~/

De syntax die hier wordt gebruikt is dezelfde als die wordt gebruikt vanaf de shellprompt; slashes stellen subdirectory's voor, ~ betekent je homedirectory. Je krijgt ook bestandsnaamvoltooiing, wat betekent dat je ter voltooiing gewoon de Tab-toets kunt gebruiken als je voldoende van een bestandsnaam achter de prompt hebt ingetikt om het bestand uniek te identificeren (of als er meer bestandsnamen voldoen aan de ingetikte letters, de mogelijke voltooiingen kunt laten tonen). Ook de Spatiebalk heeft een rol bij het voltooien van de bestandsnaam in de minibuffers, vergelijkbaar met de Tab-toets, maar ik laat je zelf uitzoeken hoe deze twee van elkaar verschillen. Druk op Return zodra de volledige bestandsnaam in de minibuffer is verschenen waarop een buffer verschijnt waarin dat bestand wordt weergegeven. In Emacs staat dit proces bekend als het vinden van een bestand. Ga nu op zoek naar een ander onbelangrijk tekstbestand, en laad het in Emacs (doe dit vanuit je oorspronkelijke buffer een_bestand.txt). Nu heb je een nieuwe buffer; Ik doe net alsof dit eenander_bestand.txt is, aangezien ik je modusregel niet kan zien.

Je oorspronkelijke buffer schijnt te zijn verdwenen. Je vraagt je wellicht af waar het bleef. Het bevindt zich nog steeds binnen Emacs en je kunt ernaar terugkeren met C-x b. Je zult, wanneer je dit typt, zien dat de minibuffer je vraagt naar welke buffer over te schakelen, en het geeft een standaardwaarde. De standaard is de buffer die je krijgt als je achter de prompt slechts de Return toets indrukt, zonder dat je daarbij een buffernaam opgeeft. De standaardbuffer om naar over te schakelen is altijd degene die je het laatst hebt verlaten. Bij het werken aan twee buffers geeft C-x b standaard altijd de "andere"' buffer (wat je het typen van de buffernaam bespaart). Zelfs als je de standaardbuffer wilt, dan nog zou je echter moeten proberen deze te activeren door de naam ervan op te geven.

Je hebt de beschikking over dezelfde voltooiingsmogelijkheden als bij het zoeken naar een bestand: het indrukken van de Tab zorgt ervoor dat er zoveel mogelijk van de naam van de buffer wordt aangevuld. Wanneer in de minibuffer een vraag wordt gesteld, is het zinnig uit te proberen of Emacs in deze voltooiingsmogelijkheden voorziet. Het zal je veel typwerk besparen wanneer je gebruik maakt van de voltooiingsmogelijkheden zodra dit maar wordt aangeboden. Emacs biedt gewoonlijk voltooiingsmogelijkheden aan wanneer je een item kiest uit één of ander type voorgedefinieerde lijst.

Alles wat je leerde over het manoeuvreren en bewerken van tekst in de eerste buffer is ook van toepassing op de nieuwe buffer. Ga je gang en wijzig wat tekst in de nieuwe buffer, maar sla het niet op (d.w.z. typ geen C-x C-s). Laten we ervan uitgaan dat je de wijzigingen wilt verwerpen, dus ze niet wilt opslaan in het bestand. De opdracht daarvoor is C-x k, waarmee de buffer wordt verwijderd. Typ het nu. Eerst zal je worden gevraagd welke buffer, maar de standaard is de huidige buffer, en dat is bijna altijd de buffer die je wilt verwijderen, dus druk gewoon op Return. Dan zal je worden gevraagd of je het echt wilt. Emacs voert altijd een controle uit bij een buffer met niet opgeslagen wijzigingen. Typ gewoon "yes" en druk op Return, als je het werkelijk wilt.

Ga verder met het oefenen in het laden van bestanden, het aanpassen, opslaan en verwijderen van de buffers. Zorg natuurlijk wel dat je geen belangrijke systeembestanden aanpast op een dusdanige manier dat dit voor problemen zal zorgen.[1] Probeer echter wel minstens vijf buffers tegelijkertijd te openen, zodat je onder de knie krijgt hoe tussen buffers te schakelen.

Noten

[1]

Je kunt toch geen schade op het systeem aanrichten, zolang je de gebruiker "root" niet bent, maar wees hoe dan ook toch voorzichtig.