J'essaie d'utiliser use-package
pour configurer mon org-mode
initialisation. J'ai les éléments suivants dans mon ~/.emacs
dossier:
(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
)
)
:config
Cependant, rien de tout cela n'est initialisé. Est-ce que les noms de colis sont incorrects ou quelque chose? Je suis un peu confus entre les noms de package, les noms ELPA et les commandes d'invocation ....
org-mode
init-file
use-package
Ken Williams
la source
la source
org.el
et vous verrez à la fin:(provide 'org)
. Ce symbole (org
) est ce que vous utilisez pour charger le paquet, comme dans:(require 'org)
. C'est finalement ce quiuse-package
se passe, juste avec quelques trucs utiles autour. Un package donné peut définir de nombreux modes, de sorte que les noms de package et de mode ne sont pas toujours les mêmes. C'est vraiment le même problème que l'autre question sur lahtml-mode
définition dusgml-mode
package.Réponses:
Ce qui suit fonctionnerait. Par souci de clarté, j'utilise
:ensure org-plus-contrib
ce qui s'écarte un peu de l'exemple de votre question.Voici quelques notes d'explication pour ce qui précède:
(use-package FEATURE-NAME
FEATURE-NAME
c'est ce qui se passe dans la(provide ..)
ligne d'un paquet. Carorg-mode
, cette ligne est(provide 'org)
.:mode ((FILE-REGEXP . MAJOR-MODE))
FILE-REGEXP
est l'expression régulière pour laquelle vous souhaitez activer un mode majeur particulier. Vous avez eu ce exact:"\\.org$"
.MAJOR-MODE
est le nom du mode principal que vous souhaitez activer (y compris la-mode
partie du nom du mode principal). Dans ce cas, le nom du mode principal estorg-mode
.:mode (FILE-REGEXP)
que vous avez utilisé ne fonctionnerait que siFEATURE-NAME
et étaitMAJOR-MODE
exactement le même. Exemple:cperl-mode
.:ensure PACKAGE-NAME
PACKAGE-NAME
est ce que je vois dans la liste des paquets (M-x package-list-packages
). Pour plus de clarté, dans ma solution ci-dessus, nous installons le packageorg-plus-contrib
1 . Il s'agit de démontrer le nom de la fonctionnalité, le mode principal et le nom du package réel ne doivent pas être exactement les mêmes. Et je préfère également installer cela au lieu de plaineorg-mode
car vous obtenez également tous lescontrib/
goodies du package! :)1 Vous devrez ajouter
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
à votre configuration emacs pour installerorg-plus-contrib
. Voir la page d'installation officielle en mode org pour plus d'informations.Remarque
La meilleure façon de faire fonctionner l'
use-package
extrait ci-dessus consiste à l'enregistrer d'abord dans votre configuration emacs, puis à supprimer les versions antérieures de Package Manager installéesorg
, puis à redémarrer emacs.la source
org-babel-do-load-languages
dans ce contexte, cela donne l'erreurError (use-package): org :config: Invalid function: org-babel-header-args-safe-fn
. D'autres langues (par exemplesh
ouperl
ouemacs-lisp
) semblent bien fonctionner.C-h f org-babel-header-args-safe-fn
. De plus, vous n'avez pas cet extrait de code dans votre question. Il est donc difficile de deviner ce qui se passe.(R . t)
ligne arrête l'erreur. Donc oui, un problème sans rapport avec moi je pense. Pourrait avoir besoin d'ouvrir une autre question ...emacs -Q
commencer propre, charger soigneusement ma'package
configuration, la désinstallationorg
etorg-plus-contrib
, puis les réinstaller. Le problème est expliqué ici: emacs.stackexchange.com/a/13576/8899org-plus-contrib
gâché l' installation de votre organisation et vous avez fini par avoir un mélange de versions. btw, vous devez simplement installerorg-plus-contrib
. Vous n'avez pas besoin d'installer leorg
package séparé également.Avec la mise en garde que je n'ai pas utilisée
use-package
auparavant, je pense que vous voulezorg
plutôt queorg-mode
. Je fonde cela sur le fait que, sur mon Emacs,(package-installed-p 'org-mode)
retourne zéro alors(package-installed-p 'org)
que non.la source