Skip to main content

Ein Leitfaden zu Emacs für CEOs

Artikel von
Headshot of Josh Stella

Josh Stella

hero container isolation

11. November 2015

0 Min. Lesezeit

Vor Jahren – nein, vor Jahrzehnten – lebte ich in Emacs. Ich schrieb Code und Dokumente, verwaltete E-Mails und Kalender und erledigte alles in der Shell des Editors/Betriebssystems. Damit war ich sehr zufrieden. Die Jahre vergingen, und ich wechselte zu neueren, glänzenderen Tools. Dabei vergaß ich, wie man so grundlegende Aufgaben erledigt wie Dateien effizient ohne Maus zu durchsuchen. Vor etwa drei Monaten fiel mir auf, wie viel Zeit ich mit dem Wechsel zwischen Anwendungen und Computern verbrachte, und ich beschloss, Emacs noch einmal auszuprobieren. Das war aus mehreren Gründen eine gute Entscheidung, auf die dieser Beitrag eingeht. Außerdem finden Sie hier Tipps zu .emacs und Dropbox, damit Sie eine gute, portable Arbeitsumgebung einrichten können.

Wenn Sie Emacs noch nicht kennen, werden Sie es wahrscheinlich hassen – oder lieben. Es ist eine Art Rube-Goldberg-Maschine von der Größe eines Hauses, die auf den ersten Blick alle Funktionen eines Toasters erfüllt. Das klingt kaum wie eine Empfehlung, aber entscheidend ist die Formulierung „auf den ersten Blick“. Sobald Sie Emacs durchschaut haben, erkennen Sie, dass es ein thermonuklearer Toaster ist, der auch als Motor für … nun ja, so ziemlich alles dienen kann, was Sie mit Text tun möchten. Wenn man bedenkt, wie sehr sich unser digitales Leben um Text dreht, ist das eine ziemlich gewagte Aussage. Gewagt, aber wahr.

Vielleicht noch wichtiger für mich: Es ist die einzige Anwendung, die mir das Gefühl gibt, sie wirklich zu besitzen, statt mich zu einem anonymen „Nutzer“ zu machen, dessen Geldbeutel von Marketingabteilungen in schicken Büros irgendwo in der Nähe von Soma oder Redmond geschickt ins Visier genommen wird. Moderne Produktivitäts- und Schreibanwendungen (z. B. Pages oder IDEs) sind wie Rennräder aus Carbon. Sie sind bestens ausgestattet und vollständig montiert. Emacs ist wie eine Kiste mit klassischen Campagnolo-Teilen und einem wunderschönen Stahlrahmen mit Muffen, dem eine Kurbel und ein Bremshebel fehlen, die Sie in irgendeiner kleinen Internet-Subkultur auftreiben müssen. Das erste ist schneller und vollständig. Das zweite sorgt je nach Persönlichkeit für endlose Freude oder Ärger – und wird Ihnen bis ans Lebensende erhalten bleiben. Ich gehöre zu den Menschen, die sich gleichermaßen über einen alten Vorrat an Campy-Teilen und über das Optimieren ihres Editors mit eLisp freuen. YMMV.

Weißes Stahlfahrrad, das an einen Baum in einem grünen Garten lehnt
Ein Stahlfahrrad aus dem Jahr 1933, das ich immer noch fahre. Sehen Sie sich diesen Vergleich von Rahmenrohren an: https://www.youtube.com/watch?v=khJQgRLKMU0.

Das mag den Eindruck erwecken, Emacs sei anachronistisch oder altmodisch. Das ist es nicht. Es ist leistungsstark und zeitlos, verlangt aber, dass Sie es geduldig nach seinen eigenen Regeln verstehen. Diese Regeln liegen ziemlich abseits des Mainstreams und wirken seltsam, haben aber eine Logik, die überzeugend und reizvoll ist. Für mich fühlt sich Emacs eher nach Zukunft als nach Vergangenheit an. So wie der Stahlrahmen mit Muffen auch in Jahrzehnten noch nützlich und komfortabel sein wird, während das Carbon-Wunderrad auf einer Mülldeponie landet, nachdem es beim Aufprall zerborsten ist, wird Emacs ein nützliches Werkzeug bleiben, wenn die neueste Trend-App längst vergessen ist.

Wenn Sie die Vorstellung reizt, Ihre persönliche Arbeitsumgebung durch Bearbeiten von Lisp-Code selbst zu gestalten und diese wie angegossen passende Umgebung auf jedem Computer nutzen zu können, dürfte Ihnen Emacs sehr gefallen. Wenn Sie das Neueste und Glänzendste bevorzugen und ohne großen Zeit- und Denkaufwand direkt loslegen möchten, ist es wahrscheinlich nichts für Sie. Ich schreibe keinen Code mehr (abgesehen von Ludwig und Emacs Lisp), aber viele Ingenieurinnen und Ingenieure bei Fugue arbeiten erfolgreich mit Emacs. Ich würde sagen, bei unseren Ingenieurinnen und Ingenieuren nutzen etwa 30 % Emacs, 40 % IDEs und 30 % Vim. Doch in diesem Beitrag geht es um Emacs für CEOs und andere Spitzhaar-Bosse (PHB) [1] (und natürlich alle, die neugierig sind). Deshalb erkläre und/oder begründe ich, warum ich Emacs liebe und wie ich es nutze. Außerdem möchte ich Ihnen genügend Details mitgeben, damit Sie erfolgreich damit arbeiten können, ohne stundenlang zu googeln.

Langfristige Vorteile

Die langfristigen Vorteile von Emacs erleichtern den Alltag. Der Gewinn macht den anfänglichen Aufwand mehr als wett. Hier sind einige davon:

Nie wieder zwischen Kontexten wechseln

Schon Org Mode ist es wert, ernsthaft Zeit zu investieren. Wenn es Ihnen aber wie mir geht, arbeiten Sie meist an einem Dutzend oder mehr Dokumenten – von Blogbeiträgen über Listen mit allem, was Sie für eine Konferenz erledigen müssen, bis hin zu Mitarbeiterbeurteilungen. In der modernen Computerwelt bedeutet das in der Regel, mehrere Anwendungen zu verwenden, die alle ablenkende Benutzeroberflächen und unterschiedliche Methoden zum Speichern, Sortieren und Suchen haben. Das Ergebnis: Sie müssen ständig zwischen mentalen Kontexten wechseln und sich Kleinigkeiten merken. Ich hasse Kontextwechsel, weil sie mir durch ein fehlerhaftes Interface-Modell[2] aufgezwungen werden. Außerdem hasse ich es, mir Dinge merken zu müssen, an die sich mein Computer in einer vernünftigen Welt für mich erinnern sollte. Mit seiner einheitlichen Umgebung ist Emacs für Spitzhaar-Bosse sogar noch leistungsfähiger als für Programmierer, denn Programmierer verbringen in der Regel einen größeren Teil ihres Tages in einer einzigen Anwendung. Der Aufwand für den Wechsel zwischen mentalen Kontexten ist größer, als oft angenommen wird. Betriebssystem- und Anwendungsanbieter haben die Benutzeroberflächen aufgepeppt, um uns von dieser Tatsache abzulenken. Wenn Sie technisch versiert sind, ist der Zugriff auf einen leistungsfähigen Sprachinterpreter über eine einzige Tastenkombination (M-:) besonders nützlich.[3]

Viele Anwendungen lassen sich den ganzen Tag im Vollbildmodus nutzen, um Text zu bearbeiten. Emacs ist einzigartig, weil es zugleich Editor und Lisp-Interpreter ist. Im Grunde haben Sie jederzeit mit ein oder zwei Tastendrücken eine Turing-vollständige Maschine zur Hand, während Sie Ihrer Arbeit nachgehen. Wenn Sie sich ein wenig oder auch sehr gut mit Programmierung auskennen, wissen Sie: In Emacs können Sie alles tun. Sobald Sie die Befehle verinnerlicht haben, steht Ihnen während der Arbeit nahezu in Echtzeit die gesamte Rechenleistung Ihres Computers zur Verfügung. Sie werden Excel nicht in eLisp nachbauen wollen, aber die meisten Dinge, die Sie in Excel erledigen könnten, sind weniger umfangreich und lassen sich mit ein oder zwei Codezeilen umsetzen. Wenn ich Zahlen auswerten muss, wechsle ich eher zum Scratch-Puffer und schreibe ein wenig Code, als eine Tabelle zu öffnen. Selbst eine E-Mail, die mehr als eine Zeile umfasst, schreibe ich meist einfach in Emacs und füge sie dann in meinen E-Mail-Client ein. Warum den Kontext wechseln, wenn Sie einfach im Flow bleiben können? Vielleicht beginnen Sie mit ein oder zwei einfachen Berechnungen, aber mit der Zeit lässt sich alles, was Sie berechnen müssen, relativ mühelos in Emacs integrieren. Das ist wohl einzigartig bei einer Anwendung, die zugleich umfangreiche Funktionen zum Erstellen von Inhalten für andere Menschen bietet. Erinnern Sie sich an die magischen Terminals in den Büchern von Isaac Asimov? Emacs kommt dem am nächsten, was ich je erlebt habe.[4] Ich entscheide nicht mehr, welche App ich für diese oder jene Aufgabe verwende. Stattdessen arbeite ich einfach. Ein großartiges Werkzeug zu haben und sich darauf festzulegen, bringt echte Leistungsfähigkeit und Effizienz.

In Ruhe kreativ arbeiten

Was ist das Ergebnis der besten Textbearbeitungsfunktionen, die ich je gefunden habe? Einer Community, die jede Menge nützliche Erweiterungen entwickelt? Der gesamten Leistungsfähigkeit von Lisp, nur einen Tastengriff entfernt? Dass ich Emacs für all meine kreativen Arbeiten nutze – außer zum Musik- oder Bilderschaffen.

An meinem Schreibtisch stehen zwei Monitore. Einer ist hochkant ausgerichtet und den ganzen Tag mit Emacs im Vollbildmodus belegt. Auf dem anderen nutze ich Webbrowser zum Recherchieren und Lesen; meist ist dort auch ein Terminal geöffnet. Kalender, E-Mail und Ähnliches habe ich auf einem anderen Desktop in OS X, der ausgeblendet bleibt, während ich in Emacs arbeite. Außerdem habe ich alle Benachrichtigungen ausgeschaltet. So kann ich mich wirklich auf meine Arbeit konzentrieren. Ich finde es in moderneren Benutzeroberflächen fast unmöglich, Ablenkungen auszuschalten, weil sie sich so sehr bemühen, hilfreich und einfach bedienbar zu sein. Ich muss nicht ständig daran erinnert werden, wie man Vorgänge ausführt, die ich schon Zehntausende Male erledigt habe. Ich brauche aber ein schönes, sauberes weißes Blatt, auf dem ich nachdenken kann. Vielleicht fällt es mir aufgrund meines Alters und meiner Erfahrungen einfach schwer, in lauten Umgebungen zu arbeiten. Trotzdem würde ich jedem empfehlen, es einmal auszuprobieren. Finden Sie heraus, wie es ist, in einer wirklich ruhigen und ablenkungsfreien Computerumgebung zu arbeiten. Natürlich bieten inzwischen viele Apps Modi, in denen die Benutzeroberfläche ausgeblendet wird, und zum Glück verfügen sowohl Apple als auch Microsoft mittlerweile über brauchbare Vollbildmodi. Aber keine andere Anwendung ist leistungsfähig genug, um für die meisten Aufgaben darin „zu leben“. Wenn Sie nicht den ganzen Tag Code schreiben oder vielleicht an einem sehr langen Dokument wie einem Buch arbeiten, werden Sie weiterhin dem Lärm anderer Apps ausgesetzt sein. Außerdem wirken die meisten modernen Anwendungen gleichzeitig bevormundend und funktional wie auch in puncto Benutzerfreundlichkeit eingeschränkt.[5] Die einzigen Anwendungen, die ich noch weniger mag als Office-Apps, sind deren Online-Versionen.

Desktop-Arbeitsplatz mit dem Texteditor Emacs auf dem linken Monitor sowie Terminal- und Browserfenstern auf dem rechten Monitor
Meine Desktop-Anordnung. Emacs auf der linken Seite.

Aber was ist mit der Kommunikation? Der Unterschied zwischen Erstellen und Kommunizieren ist erheblich. Ich bin bei beidem viel produktiver, wenn ich dafür jeweils feste Zeiträume einplane. Bei Fugue verwenden wir Slack – großartig und zugleich höllisch. Ich habe es auf einem Kommunikations-Desktop zusammen mit Kalender und E-Mail geöffnet, sodass ich beim kreativen Arbeiten glücklich nichts von all dem Geplapper mitbekomme. Schon ein Slack-Sturm oder eine E-Mail von einem VC oder Vorstandsmitglied reicht, um mich sofort aus der Arbeit zu reißen. Aber die meisten Dinge können in der Regel ein oder zwei Stunden warten.

Alles mitnehmen und für immer behalten

Der dritte Grund, warum ich Emacs anderen Umgebungen vorziehe, ist, dass ich meine gesamte Arbeitsumgebung problemlos mitnehmen kann. Statt einer Vielzahl von Apps, die auf ihre eigene Art zusammenarbeiten und synchronisieren, brauchen Sie lediglich ein oder zwei Verzeichnisse, die Sie über Dropbox oder einen ähnlichen Dienst synchronisieren. So begleitet Sie Ihre gesamte Arbeit überallhin – in der Umgebung, die Sie nach Ihren Bedürfnissen gestaltet haben. Ich mache das mit OS X, Windows und manchmal Linux. Es ist kinderleicht und zuverlässig. Diese Möglichkeit ist so nützlich, dass mir der Umgang mit Pages, GDocs, Office und anderen Dateien oder Anwendungen, bei denen ich erst irgendwo im Dateisystem oder in der Cloud nach Dingen suchen muss, inzwischen widerstrebt.

Der begrenzende Faktor, wenn es darum geht, Dinge für immer auf einem Computer aufzubewahren, ist das Dateiformat. Wenn wir davon ausgehen, dass die Menschheit das Speicherproblem[6] nun endgültig gelöst hat, stellt sich langfristig die Frage, ob wir weiterhin auf die von uns erstellten Informationen zugreifen können. Textdateien sind das langlebigste Format im Computerbereich. Eine Textdatei aus dem Jahr 1970 können Sie problemlos in Emacs öffnen. Für Office-Anwendungen gilt das nicht unbedingt. Textdateien sind außerdem klein – deutlich kleiner als Datendateien von Office-Anwendungen. Als digitaler Messie und jemand, der viele kleine Notizen macht, sobald ihm etwas einfällt, ist mir eine einfache, leichte und dauerhafte Sammlung von Inhalten wichtig, auf die ich jederzeit zugreifen kann.

Wenn Sie bereit sind, Emacs auszuprobieren, lesen Sie weiter! Die folgenden Abschnitte ersetzen kein vollständiges Tutorial, aber nach der Lektüre können Sie damit arbeiten.

Emacs lernen – technische Einrichtung

Der Preis für all diese Leistungsfähigkeit und mentale Ruhe ist eine steile Lernkurve: In Emacs funktioniert alles anders, als Sie es gewohnt sind. Anfangs werden Sie das Gefühl haben, Zeit mit einer archaischen und seltsamen Anwendung zu verschwenden, die die moderne Welt längst hinter sich gelassen hat. Das ist ein wenig so, als würden Sie Fahrradfahren[7] lernen, wenn Sie bisher nur Auto gefahren sind.

Welche Emacs-Version?

Ich verwende die unveränderte Standardversion von GNU Emacs für OS X und Windows. Die OS-X-Version erhalten Sie unter http://emacsformacosx.com/, die Windows-Version unter http://www.gnu.org/software/emacs/. Es gibt zahlreiche andere Versionen, besonders für den Mac. Ich habe jedoch festgestellt, dass die Lernkurve für leistungsstarke Funktionen – wozu Lisp und zahlreiche Modi gehören – mit dem Original deutlich flacher ist. Laden Sie es also herunter, dann können wir loslegen![8]

Zuerst müssen Sie lernen, sich zurechtzufinden

In diesem Dokument verwende ich die in Emacs üblichen Bezeichnungen für Tasten und Tastenkombinationen: „C“ steht für Control, „M“ für Meta (meist Alt oder Option) und der Bindestrich bedeutet, dass die Tasten gleichzeitig gedrückt gehalten werden. C-h t bedeutet also, dass Sie Control gedrückt halten und h eingeben, dann Control loslassen und t eingeben. Mit diesem Befehl öffnen Sie das Tutorial – führen Sie ihn ruhig gleich aus.

Verwenden Sie weder die Pfeiltasten noch die Maus. Sie funktionieren zwar, aber gönnen Sie sich eine Woche, in der Sie die nativen Navigationsbefehle von Emacs verwenden. Sobald Sie sie verinnerlicht haben, werden Sie sie wahrscheinlich schätzen und überall sonst schmerzlich vermissen. Das Emacs-Tutorial führt Sie ziemlich gut durch die Befehle. Ich fasse sie aber kurz zusammen, damit Sie nicht alles lesen müssen. Das wenig spannende Detail: Statt der Pfeiltasten verwenden Sie C-b für zurück, C-f für vorwärts, C-p für vorherige Zeile (nach oben) und C-n für nächste Zeile (nach unten). Vielleicht fragen Sie sich: „Warum um alles in der Welt sollte ich das tun, wenn ich doch völlig intakte Pfeiltasten habe?“ Dafür gibt es mehrere Gründe. Erstens müssen Sie Ihre Hände nicht von der Schreibposition wegbewegen. Außerdem navigieren Sie mit den Vorwärts- und Zurück-Tasten in Kombination mit Alt (oder Meta in Emacspeak) wortweise. Das ist nützlicher, als es zunächst scheint. Ein dritter guter Grund: Wenn Sie einen Befehl wiederholen möchten, können Sie ihm eine Zahl voranstellen. Beim Bearbeiten von Dokumenten mache ich das oft: Ich schätze, wie viele Wörter ich zurück- oder wie viele Zeilen ich nach oben oder unten muss, und gebe dann etwa C-9 C-p oder M-5 M-b ein. Die anderen wirklich wichtigen Navigationsbefehle basieren auf a für den Anfang und e für das Ende eines Elements. Mit C-a|e navigieren Sie innerhalb von Zeilen, mit M-a|e innerhalb von Sätzen. Damit die Satzbefehle richtig funktionieren, müssen Sie nach Punkten zwei Leerzeichen setzen. Das bietet gleichzeitig eine nützliche Funktion und räumt ein umstrittenes Meinungsthema aus dem Weg. Wenn Sie das Dokument für eine Publikationsumgebung mit einfachen Leerzeichen exportieren müssen, können Sie in wenigen Augenblicken ein Makro dafür schreiben.

Es lohnt sich wirklich, das mit Emacs mitgelieferte Tutorial durchzuarbeiten. Für besonders Ungeduldige gehe ich auf einige wichtige Befehle ein, aber das Tutorial ist Gold wert. Zur Erinnerung: C-h t öffnet das Tutorial.

Kopieren und Einfügen lernen

Sie können Emacs in den CUA-Modus versetzen, der vertraute Funktionen bietet. Die native Emacs-Methode ist jedoch großartig und nach kurzer Übung ganz einfach. Sie markieren Bereiche (wie bei einer Auswahl), indem Sie die Umschalttaste zusammen mit den Navigationsbefehlen verwenden. Mit C-F markieren Sie also beispielsweise ein Zeichen rechts vom Cursor usw. Mit M-w kopieren, mit C-w schneiden und mit C-y fügen Sie ein. Diese Befehle heißen eigentlich „kill“ und „yank“, funktionieren aber ganz ähnlich wie Ausschneiden und Einfügen. Im Hintergrund passiert im Kill-Ring einiges Magisches, aber fürs Erste brauchen Sie sich nur um Ausschneiden, Kopieren und Einfügen zu kümmern. Wenn Sie jetzt etwas durcheinanderbringen, macht C-x u den Schritt rückgängig …

Lernen Sie als Nächstes den Ido-Modus kennen

Vertrauen Sie mir: Mit Ido wird die Arbeit mit Dateien viel einfacher. Normalerweise verwenden Sie kein separates Finder- oder Explorer-Fenster, um in Emacs mit Dateien zu arbeiten. Stattdessen nutzen Sie die Befehle des Editors, um Dateien zu erstellen, zu öffnen und zu speichern. Ohne Ido ist das etwas mühsam. Deshalb empfehle ich, Ido zu installieren, bevor Sie sich mit der herkömmlichen Methode vertraut machen. Ido ist ab Version 22 in Emacs enthalten. Sie sollten Ihre .emacs-Datei jedoch etwas anpassen, damit Ido immer verwendet wird. Das ist ein guter Anlass, Ihre Umgebung einzurichten.

Die meisten Funktionen in Emacs werden über Modi bereitgestellt. Um einen Modus zu installieren, müssen Sie zwei Dinge tun. Am Anfang sind noch ein paar zusätzliche Schritte nötig, aber die müssen Sie nur einmal ausführen. Danach sind es nur noch zwei Dinge. Zunächst brauchen Sie einen zentralen Speicherort für Ihre eLisp-Dateien und müssen Emacs mitteilen, wo er sich befindet. Ich empfehle, beispielsweise in Dropbox ein einzelnes Verzeichnis als Emacs-Verzeichnis anzulegen. Darin erstellen Sie eine .emacs-Datei und ein Verzeichnis namens .emacs.d. Erstellen Sie darin ein Verzeichnis namens .emacs.d namens lisp. Die Struktur sollte dann so aussehen:

home|+.emacs|-.emacs.d | -lisp

Die .el-Dateien für Modi und andere Funktionen legen Sie im Verzeichnis home/.emacs.d/lisp ab. In Ihrer .emacs-Datei verweisen Sie dann so darauf:

(add-to-list 'load-path "~/.emacs.d/lisp/")

Der Ido-Modus ist in Emacs enthalten. Dafür müssen Sie also keine .el-Datei in Ihr Lisp-Verzeichnis legen. Andere Dinge, die Sie bald hinzufügen, kommen jedoch dort hinein.

Moment mal: Hier steht, dass .emacs und .emacs.d in Ihrem Home-Verzeichnis liegen, obwohl wir sie in einem beliebigen Dropbox-Ordner abgelegt haben! Genau. So können Sie Ihre Umgebung überallhin mitnehmen. Bewahren Sie alles in Dropbox auf und erstellen Sie symbolische Links auf .emacs, .emacs.d und Ihre wichtigsten Dokumentenverzeichnisse in ~. Unter OS X geht das mit dem Befehl ln -s ganz einfach, unter Windows ist es mühsam. Zum Glück bietet Emacs unter Windows eine einfache Alternative zu symbolischen Links: die Umgebungsvariable HOME. Öffnen Sie in Windows die Umgebungsvariablen. Unter Windows 10 drücken Sie einfach die Windows-Taste und suchen nach „Umgebungsvariablen“ – das ist das Beste an Windows 10. Legen Sie in Ihrem Benutzerkonto eine Umgebungsvariable namens HOME an, die auf den Dropbox-Ordner verweist, den Sie für Emacs erstellt haben. Wenn Sie leichter zu lokalen Dateien navigieren möchten, die nicht in Dropbox liegen, können Sie stattdessen in Ihrem eigentlichen Home-Verzeichnis einen symbolischen Link zum Emacs-Home-Verzeichnis in Dropbox erstellen.

Damit haben Sie alle nötigen Schritte erledigt, um jeden Rechner auf Ihre Emacs-Konfiguration und Dateien auszurichten. Wenn Sie einen neuen Computer bekommen oder für eine Stunde oder einen Tag den Computer einer anderen Person verwenden, haben Sie Ihre komplette Arbeitsumgebung dabei. Beim ersten Mal wirkt das vielleicht etwas schwierig, aber sobald Sie wissen, was zu tun ist, dauert es höchstens zehn Minuten.

Aber wir wollten doch Ido konfigurieren …

Geben Sie C-x C-f ein und tippen Sie ~/.emacs RET RET, um Ihre .emacs-Datei zu erstellen. Fügen Sie diese Zeilen hinzu:

set up ido mode(require `ido)(setq ido-enable-flex-matching t)(setq ido-everywhere t)(ido-mode 1)

Öffnen Sie den Puffer .emacs und führen Sie den Befehl M-x evaluate-buffer aus. Wenn Sie etwas falsch eingegeben haben, erhalten Sie eine Fehlermeldung. Andernfalls wird Ido aktiviert. Ido ändert das Verhalten des Minibuffers bei Dateioperationen. Die Dokumentation dazu ist hervorragend. Hier ein paar Tipps: Nutzen Sie ~/ effektiv. Geben Sie im Minibuffer einfach ~/ ein, um jederzeit zum Home-Verzeichnis zurückzukehren. Daraus folgt, dass die meisten Ihrer Dateien nur einen kurzen Sprung von Ihrem Home-Verzeichnis entfernt liegen sollten. Ich verwende ~/org für alles, was nicht mit Code zu tun hat, und ~/code für Code. Im richtigen Verzeichnis haben Sie oft eine Sammlung von Dateien mit unterschiedlichen Erweiterungen, besonders wenn Sie Org Mode verwenden und daraus veröffentlichen. Sie können an beliebiger Stelle im Dateinamen einen Punkt und die gewünschte Erweiterung eingeben. Ido beschränkt die Auswahl dann auf Dateien mit dieser Erweiterung. Ich schreibe diesen Blogbeitrag beispielsweise in Org Mode. Die Hauptdatei lautet:

~/org/blog/emacs.org

Gelegentlich veröffentliche ich den Beitrag mit Org Mode auch als HTML. Im selben Verzeichnis liegt daher eine emacs.html-Datei. Wenn ich die Org-Datei öffnen möchte, gebe ich Folgendes ein:

C-x C-f ~/o[RET]/bl[RET].or[RET]

Die [RET]s stehen dafür, dass ich die Eingabetaste drücke, um die automatische Vervollständigung im Ido-Modus zu nutzen. Das sind also 12 eingegebene Zeichen und – wenn Sie sich daran gewöhnt haben – deutlich weniger Zeit, als den Finder oder Explorer zu öffnen und sich durchzuklicken. Der Ido-Modus ist ausgesprochen nützlich, aber im Grunde ein Hilfsmodus für die Arbeit mit Emacs. Sehen wir uns nun einige Modi an, mit denen Sie Ihre Arbeit erledigen können.

Schriftarten und Stile

Ich empfehle die hervorragenden Input-Schriftarten für Emacs. Sie lassen sich mit verschiedenen Klammern, Nullen und anderen Zeichen anpassen. Außerdem können Sie direkt in den Schriftdateien einen größeren Zeilenabstand festlegen. Ich empfehle den 1,5-fachen Zeilenabstand sowie die hervorragenden Proportionalschriften für Code und Daten. Zum Schreiben verwende ich Input Serif, die einen ausgefallenen, aber modernen Eindruck macht. Sie finden die Schriftarten unter http://input.fontbureau.com/ und können sie an Ihre Vorlieben anpassen. Sie können die Schriftarten manuell über die Emacs-Menüs einstellen. Dabei wird jedoch Code in Ihre .emacs-Datei geschrieben. Wenn Sie mehrere Geräte verwenden, möchten Sie vielleicht unterschiedliche Einstellungen für jedes Gerät vornehmen. Ich habe meine .emacs-Datei so eingerichtet, dass sie anhand des Rechnernamens erkennt, welches Gerät ich verwende, und den Bildschirm entsprechend konfiguriert. Der Code dafür lautet:

set up fonts for different OSes. OSX toggles to full screen.(setq myfont "InputSerif")(cond ((string-equal system-name "Sampo.local") (set-face-attribute 'default nil :
font myfont :
height 144) (toggle-frame-fullscreen)) ((string-equal system-name "Morpheus.local") (set-face-attribute 'default nil :
font myfont :
height 144)) ((string-equal system-name "ILMARINEN") (set-face-attribute 'default nil :
font myfont :
height 106)) ((string-equal system-name "UKKO") (set-face-attribute 'default nil :
font myfont :
height 104)))

Ersetzen Sie die Werte für system-name durch das Ergebnis, das Sie erhalten, wenn Sie (system-name) in Ihrer Emacs-Installation ausführen. Auf Sampo (meinem MacBook) lasse ich Emacs außerdem im Vollbildmodus starten. Unter Windows würde ich das gern ebenfalls tun, aber Windows und Emacs harmonieren nicht besonders gut. Wenn ich es versuche, endet es immer in einem merkwürdigen Zustand. Deshalb schalte ich nach dem Start einfach manuell in den Vollbildmodus.

Ich empfehle außerdem, die schreckliche Symbolleiste zu entfernen, die irgendwann in den 90ern zu Emacs kam, als Symbolleisten in Anwendungen gerade angesagt waren. Auch einige andere „Chrome“-Elemente habe ich entfernt, damit die Oberfläche schlicht und produktiv bleibt. Fügen Sie diese Zeilen zu Ihrer .emacs-Datei hinzu, um die Symbol- und Bildlaufleisten auszublenden, aber das Menü beizubehalten. Unter OS X ist es ohnehin verborgen, bis Sie den Mauszeiger an den oberen Bildschirmrand bewegen:

(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))(if (fboundp 'tool-bar-mode) (tool-bar-mode -1))(if (fboundp 'menu-bar-mode) (menu-bar-mode 1))

Org Mode

Ich arbeite fast ausschließlich in Org Mode. Das ist meine bevorzugte Umgebung zum Schreiben von Dokumenten, für Notizen, To-do-Listen und 90 Prozent aller anderen Aufgaben. Org wurde ursprünglich von jemandem entwickelt, der bei Besprechungen am Laptop sitzt, als Kombination aus Notiz- und To-do-Listen-Programm. Ich bin gegen die Verwendung von Laptops in Besprechungen und mache es selbst nicht. Deshalb unterscheidet sich mein Anwendungsfall etwas von seinem. Für mich ist Org vor allem eine Möglichkeit, verschiedenste Inhalte strukturiert zu verwalten. Org Mode bietet Überschriften und Unterüberschriften, die wie eine Gliederung funktionieren. Sie können die Inhalte des Baums ein- und ausblenden sowie seine Struktur ändern. Das entspricht sehr gut meiner Denkweise, und ich arbeite auf diese Weise ausgesprochen gern damit.

Org Mode bietet außerdem viele kleine Funktionen, die den Alltag angenehmer machen. Die Fußnotenverwaltung ist beispielsweise ausgezeichnet, und die Ausgabe als LaTeX/PDF ist hervorragend. Org kann aus den To-dos in all Ihren Dokumenten Tagesordnungen erstellen und sie auf praktische Weise mit Datum und Uhrzeit verknüpfen. Für externe Verpflichtungen, die ich in einem gemeinsamen Kalender verwalte, nutze ich das nicht. Um Dinge zu erstellen und im Blick zu behalten, was ich künftig noch erstellen muss, ist es jedoch unverzichtbar. Die Installation ist ganz einfach: Legen Sie org-mode.el in Ihrem Lisp-Verzeichnis ab und fügen Sie diese Zeilen zu Ihrer .emacs-Datei hinzu, wenn Sie möchten, dass Org entsprechend der Position im Baum einrückt und Dokumente vollständig aufgeklappt öffnet:

set up org mode(setq org-startup-indented t)(setq org-startup-folded "showall")(setq org-directory "~/org")

Die letzte Zeile gibt Org an, wo nach Dateien gesucht werden soll, die in Tagesordnungen und anderen Funktionen berücksichtigt werden. Ich lege Org direkt in meinem Home-Verzeichnis ab – genauer gesagt als symbolischen Link auf das Verzeichnis in Dropbox, wie weiter oben beschrieben.

Ich habe eine stuff.org-Datei, die immer in einem Puffer geöffnet ist. Ich nutze sie wie einen Notizblock. Mit Org lassen sich Dinge wie To-dos und Aufgaben mit Fristen ganz einfach herausziehen. Besonders nützlich ist, dass Sie Lisp-Code direkt einbetten und bei Bedarf ausführen können. Code zusammen mit Inhalten ist äußerst praktisch. Und denken Sie daran: Mit Emacs haben Sie Zugriff auf den eigentlichen Computer – das eröffnet neue Möglichkeiten.

Mit Org Mode veröffentlichen

Das Erscheinungsbild und die Formatierung meiner Dokumente sind mir wichtig. Ich habe meine berufliche Laufbahn als Designer begonnen und finde, dass Informationen klar und ansprechend präsentiert werden können und sollten. Org bietet hervorragende Unterstützung für die PDF-Erstellung mit LaTeX. LaTeX hat zwar eine gewisse Lernkurve, aber einfache Aufgaben sind ziemlich leicht zu bewältigen.

Wenn Sie andere Schriftarten und Stile als die üblichen LaTeX-Schriften verwenden möchten, sind einige Schritte nötig. Zunächst brauchen Sie XeLaTeX, damit Sie normale Systemschriften statt LaTeX-spezifischer Schriften verwenden können. Fügen Sie anschließend Folgendes zu .emacs hinzu:

(setq org-latex-pdf-process '("xelatex -interaction nonstopmode %f" "xelatex -interaction nonstopmode %f"))

Damit alles übersichtlich bleibt, setze ich das ganz ans Ende des Org-Abschnitts in meiner .emacs-Datei. So können Sie beim Veröffentlichen aus Org weitere Formatierungsoptionen verwenden. Ich verwende beispielsweise häufig:

#+LaTeX_HEADER: 
  usepackage{fontspec}

  #+LATEX_HEADER: 
  setmonofont[Scale=0.9]
  {Input Mono}

  #+LATEX_HEADER: 
  setromanfont{Maison Neue}

  #+LATEX_HEADER: 
  linespread{1.5}

  #+LATEX_HEADER: 
  usepackage[margin=1.25in]
  {geometry}

  #+TITLE: 
  Document Title Here

Diese Zeilen können Sie einfach an beliebiger Stelle in Ihre .org-Datei einfügen. Unsere Unternehmensschrift für Fließtext ist Maison Neue. Sie können hier aber jede passende Schriftart verwenden. Von Maison Neue rate ich dringend ab. Sie ist eine schreckliche Schriftart, die niemand jemals verwenden sollte.

Diese Datei ist ein Beispiel für eine PDF-Ausgabe mit diesen Einstellungen. So sieht LaTeX standardmäßig immer aus. Ganz in Ordnung, würde ich sagen, aber die Schriftarten sind langweilig und etwas seltsam. Außerdem werden die Leute bei Verwendung des Standardformats annehmen, dass sie eine wissenschaftliche Arbeit lesen – oder etwas, das sich als solche ausgibt. Sie wurden gewarnt.

Ace Jump Mode

Das ist eher ein Geheimtipp als ein großes Feature, aber Sie werden es haben wollen. Es funktioniert ein wenig wie Jef Raskins Leap-Funktion von damals.[9] So funktioniert es: Sie geben C-c C-SPC ein und anschließend den Anfangsbuchstaben des Wortes, zu dem Sie springen möchten. Alle Wörter mit diesem Anfangsbuchstaben werden hervorgehoben und durch einen Buchstaben des Alphabets ersetzt. Geben Sie einfach den Buchstaben ein, der dem gewünschten Ziel zugeordnet ist, und der Cursor springt dorthin. Ich verwende das inzwischen genauso oft wie die üblichen Navigationstasten oder die Suche. Laden Sie die .el Datei in Ihr Lisp-Verzeichnis herunter und fügen Sie Folgendes in Ihre .emacs ein:

set up ace-jump-mode(add-to-list 'load-path "which-folder-ace-jump-mode-file-in/")(require 'ace-jump-mode)(define-key global-map (kbd "C-c C-SPC" ) 'ace-jump-mode)

Fortsetzung folgt

Das reicht erst einmal für einen Beitrag – vielleicht bringt Sie das Ihrem Ziel näher. Ich würde gern erfahren, wofür Sie Emacs außerhalb der Programmierung (oder zum Programmieren!) einsetzen und ob dieser Beitrag überhaupt hilfreich war. In meiner Emacs-Nutzung stecken wahrscheinlich einige ziemlich einfältige PHB-Marotten. Wenn Sie darauf hinweisen möchten, wäre ich Ihnen dankbar. Im Laufe der Zeit werde ich vermutlich weitere Beiträge zu zusätzlichen Funktionen oder Modi schreiben. Ich werde auf jeden Fall zeigen, wie Sie Fugue mit Emacs und Ludwig-mode verwenden können, während wir es zu etwas Nützlicherem als Syntax-Highlighting weiterentwickeln. Senden Sie Ihre Gedanken auf Twitter an @fugueHQ.

Fußnoten

  1. Wenn Sie inzwischen eine Art PHB sind, aber nie technische Erfahrung hatten, ist Emacs wahrscheinlich nichts für Sie. Für eine Handvoll Menschen kann Emacs zwar ein Einstieg in die technischeren Aspekte der Informatik sein, doch diese Gruppe ist vermutlich klein. Damit Emacs für Sie wirklich sinnvoll ist, sollten Sie wissen, wie man ein Unix- oder Windows-Terminal verwendet, schon einmal eine oder zwei Dotfiles bearbeitet und irgendwann im Leben etwas Code geschrieben haben.

  2. http://archive.wired.com/wired/archive/2.08/tufte.html

  3. Ich verwende das vor allem für Berechnungen beim Schreiben. Als ich beispielsweise ein Angebotsschreiben für einen neuen Mitarbeiter verfasste, wollte ich berechnen, wie viele Optionen ich in das Angebot aufnehmen sollte. Da in meiner .emacs eine Variable für outstanding-shares definiert ist, kann ich einfach M-: (* .001 outstanding-shares) eingeben und erhalte ein Zehntel eines Prozentpunkts – ganz ohne Taschenrechner oder Tabellenkalkulation. Ich speichere jede Menge Zahlen in solchen Variablen, um Kontextwechsel zu vermeiden.

  4. Was noch fehlt, ist das Web. Es gibt einen Emacs-Webbrowser namens eww, mit dem Sie in Emacs surfen können. Ich nutze ihn tatsächlich: Er blockiert Werbung hervorragend und nimmt Webdesignern die Möglichkeit, die Lesbarkeit mit schlechten Gestaltungsentscheidungen zu beeinträchtigen. Das ist ein wenig wie der Lesemodus in Safari. Leider enthalten die meisten Websites jede Menge störenden Ballast und Navigationselemente, die sich nur schlecht in Text übertragen lassen.

  5. Benutzerfreundlichkeit wird oft mit Erlernbarkeit verwechselt. Erlernbarkeit beschreibt, wie schwierig es ist, ein Werkzeug zu lernen. Benutzerfreundlichkeit beschreibt, wie nützlich es ist. Diese Eigenschaften stehen oft im Widerspruch zueinander, etwa bei Maus und Menüs. Menüs lassen sich leicht erlernen, sind aber wenig benutzerfreundlich – deshalb gibt es seit den Anfängen Tastenkombinationen. Raskin hatte in vielen Punkten recht, wenn es um grafische Benutzeroberflächen im Allgemeinen ging, auch wenn man ihn ignorierte. Heute legen Betriebssysteme Funktionen wie eine vernünftige Suche auf Tastenkombinationen. Unter OS X und Windows navigiere ich standardmäßig über die Suche. Die Suche in Ubuntu ist völlig kaputt, genau wie der Rest der grafischen Benutzeroberfläche.

  6. AWS S3 hat die Dateispeicherung im Grunde gelöst – und das schon so lange, wie es das Internet gibt. In S3 sind Billionen von Objekten gespeichert, und noch nie ist eines davon verloren gegangen. Fast jeder Dienst für Cloud-Speicher basiert auf S3 oder ahmt es nach. Niemand erreicht den Umfang von S3. Deshalb speichere ich wichtige Daten dort – über Dropbox.

  7. Vielleicht fragen Sie sich inzwischen: „Was hat dieser Typ eigentlich mit Fahrrädern?“ … Ich liebe sie in jeder Hinsicht. Sie sind das mechanisch effizienteste Fortbewegungsmittel, das je erfunden wurde. Sie können wahre Schönheiten sein. Und mit etwas Pflege halten sie ein Leben lang. 2001 ließ ich Rivendell Bicycle Works einen Rahmen für mich bauen, und jedes Mal, wenn ich ihn ansehe, freue ich mich noch immer darüber. Fahrräder und UNIX sind die beiden besten Erfindungen, mit denen ich je zu tun hatte. Na ja, sie und Emacs.

  8. Dies ist keine Anleitung für Emacs. Eine ist bereits dabei, und sie ist ausgezeichnet. Ich gehe zwar einige Punkte durch, die meiner Meinung nach für eine nützliche Emacs-Einrichtung besonders wichtig sind, doch dieser Beitrag ist keinesfalls ein Ersatz dafür.

  9. Jef Raskin entwarf in den 1980er-Jahren den Computer Canon Cat, nachdem er sich bei der Entwicklung des Macintosh, die er ursprünglich leitete, mit Steve Jobs zerstritten hatte. Der Cat hatte eine dokumentenzentrierte Benutzeroberfläche (wie alle Computer sie haben sollten) und nutzte die Tastatur auf innovative Weise – das lässt sich heute mit Emacs nachahmen. Wenn ich einen modernen, leistungsstarken Cat mit riesigem hochauflösendem Bildschirm und Unix darunter haben könnte, würde ich meinen Mac sofort dafür eintauschen: https://youtu.be/o_TlE_U_X3c?t=19s

IaC-Sicherheit für Entwickler

Snyk schützt Ihre Infrastructure as Code vom SDLC bis zur Laufzeit in der Cloud mit einer einheitlichen Policy-as-Code-Engine, damit jedes Team sicher entwickeln, bereitstellen und betreiben kann.

Gepostet in:

Weiterlesen

Blog

Stadium-Sommer: Die Snyk Connect Fan Zone Tour

Die Fan Zone Tour von Snyk brachte KI-Security-Workshops, Networking und freundschaftlichen Wettbewerb in 8 Städte und 3 virtuelle Sessions. Die Teilnehmenden bauten ihre Kompetenzen aus, tauschten Ideen aus und entwickelten sich gemeinsam weiter.

Blog

Snyk VulnBench JS 1.0: Finden LLMs zweimal dieselben Fehler?

Snyk VulnBench JS 1.0: 300 wiederholte Scans zeigen, dass LLM-Sicherheitsergebnisse von Durchlauf zu Durchlauf variieren, während SAST und Modelle unterschiedliche Sicherheitslücken aufdecken.

feature insights context
Blog

KI-Sicherheit gemeinsam mit unseren Kunden gestalten: 5 Erkenntnisse aus dem Design-Partner-Programm von Evo

Lernen Sie 5 wichtige Erkenntnisse aus Snyks Design-Partner-Programm für Evo kennen. Erfahren Sie, wie KI-Erkennung, Risikoanalyse und automatisierte Richtlinien Teams dabei helfen, generative KI abzusichern und die Ausbreitung von KI-Anwendungen im großen Maßstab zu steuern.