Als «elisp» getaggte Fragen

für Fragen zu Emacs Lisp als Sprache im Vergleich zu anderen Sprachen, insbesondere im Vergleich zu anderen Lisp-Dialekten. Das heißt, es ist für Fragen * über die Sprache * selbst. * VERWENDEN SIE ES NICHT * für Fragen zur * Verwendung von * Emacs Lisp. Emacs Lisp ist die Skript- und Programmiersprache, auf der der Emacs-Editor basiert.

4
Vorteile des Setzens von Variablen mit setq anstelle von custom.el?
Ich sehe viele Leute (Erweiterungsautoren und andere), die Konfigurationsbeispiele geben mit setq: (setq foo 'bar) Diese Parameter werden häufig mit definiert defcustomund stehen zur Anpassung zur Verfügung custom.el. Ich benutze normalerweise custom.el, um sie einzustellen. Wäre es von Vorteil, setqstattdessen zwei Methoden zu verwenden, oder sind sie in etwa gleichwertig?

6
Kann ich im org-Modus meine .emacs oder andere .el-Konfigurationsdateien strukturieren?
Meine .emacsKonfigurationsdatei wird immer größer und ich möchte eine bessere Übersicht und Strukturierung erhalten, indem ich Überschriften und Unterüberschriften hinzufüge und sie ausblenden oder anzeigen kann, wie ich es mit Emacs tun kann org-mode. Mir ist aufgefallen, dass ich org-modeauch im .emacsPuffer aktivieren kann und dass es möglich ist, Überschriften …

3
Wie speichere ich ein Tastaturmakro als Lisp-Funktion?
Sehr häufig musste ich die Schritte ausführen, die mehrere Tastenanschläge erforderten. Für dieselbe Sitzung können diese Schritte in einem Tastaturmakro aufgezeichnet werden. Ein Beispiel ist das Speichern eines häufig ausgeführten Such- / Ersetzungsvorgangs als Tastaturmakro. Aber dieses Makro geht verloren, wenn ich Emacs beende. Wie kann ich mein häufig verwendetes …

2
Warum hat elisp keine Namespaces?
F: Warum hat elisp keine Namespaces und wie können wir sie bekommen? Elisp hat keine anderen Namespaces als den globalen, was zu der Kodierungskonvention geführt hat, dass allen globalen Funktionen, Variablen und Konstanten ein eindeutiges Präfix vorangestellt wird. Abgesehen von dem Ärgerfaktor scheint es mir auch ein Problem zu sein, …
40 elisp 

9
Wie kann ich Emacs Lisp lernen?
Hintergrund: Ich bin größtenteils ein vi-Benutzer und konvertiere zu Emacs. Überholen Sie die Grundlagen und verwenden Sie sie jetzt, um Code in C und Python zu schreiben, mit dem Plan, auch eine R-Konvertierung durchzuführen. Ich habe (Common) LISP vor über zwei Jahrzehnten geschrieben, als ich in der Grundschule war, aber …

5
Wie ersetze ich ein Element einer Liste?
Ich habe dies standardmäßig in meinem auto-mode-alist: ("\\.js\\'" . javascript-mode) (auch mit emacs -Q). Ich möchte als Ersatz js2-modefür javascript-mode. Natürlich könnte ich assq-delete-allund dann add-to-listwieder verwenden, aber ich frage mich, ob es keinen besseren Weg gibt. Bearbeiten: Ich möchte Anpassen ausdrücklich nicht verwenden, ich bastle lieber init.elselbst.

3
Warum ist "lassen" mit lexikalischem Umfang schneller?
Beim Lesen des Quellcodes für das dolistMakro bin ich auf den folgenden Kommentar gestoßen. ;; Dies ist kein zuverlässiger Test, aber es spielt keine Rolle, da beide Semantiken akzeptabel sind, wobei eine bei dynamischem Scoping etwas schneller ist und die andere bei lexikalischem Scoping etwas schneller ist (und eine sauberere …

3
Woher wissen, wann oder wann nicht das einfache Anführungszeichen vor Variablennamen verwendet werden soll?
Ich habe das Folgende: (setq some-variable "less") Ich bin verwirrt, warum ich das einfache Anführungszeichen mit verwenden muss, boundpaber nicht mit bound-and-true-p. Beispiel 1: (when (boundp 'some-variable) (message "some-variable is %s" some-variable)) Ergebnis: "eine Variable ist weniger" Beispiel 2a: (when (bound-and-true-p some-variable) ;; Note that using single-quote causes error (message …
31 elisp  quote 

4
Wann sollte man einen Lambda-Ausdruck scharf zitieren?
F: Wann, wenn überhaupt, ist es sinnvoll, a scharf zu zitieren lambda, und wann, wenn überhaupt, müssen wir a nicht scharf zu zitieren lambda? Die Leute benutzen lambdas auf drei Arten: einfach: (lambda (x) x) zitiert: '(lambda (x) x) scharf zitiert: #'(lambda (x) x) In diesem SO-Thread werden die drei …
30 elisp  functions 


3
Wann sollte ich Autoload verwenden, anstatt zu erfordern?
Soweit ich requireweiß , wird es verwendet, um große Codestücke (so etwas wie Module) zu laden, obwohl es auch einzelne Funktionen laden kann. Autoload hingegen registriert nur Funktionen und verschiebt das Laden auf die Ausführungszeit. Ich habe kürzlich einen Artikel gelesen, in dem die autoloadausschließliche Verwendung von befürwortet wird . …

1
Wie nutze ich nadvice?
Meine Konfiguration ist voller Ratschläge, und ich höre immer wieder von dem neuen, glänzenden, minimalistischen nadvice.elPaket. Ich habe die Handbücher durchsucht und die Quelle gelesen , aber ich gebe offen zu: Ich habe immer noch keine Ahnung, wie ich sie tatsächlich verwenden soll. Kann mich hier jemand auf einen Leitfaden …

2
exec-path und $ PATH
Ich habe Beispiele online gesehen, in denen Leute dem Standardpfad in Emacs Pfade hinzufügen mit: (add-to-list 'exec-path "/usr/local/bin/") Ich bin neu bei Elisp und ich denke, ich verstehe, was die obige Aussage bewirkt, aber ich habe ein paar Fragen: In welcher Reihenfolge durchsucht Emacs die Ausführungspfade? Berücksichtigt es beispielsweise den …
28 elisp  path 

2
Optionale Standardparameter
Emacs Lisp unterstützt syntaktisch keine Nicht-Null-Standardeinstellungen für optionale Parameter. Was ist die empfohlene Redewendung für die Angabe dieser Parameter? Um meinen Standpunkt zu verdeutlichen, hier ist eine übermäßig explizite Möglichkeit, dies zu tun. (defun command (a &optional supplied-b) (let ((b (or supplied-b default-b))) (command-body a b))) Was ist der empfohlene …
26 elisp 

3
Was ist der Unterschied zwischen Push und Add-to-List?
Ich habe festgestellt, dass verschiedene Pakete in ihren Installationsanweisungen entweder push oder add-to-list verwenden (z. B. ein Verzeichnis zum Ladepfad hinzufügen), und ich habe mich gefragt, was der Unterschied ist und was der Anwendungsfall für jedes ist.
26 elisp 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.