Was für eine tolle Frage! Hier ist der Weg, den ich eingeschlagen habe:
Schritt 0: Lesen Sie das Emacs-Tutorial
Lesen Sie vor allem das Emacs-Tutorial. Es hört sich so an, als hättest du das getan. Gut auf dich! Für alle, die zu einem späteren Zeitpunkt hierher kommen, ist dies jedoch der richtige Ort, um Ihre Emacs-Reise zu beginnen. Es gibt viele irreführende Blog-Posts. Sie verkomplizieren die Dinge. Emacs macht es einfach:
- Starten Sie Emacs
- Drücken Sie
<RET>
Sie können auch über Ctrl + h
t
oder C-h t
in Emacs-Notation darauf zugreifen .
Das Tutorial führt in die grundlegenden Konzepte von Emacs ein, klärt die historische Terminologie und bringt Sie in weniger als 30 Minuten zum Laufen. Es schafft auch die Voraussetzungen für den nächsten Schritt.
Schritt 1: Lesen Sie "Eine Einführung in die Programmierung in Emacs Lisp"
Der nächste Schritt ist das Lesen einer Einführung in die Programmierung in Emacs Lisp . Ich kann dieses Buch nicht genug empfehlen. es ist so gut geschrieben! Es kommt mit den meisten Emacs installiert 1 . Drücken C-h i
Sie einfach und wählen Sie es aus dem Menü. Sie können es auch direkt über aufrufen C-h i m Emacs Lisp Intro
.
Im Vorwort heißt es:
Dieser Text ist eine grundlegende Einführung für Personen, die keine Programmierer sind.
Es sollte heißen "für Leute, die keine Lisp-Programmierer sind." Lisp ist ein bisschen anders als andere Sprachen, es lohnt sich also zu lesen, wenn Sie mit Lisp nicht vertraut sind. Der Autor hat einen ansprechbaren Stil und geht durch viele Beispiele. Es dauerte ungefähr eine Woche, bis ich fertig war.
Schritt 1.5: Emacs Lisp-Entwicklungstipps mit John Wiegley
Ab Ende 2015 ist John der Betreuer des Emacs-Projekts . Sacha Chua führt hier ein großartiges Interview mit ihm , in dem John die Grundlagen von Emacs Lisp, der Entwicklungsumgebung, erläutert und viele gute Ratschläge gibt.
Schritt 2: OPC lesen (Code anderer Leute)
2a. Lesen Sie den Quellcode
Da Emacs "der erweiterbare, anpassbare, selbstdokumentierende Echtzeit-Anzeige-Editor" ist, ist der gesamte Quellcode enthalten. Erfahren Sie, wie Sie die Hilfefunktionen C-h f
für eine Funktion und C-h v
eine Variable verwenden. Es gibt immer einen Link zum Quellcode:
2b. Lesen Sie alle init.el
‚s
Viele Leute verfolgen ihre init.el
Dateien in Git oder Mercurial. Suche sie aus. Ein Trick ist, auf das Profil von Leuten auf StackOverflow zu klicken, insbesondere auf emacs.stackexchange.com :
Sie haben oft Links zu ihrem GitHub oder ihrer persönlichen Website:
Repos werden angerufen dotemacs
oder dotfiles
sind durchaus üblich. Mit der Zeit werden Sie ein Gefühl dafür bekommen, wie guter Code aussieht und wie schlechter Code aussieht. Sie werden auch die großen Namen, wie die von lernen Xah , Sasha Chua , binchen , Magnar Sveen , abo-abo , und viele mehr. Es gibt so viele Menschen, von denen man lernen kann!
Schritt 3: Hack auf Emacs
Fordern Sie sich heraus, die gewünschte Funktionalität zu schreiben. Kopieren Sie den Code niemals blind. Nimm dir immer die Zeit, es zu verstehen. Wenn du es nicht verstehst, benutze es nicht! Wenn Sie sich die Zeit nehmen, einen Teil des Codes zu verstehen, denken Sie oft darüber nach, etwas Neues zu lernen und es für Ihren speziellen Anwendungsfall zu verbessern. Dies ist eine Gelegenheit zum Hacken! Immerhin ist das, wofür du init.el
bist! Fehler machen, Dinge kaputt machen, Debuggen lernen. Sie werden feststellen, dass die Entwicklung eine Freude ist, da Emacs in Elisp geschrieben ist.
Schritt 4: Stellen Sie Fragen auf emacs.stackexchange.com
Ich habe festgestellt, dass die Emacs-Community auf StackExchange eine gute Elisp-Frage liebt. Hacken Sie also mit Zuversicht, dass andere Menschen Ihre Lernanstrengungen schätzen.
Schritt 5: Beantworten Sie Fragen auf emacs.stackexchange.com
Nichts macht Ihr Verständnis klarer als der Versuch, etwas zu erklären. Auf der Hauptseite finden Sie auch Antworten auf Fragen, von denen Sie nie gewusst haben, dass Sie sie haben.
Fazit
Mit der Zeit werden Sie in der Lage sein, schneller Lösungen zu generieren und die Fragen anderer zu beantworten. Wie bei jeder Programmierung kann es frustrierend sein. Denken Sie jedoch daran, sich heute gegen sich selbst zu richten. Einige Leute haben Emacs buchstäblich 30 Jahre lang gehackt! Die meiste Zeit werden Sie jedoch feststellen, dass es ein Vergnügen ist, mit Emacs zu arbeiten, und die Freiheit, die es Ihnen gibt, ist inspirierend.
Viel Spaß beim Hacken! :)
PS: Schauen Sie sich das Paket böse an .
1 Einige Installationen werden nicht mitgeliefert. Debian-Benutzer müssen es zum Beispiel separat installieren. Es ist irgendwie albern , aber es ist in den unfreien Repos gespeichert . Fügen Sie ein unfreies Repo hinzu, /etc/apt/sources.list
indem Sie non-free
am Ende jedes Eintrags Folgendes anfügen :
deb http://http.us.debian.org/debian stable main contrib non-free
Ich empfehle das "Emacs Lisp Intro".
Das "Emacs Lisp Intro" ist möglicherweise bereits im Info-Format in Ihrem Emacs verfügbar. Probieren
C-h i m Emacs Lisp Intro RET
oder bewerten Sie(info "(eintr) Top")
in Emacs.Wenn dies fehlschlägt, suchen Sie im Web nach "Emacs Lisp Intro".
quelle
Beginnen Sie mit der Emacs Wiki-Seite Learn Emacs Lisp .
Nicht, dass dir diese Seite selbst Emacs Lisp beibringen würde. Stattdessen wird auf Lernressourcen verwiesen - genau das , wonach Sie mit Ihrer Frage hier suchen . Viele Benutzer haben über einen Zeitraum von Jahren dazu beigetragen und sie bearbeitet. Das bringt sowohl Vor- als auch Nachteile für den Blog eines Benutzers mit sich. Die Qualität der dortigen Vorschläge ist natürlich aufgrund der Vielzahl der Eingaben unterschiedlich.
Darüber hinaus - alles, was andere hier gesagt haben, insbesondere beginnend mit dem eingebauten Dokument von Emacs:
Das Elisp-Handbuch - meist eine Referenz, aber auch einige gute Anleitungen und konzeptionelle Informationen. Es ist in Emacs integriert:
C-h i
Wählen Sie dann das Elisp-Handbuch.Das Emacs Lisp Intro - Schritt für Schritt Einführung in Lisp und Emacs Lisp. Auch in Emacs eingebaut und erhältlich von
C-h i
.Da Sie Common Lisp verwendet haben , wird es Super leicht Emacs Lisp zu holen. Betrachten Sie sich glücklich darüber.
Wenn Sie Common Lisp (oder Zeta Lisp oder was auch immer) auf einem Lisp-Computer verwendet hätten, wäre die Erfahrung ziemlich ähnlich. Sie können sich Emacs (unter anderem) als eine großartige Lisp-Umgebung vorstellen. Sie können beim Lernen in kürzester Zeit von Null auf 60 wechseln.
Habe Spaß!
quelle
Als Auffrischung zu Lisp empfehle ich die ersten drei Kapitel von Peter Norvigs Paradigmen der Programmierung künstlicher Intelligenz . Diese geben Ihnen einen tollen und schnellen Einstieg in Lisp, der Sie schnell wieder auf den richtigen Weg bringt.
Für Total Noobs gibt es COMMON LISP: Eine sanfte Einführung in die symbolische Berechnung, die Ihnen die gleichen Konzepte beibringt, jedoch mit viel geringerem Tempo.
Beide Bücher sind kostenlos online erhältlich.
Durch eine der oben Nachdem wir können Sie alle Elisp tagged posts auf lesen nullprogram.com und gehen durch die Leseführung bei masteringemacs.org . Um zu erfahren , über häufige Fehlerquellen , die wichtigsten Fragen zu lesen hier wird hilfreich sein. Suchen Sie nach bestimmten Problemen entweder auf dieser Website, in rosettacode oder in Ihrer bevorzugten Suchmaschine.
Nachdem Sie mit den Grundlagen vertraut sind, beantworten die Info-Handbücher in der Regel die meisten verbleibenden Fragen, die beim Hacken auf Emacs auftreten.
quelle
Da Sie einen Hintergrund in Common Lisp haben und "die Grundlagen hinter sich haben", macht es keinen Sinn, sich in der "Einführung in die Programmierung in Emacs Lisp" zu verlieren.
Was Sie sofort tun können (ich habe keinen Hintergrund in CL und es hat bei mir funktioniert) ist:
1) Suchen Sie einen Modus, den Sie verwenden, und versuchen Sie, Funktionen hinzuzufügen. Hilfe finden Sie in der Emacs Lisp-Referenz
2) Schreiben Sie Ihre eigene benutzerdefinierte Datei mit Ihren eigenen einfachen Funktionen. Verwenden Sie auch hier die Emacs Lisp-Referenz
Die Hilfe-Gnu-Emacs-Liste ist sehr hilfreich.
quelle
Ich glaube wirklich nicht, dass Sie etwas Spezielles über Emacs Lisp lesen müssen. Es ist kein Geheimnis, dass man, wenn man etwas in Emacs machen will , wahrscheinlich nur den richtigen Befehl finden muss oder jemand den Code bereits geschrieben hat und er sich jetzt irgendwo auf einer Wiki-Seite oder einem Github befindet oder in einem Plugin erstellt wurde . Wenn Sie diesen Code einfach kopieren und lesen , haben Sie einen guten Teil von Emacs Lisp gelernt, wenn Sie mit Ihren .emacs sogar ein wenig zufrieden sind.
Wenn Sie einige Ideen zum Anpassen von Emacs erhalten möchten, sind benutzerdefinierte Konfigurationen anderer Benutzer möglicherweise eine gute Quelle der Weisheit. Eine ausgewählte Liste solcher Konfigurationen finden Sie hier . Eigentlich funktioniert es jedoch besser, wenn Sie Ihre eigene Vision haben und die .emacs anderer Leute besuchen. Dies ist normalerweise nur dann gerechtfertigt, wenn einige Fragen beantwortet werden sollen (z. B. wie strukturiere ich meinen Code / meine Pakete?) Oder wenn ein Code für ein bestimmtes Ziel von Ihnen kopiert wird.
Durchsuchen von MELPA hat mich veranlasst, ein Dutzend Pakete zu installieren und zu testen .
Wenn Sie ein Plugin entwickeln, kann das Lesen des Codes eines bestimmten Plugins, das Ihnen gefällt, Ihnen den Einstieg erleichtern.
Da Sie vi benutzen, schauen Sie sich den Bösen-Modus an , er hat bei mir großartig funktioniert. Ich würde auch Helm mit
helm-apropos
(oder nurapropos
wenn Sie nicht wollenhelm
) Befehl empfehlen , um Ihre Reise einfacher zu machen.Mein Rat ist also, sofort zum Anpassungspunkt zu gelangen, und Sie werden unterwegs alles lernen, was Sie brauchen. Vor allem, dass Sie vor langer Zeit lisp gehackt haben oder nicht, und weil das Lernen von elisp für Sie, soweit ich das beurteilen kann, ein Mittel zum Zweck ist, nämlich das Anpassen von Emacs.
quelle
Der Elisp-Track zu exercism.io ist auch eine unterhaltsame Möglichkeit, Ihre Fähigkeiten zu verbessern. Die Übungen konzentrieren sich mehr auf Elisp als auf Emacs, decken jedoch eine Reihe von Grundlagen wie reguläre Ausdrücke, Datenstrukturen, Mathematik usw. ab.
quelle
Mir scheint, die Antwort von Loren Ipsum deckt das ziemlich gut ab.
https://emacs.stackexchange.com/a/47320/21433
Ich möchte einfach hinzufügen, dass ich davon ausgehe, dass Sie die Grundlagen von Lisp kennen. Das würde dir helfen, aber es ist nicht notwendig (darauf komme ich zurück.)
Eine Möglichkeit zum Erlernen besteht darin, einen vorhandenen Modus / eine vorhandene Erweiterung einfach zu hacken oder zu ändern. Ich habe es 93 durch Hacken in der Ada-Sprachmodus-Datei gelernt. Es war eine der spaßigsten Erfahrungen, die ich auf dem College gemacht habe.
Sie können dies also mit einer Sprache Ihrer Wahl tun, beispielsweise einem Java-Modus oder einem Lisp-Modus oder sogar einer Elisp-Modus-Datei.
Ändere es, füge Makros hinzu usw. So habe ich es gemacht.
quelle