Respuestas:
Emacs tiene varios lugares donde busca archivos de inicio, como se documenta en el manual . Si desea personalizar Emacs, debe comenzar con uno de esos archivos.
Un enfoque común es usar el archivo init.el
en su user-emacs-directory
, en lugar de tener un .emacs
en su directorio HOME.
El valor user-emacs-directory
predeterminado es ~/.emacs.d
, por lo que aún es relativo a su HOME, pero el beneficio de este enfoque es que puede mantener todo lo relacionado con su configuración de Emacs en un solo lugar. Ese directorio podría estar bajo control de versiones, respaldado, compartido en varias máquinas, etc. Puede usar un enlace simbólico ( mklink
en Windows) para mantener los archivos en otra ubicación.
Por ejemplo, es bastante común ver a las personas mantener su configuración de Emacs en Github. Usted puede encontrar muchos ejemplos de esto mediante la búsqueda de Github para proyectos elisp con archivos init.el .
user-emacs-directory
En cada instalación de Windows en la que uso Emacs, tengo el siguiente código en un .emacs
archivo en la ubicación indicada:
;; Place this file in C:\Users\Username\AppData\Roaming and point to the appropriate files
(setq user-init-file "C:/path/to/.emacs")
(setq user-emacs-directory "C:/path/to/.emacs.d/")
(setq default-directory "C:/whatever/you/want/to/start/in")
(setenv "HOME" "D:/my/home/directory")
(load user-init-file)
De esta manera puedo poner mi .emacs
y .emacs.d/
donde quiera.
Su archivo .emacs va en su HOME
directorio. Del manual de Emacs:
El equivalente de Windows de HOME es el directorio de datos de la aplicación específica del usuario. La ubicación real depende de la versión de Windows ...
Puede anular este valor predeterminado de HOME configurando explícitamente la variable de entorno HOME para que apunte a cualquier directorio de su sistema. HOME se puede configurar desde el símbolo del sistema de comandos o desde el cuadro de diálogo 'Propiedades' de 'Mi PC'. HOME también se puede configurar en el registro del sistema, consulte el Registro de MS-Windows.
HOME
directorio a algo muy diferente. Por eso llamo a ese cambio un truco. Establecerlo en su valor apropiado está obviamente bien.
Tu dices:
Sé cómo configurar el directorio de inicio, sin embargo, por razones de control de versiones, quiero poder configurar emacs para leer desde un directorio diferente (para que pueda tener un directorio específico para emacs) .
Su archivo de inicio va en su directorio de inicio, que puede colocar en cualquier lugar. Aparentemente desea tener un directorio diferente para las cosas que carga Emacs. Eso no es un problema. Coloque su archivo init en su directorio de inicio y haga que ese archivo agregue otro directorio al valor de variable load-path
y luego requiera las otras bibliotecas de Emacs que desee usar. Pon esas bibliotecas en ese otro directorio.
IOW, su archivo de inicio no necesita contener nada más allá de la configuración del directorio donde guarda las bibliotecas de Emacs que desea cargar.
Solo por razones de integridad, proporciono un enlace a:
https://www.gnu.org/software/emacs/manual/html_node/efaq-w32/Location-of-init-file.html
Lo que dice que puede establecer un HOME
valor en la ruta del registro:
HKCU\SOFTWARE\GNU\Emacs\HOME
Pero este valor es anulado por la variable de entorno HOME
.
Piensa que podrías poner (setq user-init-file "C:/path/to/.emacs")
y otras líneas propuestas por @ryan en site-start.el
Su sitio también puede tener un archivo de inicio del sitio; esto se llama site-start.el, si existe. Al igual que default.el, Emacs encuentra este archivo a través de la ruta de búsqueda estándar para las bibliotecas Lisp. Emacs carga esta biblioteca antes de que cargue su archivo init.
site-start.el
cargar la suyainit.el
y ya no necesita a.emacs
. En este ejemplo, no necesita jugar con el directorio de inicio (a menos que alguien más en la computadora esté agregando cosas que afectarán lo que usted hace). En otras palabras, puede estar en blanco y nunca es necesario tocarlo.