EMACS

De EMACS tekstbewerker

Van Linux gebruikers wordt vaak beweert dat ze gepassioneerd zijn en bepaalde "hot topics" resulteren nog regelmatig in Flame Wars. Eén van deze hot topics zijn de tekstbewerkers (en niet tekstverwerkers, zoals MS Office en LibreOffice). vi(m) en emacs. Beide zijn extreem krachtige tools en gaan al heel lang mee. vi is gemaakt om dezelfde werkwijze te hebben als de gelijknamige vi editor op de oude UNIX® systemen en emacs is geschreven door Richard M. Stallman 1 (RMS), de oprichten van zowel de Free Software Foundation en het GNU Project.

In tegenstelling tot vi is emacs niet standaard geïnstalleerd op de meeste Linux distributies (maakt geen deel uit van een "Posix systeem.) dus zal je deze eerst moeten installeren met de pakketbeheerder van jouw distributie.

Hoewel emacs is begonnen als een tekstbewerker voor het GNU project is het in de loop der jaren extreem uitgebreid 2 en kun je er bijna alles mee doen, men zegt daarom ook vaak van emacs dat het "Everyting but the kitchen sink" (of "Alles behalve de gootsteen") is 3. Hier gaan we ons echter beperken tot het bewerken van tekst bestanden.

Net zoals Vi(m) is Emacs ontworpen om gebruikt te worden zonder de handen van het toetsenbord af te halen en dus zonder het gebruik van een muis.

Maar in tegenstelling tot vi(m) werkt Emacs met speciale toetsen zoals ctrl en altom bepaalde acties uit te voeren, het GNU project heeft een handige Reference Card voor emacs 4 De 2 meest gebruikte toetsen zijn de ctrl (C op de reference card) en alt (M op de reference card).

Dus even ter verduidelijking, om emacs af te sluiten doe je volgende deze reference card : C-x C-c en dat komt overeen met de toetsencombinatie ctrl+x onmiddellijk gevolgd door ctrl+c.

Laten we nu beginnen met de basis van emacs, hoe start je emacs op ? Simpelweg met emacs.

Hoewel Emacs een CLI programma is zal het bij gebruik onder een DE opstarten in X-modus:

Figuur: emacs GUI versie
Figuur: emacs CLI versie

Afhankelijk van hoe je emacs opstart (in X of GUI) kun je deze in de achtergrond (backgroud process) zetten of het venster minimaliseren met de toetsencombinatie C+xC+z als je emacs op deze manier naar de achtergrond verplaatst kun je deze terugroepen met het foreground commando fg of als er meerdere verschillende programma's in de achtergrond draaien gebruik je fg emacs.

Let op!:
  • let op!
  • Als je emacs meerdere keren opstart zal dit een foutmelding geven, je zal dan fg moeten gebruiken in samenwerking met het job ID, dit ID kun je verkrijgen als je het jobs commando gebruikt.
Figuur: $ jobs
Belangrijk:
  • Als je emacs meerdere keren opstart zal dit een foutmelding geven, je zal dan fg moeten gebruiken in samenwerking met het job ID, dit ID kun je verkrijgen als je het jobs commando gebruikt.
  • Deze programma's worden dan wel gestopt, wil je dat deze op de achtergrond blijven werken gebruik je het bg commando. en open je het weer met fg

Er zijn vele opstartmogelijkheden voor emacs, maar we gaan ons richten op het effectief werken met deze tool. De opstartopties kun je zoals altijd raadplegen in de manpages van emacs.

Net zoals de meeste programma's die werken in de CLI is het mogelijk om een bestand dat je wil bewerken mee te geven als een opstart parameter. (Bijvoorbeeld: emacs /etc/apt/sources.list).

Figuur: $ emacs /etc/apt/sources.list

Als je emacs al hebt opgestart is er natuurlijk ook een manier om een bestaand bestand te openen, dit doe je met C+cC+f.

Figuur: C+cC+f

Een bestand na bewerking opslaan doen we met C+c.

C+s of als je meerdere bestanden tegelijkertijd wil opslaan gebruik je C+x s.

Wil je nu per ongeluk emacs afsluiten zonder het bestand opgeslagen te hebben, krijg je bij het afsluiten enkele foutmeldingen: C+xC+c.

Figuur: C+xC+c

Als we hier nu nee (n) ingeven krijgen we nog een vraag ter bevestiging 5, en daarna wordt emacs afgesloten en het bestand niet opgeslagen.

Figuur: n

Laten we eens gaan zoeken in een bestand. Emacs heeft verschillende opties om te zoeken, maar ik ga het beperken tot de basis, vooruit en achteruit zoeken. Vooruit zoeken doen we met C+s en achteruit met C+r.

Figuur: C+s

Wat te doen als de computer is gecrasht tijdens het bewerken van een bestand? Dan is er een recovery modus. Hiervoor gebruik je de toetsencombinatie M+x (ALT+x) gevolgd door het commando recover-session:

Figuur: M+x

En daarna kies je de sessie om te herstellen.

Figuur: Sessie herstellen

Heb je een fout gemaakt en wil je een undo doen dan gebruik je C+xu.

Wil je naar iets zoeken? Dan gebruik je C+s om vooruit te zoeken en C+r om achteruit te zoeken.

Voor meer geavanceerd zoeken (met RegEx) gebruik je C+M+s en C+M+r.

Dit zal voldoende moeten zijn om simpele tekstbestanden te bewerken. Aangezien ik geen ervaring heb met emacs (ik ben een vi-gebruiker) ga ik jullie adviseren om als je interesse hebt in emacs je de manpages of infopages voor dit programma door te nemen en eventueel een van de vele Cheat Sheets die je online kunt vinden te gebruiken.

Nog even voor de fun; met M+x (alt+x) gevolgt door tetris kun je Tetris® spelen in emacs.

Figuur: M+x tetris
Figuur: Tetris

Meer informatie kun je altijd terugvinden in de manpages of de infopages

1 Hij noemt zichzelf ook wel eens Saint IGNUcius of the church of Emacs
2 d.m.v. plug-ins
3 Je kunt er zelfs Tetris® op spelen
4 deze kun je ook kopen in hun winkel, maar met de verzendkosten naar Europa is dat redelijk duur.
5 je moet deze vraag beantwoorden met yes of no gewoon y of n is onvoldoende en werkt niet!