Mi .emacs
archivo de configuración se hace cada vez más grande y me gustaría obtener una mejor visión general y estructuración agregando encabezados, subtítulos y poder ocultarlos o mostrarlos como puedo hacer con Emacs org-mode
.
Noté que también puedo activar org-mode
en el .emacs
búfer y que es posible agregar encabezados y colapsarlos. ¿Pero Emacs / Aquamacs todavía podrá cargar el código Elisp del documento si agrego org-mode
encabezados (es decir, líneas que comienzan con uno o más asteriscos)?
¿Puedo tener todo eso en un archivo o tendría que tener un .*org
archivo y luego exportar regularmente el código Elisp a otro archivo?
fuente
org
de elpa, en lugar de loorg
que está disponible en un emacs limpio? Parece que elpackage
código de inicialización debería extraersesettings.org
y colocarseinit.el
?init.el
:(require 'package) (package-initialize) (setq custom-file "~/.emacs.d/custom.el") (when (file-exists-p custom-file) (load custom-file)) (require 'org) (org-babel-load-file (expand-file-name "settings.org" user-emacs-directory))
Si todo lo que desea es una visualización selectiva de secciones y navegación entre encabezados, no necesita el modo Org. Todo lo que necesitas es el modo Esquema . El modo de esquema es básicamente el nivel de encabezado y la gestión de visibilidad de sección del modo Org. De hecho, el modo Org fue originalmente las extensiones del autor al modo Esquema, y creció, creció y creció ... Incluso hoy,
org-mode
se deriva deoutline-mode
.El modo de esquema existe como modo principal y como modo secundario. El modo menor se puede usar en cualquier modo mayor. Puede configurarlo para usar un formato de encabezado que sea compatible con la sintaxis de su programa, y muchos modos principales lo hacen, configurando la
outline-regexp
variable en una expresión regular que coincida con el inicio de un encabezado. Por ejemplo, este es el valor predeterminado en el modo Emacs Lisp:es decir, los encabezados de sección comienzan con tres o más puntos y comas y un solo espacio, o un paréntesis de apertura en el margen izquierdo. La variable
outline-level
contiene el nombre de una función para determinar la profundidad de un encabezado; el valor predeterminado es la longitud de la cadena que coincideoutline-regexp
, y el modo Emacs Lisp lo anula para asignar una mayor profundidad a(
y;;;###autoload
.Si no le gusta el formato de encabezado predeterminado, configure la variable
outline-regexp
en un archivo de declaración de variable local . Esto es lo que uso: todos mis encabezados de sección consisten en;;;
seguidos de la secuencia clásica de estrellas:Si desea que el modo secundario Esquema se active automáticamente cuando carga el archivo, agregue la siguiente línea en la sección Variables locales: tenga en cuenta que esto le advertirá sobre el código inseguro en Emacs ≤23.x.
Los comandos para el modo de esquema menor usan el
C-c @
prefijo bastante inconveniente de forma predeterminada. Lo muevo aM-o
(nunca uso los enlaces del menú facial), puede preferir otra tecla o replicar los enlaces del modo Org (que se han desviado bastante del modo Esquema).fuente
La programación literaria lo lleva al máximo, org-mode lo admite a través de org-babel . En el blog de @malabarba se explican dos posibles soluciones :
La forma más simple es cargar el modo org, luego usar su función de desenredado para cargar una configuración alfabetizada de Emacs:
Alternativamente (para evitar cargar la organización por completo), se puede desenredar con las primitivas Emacs Lisp:
fuente
Un voto más para el modo de esquema. Por ejemplo, para organizar
.emacs
, uso la siguiente sintaxis:las partes importantes son
;;;
y:\n
Aquí hay una muestra
.emacs
:Uno debe habilitar
outline-minor-mode
y luego las dos pulsaciones de teclas necesarias son:C-c @ C-t - mostrar estructura de nivel superior
lo anterior se convierte
C-c @ C-a - mostrar todo de nuevo
Un uso típico es mostrar la estructura de nivel superior, pasar al encabezado de interés y mostrar todo de nuevo.
fuente
#+STARTUP: overview
o lashow all
ocontents
las opciones.#
no es un signo de comentario, por lo que el intérprete de elisp incorporado de emacs se confundiría cuando golpeara#+STARTUP
o algo así. (¿o he entendido mal su comentario?)STARTUP
directiva en el interior?orgstruct-mode
Por ejemplo, este era un buffer R pero la misma idea: emacs.stackexchange.com/a/8065/2443En la siguiente respuesta SO, verá cómo hacerlo, ejemplos de proyectos que usan un solo archivo de organización o muchos, cuál es la ventaja de usar Cask y enlaces a la documentación.
https://stackoverflow.com/questions/25430029/whats-the-best-way-to-package-my-emacs-installation-packages-and-config-so-tha/25430745#25430745
Cambié mi configuración a org hace unos meses, y no estoy totalmente satisfecho con ella. Requiere un poco de configuración y lectura del manual de la organización para tener un archivo de organización útil que facilite la edición del código elisp. Uno tiene que habilitar la fuente de bloques src (desactivada por defecto -> usar una variable por archivo), verificar que otros modos no entren en conflicto para editar bloques src (modo de autocompletar), etc. Uno no quiere usar Cc
(backtick) (
org-edit-src-block`) para editar un bloque src. Y se pone un poco en el camino para la depuración.Mi consejo sería: comience dividiendo su archivo de inicio en pequeños trozos de elisp, intente con un paquete de restricción, use
helm-swoop
para una navegación rápida y luego considere usarloorg-mode
.fuente
Recientemente he invertido algo de tiempo para hacer exactamente eso. Terminé con una configuración que, mantenida con el modo org, usa 'use-package' para instalar automáticamente los paquetes faltantes, es un repositorio de github que se instala automáticamente (enchufe descarado: https://github.com / pascalfleury / emacs-config )
He 'arrancado' algunas máquinas (Linux y Mac) clonando el repositorio y agregando una sola línea en ~ / .emacs et voila. Estoy preparado como me gusta.
fuente