org-mode – `use-package` con: config para establecer variables

Pregunta:

Estoy tratando de usar use-package para configurar mi inicialización del org-mode . Tengo lo siguiente en mi archivo ~/.emacs :

(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
  )
)

Sin embargo, nada de eso :config cosas de inicialización de la :config se están ejecutando. ¿Tengo los nombres de los paquetes incorrectos o algo así? Me confunden un poco los nombres de los paquetes frente a los nombres de ELPA frente a los comandos de invocación …

Respuesta:

Lo siguiente funcionaría. En aras de la claridad, estoy usando :ensure org-plus-contrib que se desvía un poco del ejemplo de su pregunta.

(use-package org
  :mode (("\\.org$" . org-mode))
  :ensure org-plus-contrib
  :config
  (progn
    ;; config stuff
    ))

Aquí hay algunas notas explicativas para lo anterior:

  • (use-package FEATURE-NAME
    • FEATURE-NAME es lo que va en la línea (provide ..) de un paquete. Para org-mode , esa línea es (provide 'org) .
  • :mode ((FILE-REGEXP . MAJOR-MODE))
    • FILE-REGEXP es la expresión regular para la que desea que se habilite un modo principal en particular. Tenías eso correcto: "\\.org$" .
    • MAJOR-MODE es el nombre del modo principal que desea habilitar (incluida la parte -mode del nombre del modo principal). En este caso, el nombre del modo principal es org-mode .
    • El estilo :mode (FILE-REGEXP) que usó solo funcionaría si FEATURE-NAME y MAJOR-MODE son exactamente iguales. Ejemplo: cperl-mode .
  • :ensure PACKAGE-NAME
    • PACKAGE-NAME es lo que veo en la lista de paquetes ( Mx package-list-packages ). Para mayor claridad, en mi solución anterior, estamos instalando el paquete org-plus-contrib 1 . Esto es para demostrar que el nombre de la función, el modo principal y el nombre del paquete real no tienen que ser exactamente iguales. ¡Y también prefiero instalar eso en lugar del org-mode ya que también obtienes todos los contrib/ package! 🙂

1 Deberá agregar (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t) a su configuración de emacs para instalar org-plus-contrib . Consulte la página de instalación oficial del modo de organización para obtener más información.


Nota

La mejor manera de hacer que funcione el fragmento de use-package anterior es guardarlo en su configuración de emacs primero, luego eliminar las versiones anteriores de org de Package Manager instaladas y luego reiniciar emacs.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım