Ich versuche, use-package
meine org-mode
Initialisierung einzurichten . Ich habe Folgendes in meiner ~/.emacs
Datei:
(use-package org-mode
:mode "\\.org$"
:ensure org
:config
(progn
(setq org-log-done 'time)
(setq org-confirm-babel-evaluate nil)
(setq org-export-babel-evaluate nil)
(setq org-html-validation-link nil)
;; ... more stuff
)
)
Nichts davon :config
wird jedoch ausgeführt. Habe ich die falschen Paketnamen oder so? Ich bin etwas verwirrt über Paketnamen vs. ELPA-Namen vs. Aufrufbefehle ....
org-mode
init-file
use-package
Ken Williams
quelle
quelle
org.el
und Sie werden gegen Ende sehen :(provide 'org)
. Mit diesem Symbol (org
) würden Sie das Paket wie folgt laden :(require 'org)
. Das ist letztendlich das, wasuse-package
wir tun, nur mit ein paar nützlichen Dingen. Ein bestimmtes Paket kann viele Modi definieren, sodass die Paket- und Modusnamen nicht immer gleich sind. Dies ist wirklich das gleiche Problem wie die andere Fragehtml-mode
zur Definition durch dassgml-mode
Paket.Antworten:
Das Folgende würde funktionieren. Aus Gründen der Klarheit verwende ich
:ensure org-plus-contrib
eine, die etwas von dem Beispiel in Ihrer Frage abweicht.Hier sind einige Erläuterungen zu den oben genannten Punkten:
(use-package FEATURE-NAME
FEATURE-NAME
ist das, was in der(provide ..)
Zeile eines Pakets steht. Dennorg-mode
diese Zeile ist(provide 'org)
.:mode ((FILE-REGEXP . MAJOR-MODE))
FILE-REGEXP
ist der reguläre Ausdruck, für den ein bestimmter Hauptmodus aktiviert werden soll. Sie hatten das richtig :"\\.org$"
.MAJOR-MODE
ist der Name des Hauptmodus, den Sie aktivieren möchten (einschließlich des-mode
Teils des Hauptmodusnamens). In diesem Fall lautet der Name des Hauptmodusorg-mode
.:mode (FILE-REGEXP)
, den Sie verwendet haben, würde nur funktionieren, wennFEATURE-NAME
undMAJOR-MODE
genau der gleiche ist. Beispiel :cperl-mode
.:ensure PACKAGE-NAME
PACKAGE-NAME
ist das, was ich in der Paketliste (M-x package-list-packages
) sehe . Aus Gründen der Klarheit installieren wir in meiner obigen Lösung das Paketorg-plus-contrib
1 . Dies soll zeigen, dass der Funktionsname, der Hauptmodus und der tatsächliche Paketname nicht exakt identisch sein müssen. Und ich bevorzuge es auch, das zu installieren, anstatt einfach zu sein,org-mode
da Sie auch allecontrib/
Paket-Goodies erhalten! :) :)1 Sie müssen
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
Ihre Emacs-Konfiguration hinzufügen , um sie installieren zu könnenorg-plus-contrib
. Weitere Informationen finden Sie auf der offiziellen Installationsseite im Organisationsmodus.Hinweis
Der beste Weg, um das obige
use-package
Snippet zum Laufen zu bringen, besteht darin, es zuerst in Ihrer Emacs-Konfiguration zu speichern, dann frühere von Package Manager installierte Versionen von zu löschenorg
und dann Emacs neu zu starten.quelle
org-babel-do-load-languages
in diesem Zusammenhang zum Laufen bringe , wird der Fehler angezeigtError (use-package): org :config: Invalid function: org-babel-header-args-safe-fn
. Andere Sprachen (zBsh
oderperl
oderemacs-lisp
) scheinen gut zu funktionieren.C-h f org-babel-header-args-safe-fn
. Außerdem haben Sie diesen Code-Ausschnitt nicht in Ihrer Frage. Es ist also schwer zu erraten, was los ist.(R . t)
Zeile stoppt den Fehler. Also ja, ein nicht verwandtes Problem, denke ich. Möglicherweise muss eine andere Frage geöffnet werden ...emacs -Q
Starten der Bereinigung meine'package
Konfiguration sorgfältig geladen , deinstalliertorg
undorg-plus-contrib
anschließend neu installiert wurde. Das Problem wird hier erklärt: emacs.stackexchange.com/a/13576/8899org-plus-contrib
Ihre Organisationsinstallation durcheinander gebracht und Sie hatten eine Mischung aus Versionen. Übrigens müssen Sie nur installierenorg-plus-contrib
. Sie müssen das separateorg
Paket auch nicht installieren .Mit der Einschränkung, die ich vorher nicht verwendet habe
use-package
, glaube ich, dass Sieorg
eher wollen alsorg-mode
. Ich stütze mich dabei auf die Tatsache, dass mein Emacs(package-installed-p 'org-mode)
null zurückgibt, während(package-installed-p 'org)
dies nicht der Fall ist.quelle