¿Dónde puedo encontrar mi archivo .emacs para Emacs que se ejecuta en Windows?

115

Intenté buscar el archivo .emacs para mi instalación de Windows para Emacs, pero no pude encontrarlo. ¿Tiene el mismo nombre de archivo en Windows que en Unix?

¿Tengo que crearlo yo mismo? Si es así, ¿en qué directorio específico se encuentra?

Rayo
fuente

Respuestas:

108

Copie y pegue de las Preguntas frecuentes de Emacs, http://www.gnu.org/software/emacs/windows/ :

¿Dónde pongo mi archivo de inicio?

En Windows, el .emacsarchivo puede ser llamado _emacspara compatibilidad con versiones anteriores de los sistemas de archivos DOS y FAT donde los nombres de archivo no pueden comenzar con un punto. Algunos usuarios prefieren seguir usando ese nombre, porque el Explorador de Windows no puede crear un archivo con un nombre que comience con un punto, aunque el sistema de archivos y la mayoría de los otros programas pueden manejarlo. En Emacs 22 y posteriores, también se puede llamar al archivo init .emacs.d/init.el. Muchos de los otros archivos que son creados por paquetes Lisp ahora también se almacenan en el .emacs.ddirectorio, por lo que esto mantiene todos sus archivos relacionados con Emacs en un solo lugar.

Todos los archivos mencionados anteriormente deben ir a su directorio HOME. El directorio HOME se determina siguiendo los pasos a continuación:

  1. Si se establece la variable de entorno HOME, use el directorio que indica.
  2. Si la entrada de registro HKCU \ SOFTWARE \ GNU \ Emacs \ HOME está configurada, use el directorio que indica.
  3. Si la entrada de registro HKLM \ SOFTWARE \ GNU \ Emacs \ HOME está configurada, use el directorio que indica. No recomendado, ya que hace que los usuarios compartan el mismo directorio HOME.
  4. Si C:\.emacsexiste, utilice C:/. Esto es por compatibilidad con versiones anteriores, ya que las versiones anteriores lo hacían de forma predeterminada C:/si no se configuraba HOME.
  5. Utilice el directorio AppData del usuario, generalmente un directorio llamado Application Data bajo el directorio del perfil del usuario, cuya ubicación varía según la versión de Windows y si la computadora es parte de un dominio.

Dentro de Emacs, ~al principio de un nombre de archivo se expande a su directorio HOME, por lo que siempre puede encontrar su archivo .emacs con C-x C-f ~/.emacs.

Hay más información en HOME y Directorios de inicio en MS-Windows .

Nodo
fuente
1
O puede que necesite buscar con Cx Cf ~ / _emacs (en lugar del punto). Usar el guión bajo para su init es una práctica común (y sugerida) tanto para Vim como para Emacs.
laberinto
Emacs se queja de que "_emacs" está obsoleto :(
Brian Z
Gracias. Esta explicación en realidad me ayudó a configurar emacs correctamente siguiendo un tutorial de clojure, donde ni siquiera mencionaron esto. Creé la variable HOME en Windows y ahora funciona.
Siniyas
Para mí, en referencia al punto 5 anterior, el directorio que emacs está buscando para mí es C: \ Users \ userid \ AppData \ Roaming en Windows 7 pero, por supuesto, mi computadora está en un dominio.
user8128167
En Windows 10 configuré la variable HOME en% USERPROFILE% para evitar el sufijo AppData.
Bae
80

Debe almacenarse en la variable user-init-file. Utilice C-H v user-init-file RETpara comprobar. También puede abrirlo directamente usandoM-x eval-expression RET (find-file user-init-file) RET

ido
fuente
8
Esto es tan útil que me sorprende que no se mencione en la sección del manual sobre archivos de inicio.
Brian Z
Me pregunto por qué cuando intento esto, lo consigo trailing garbage following expression.
Marko Grdinic
¿Usaste el paréntesis?
Jose Romero
29

Abra el archivo como este en Emacs para Windows:

C-x C-f ~/.emacs

Más información en el Wiki de Emacs

sverrejoh
fuente
11
Y luego haga clic en Archivo> Abrir archivo ... o Guardar como ... para ver dónde está ~ / en un cuadro de diálogo Abrir de Windows familiar.
Yoo
21

En mi caja de Vista está en C:\Users\<USER>\AppData\Roaming\

Alexander Kojevnikov
fuente
1
Lo mismo para Windows 8.1 (Emacs 24) con una excepción. Cuando se abre Emacs desde el Explorador de Windows, un enlace o consola cmd usa C: \ Users \ <USER> \ AppData \ Roaming \ .emacs archivo de perfil pero si abre Emacs desde la consola de PowerShell, Emacs buscará el archivo .emacs en C : Carpeta \ Usuarios \ <USUARIO>.
kri
Esto funcionó para mí. Creé un archivo .emacs en el directorio Roaming en AppData, ¡y funciona como un encanto! Windows 10.
Retro Gamer
Trabajó en Windows 10
Alex Kaszynski
6

Tenga en cuenta que puede que NO sea suficiente con escribir Ctrl-x Ctrl-f ~/.emacs y crear el archivo.

Puede ser que su aplicación Emacs use un lugar diferente para almacenar su archivo init, y si es así, entonces crear el archivo ~ / .emacs simplemente crea un archivo inútil que su aplicación Emacs ignora.

Además, es posible que desee hacer algo más que acceder al archivo de inicio .emacs, pero es posible que desee saber dónde está, es decir, su nombre de ruta.

Para llegar a esto, hay dos métodos:

Manera fácil: escriba Ctrl+H V user-init-fileReturn

Manera un poco más complicada: puede averiguar dónde su sistema está almacenando su propio archivo .emacs de la siguiente manera:

  1. Haga clic en las opciones y desplácese hacia abajo hasta "Establecer fuente predeterminada ..."
  2. Cambie la configuración de fuente y haga clic en Aceptar
  3. En el menú de opciones, vaya a "Opciones de guardado"
  4. Cuando se guardan las opciones, el sistema guarda su archivo .emacs y puede leer la ruta del archivo en el minibúfer en la parte inferior de la pantalla de Emacs
user3020269
fuente
Consulte los documentos sobre el formato de su respuesta. Es bastante fácil y te hará ganar más reputación.
Bhavik Shah
Cuando guardé un archivo llamado ~ / .emacs.el, se creó en formato c:/Users/user1/AppData/Roaming/.emacs.el. Este sitio emacswiki.org/emacs/DotEmacsDotD me ayudó a darme cuenta de que necesitaba nombrar el archivo, lo ~/.emacs.d/init.elque significaba que el archivo en el sistema de archivos estaba en c:\Users\user1\AppData\Roaming\.emacs.d\init.el(nada de lo que esperaba). Prefiero configurar la variable de entorno HOME y colocar el archivo en mi %USERPROFILE%directorio, que es el directorio HOME lógico en Windows (al menos en lo que a mí respecta).
PatS
4

En Windows 7, coloque su init.elarchivo C:\Users\user-name\AppData\Roaming\.emacs.d\, donde nombre de usuario es su carpeta de usuario / inicio de sesión.

Tenga cuidado para que su init.elarchivo no tenga nombre init.el.txt. Esto es algo que hace Windows si crea su archivo con algún editor como el Bloc de notas.

caisah
fuente
4

En las versiones de Emacs en Windows por encima de la 22, parece haberse movido a

~/.emacs.d/init.el

, ~siendo el valor de la variable de entorno HOME (consulte Panel de control → SistemaAvanzadoVariables de entorno ).

Es posible que el archivo en sí no exista. En ese caso, simplemente créelo.

Gauthier
fuente
3

Debe crear un archivo de inicialización de emacs. Uno no se crea automáticamente. Tuve un problema similar y esta respuesta rastrea lo que hice.

Mi problema era mi ~/.emacs.el archivo no se cargaba. Extraño porque esto siempre me ha funcionado.

Esta pregunta / respuesta me ayudó, pero tuve que poner mi archivo de inicio en el %USERPROFILE%\AppData\Roaming\.emacs.d\init.el porque aparentemente este es el comportamiento predeterminado en Windows.

Para solucionar este problema, ejecuté lo siguiente en el búfer emacs * scratch * .

user-emacs-directory
"~/.emacs.d/"

Cuando vi user-emacs-directoryfue ~/.emacs.d, simplemente moví mi archivo .emacs.el a %USERPROFILE%\.emacs.d\init.el. Pero esto todavía no funcionó. Continué con expand-file-namecomo se muestra a continuación:

(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"

Me encanta cómo funciona Windows. (no) Así que moví mi emacs.elarchivo al %USERPROFILE%\AppData\Roaming\.emacs.d\init.ely esto funcionó. Ahora se estaba leyendo el archivo. Pero obtuve otros errores porque mi archivo de inicialización cargó otros archivos (emacs personales) (en formato ~/myenv/emacs/*.el.

Warning (initialization): An error occurred while loading c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:

Hum ... Parece que todos mis archivos ~/myenv/emacs/*.eltendrían que ser movidos para que esto funcione, pero no quería hacer eso. Luego me di cuenta de que debido a que la variable de entorno HOME no estaba configurada, emacs estaba realizando su comportamiento predeterminado .

SOLUCIÓN

Una vez que configuré mi HOMEvariable de entorno de Windows para que %USERPROFILE%todo comenzara a funcionar como lo ha hecho durante los últimos 25 años. :-)

Para configurar la variable de entorno HOME, escribí WindowsKey + "editar variables de entorno para su cuenta" para abrir el cuadro de diálogo Variables de entorno , e ingreséHOME=%USERPROFILE% .

Ahora mi archivo de inicialización de emacs .emacs.el está de vuelta en el lugar que le corresponde $HOME/.emacs.ely no en%USERPROFILE%\AppData\Roaming\.emacs.d\init.el

Para ser justos, si Windows tuviera un solo lugar para colocar archivos para los paquetes instalados por el usuario, la solución de hacer HOME = %USERPROFILE\AppData\Roamingpodría ser aceptable, pero debido a que algunas aplicaciones lo usan %USERPROFILE%, otras lo usan %USERPROFILE\AppData\Roamingy otras lo usan %USERPROFILE\AppData\Local, es difícil saber dónde encontrar su configuración. archivos.

Prefiero tener todo en mi directorio% USERPROFILE% o $ HOME.

Otra pregunta similar estaba aquí:

Palmaditas
fuente
"Tengo que amar cómo funciona Windows. (No)" - Este problema no tiene nada que ver con Windows más que esto es lo que los desarrolladores de Emacs han hecho con las personas que ejecutan Emacs en Windows.
Chris Charabaruk
2

Como respondió kanja, la ruta a este archivo se almacena en la user-init-filevariable (o si no existe un archivo de inicio, la variable contiene el valor predeterminado de dónde crearlo).

Entonces, independientemente de cuál de los posibles nombres de archivo de inicio esté utilizando y en qué directorio se encuentra, debería poder visitar su archivo de inicio con:

M-: (find-file user-init-file) RET

O muestre su ruta completa en el área de eco con:

M-: (expand-file-name user-init-file) RET

phils
fuente
2

En Emacs 23 y Windows 7, solo funciona si configura:

HKCU\SOFTWARE\GNU\Emacs\HOME
ex_
fuente
¡Finalmente encontré esto! ¡Gracias!
Chris
¡Finalmente encontré esto! ¡Yo también!
tecla inferior
Por "conjunto", ¿te refieres a crear esa clave (sin contenido)?
Peter Mortensen
1

Descubrí que Emacs 22 ocasionalmente abrirá "C: \ Documents and Settings \ username \ Application Data \ .emacs" o simplemente "C: \ Documents and Settings \ username \ .emacs" en mi máquina XP. No he encontrado una explicación de por qué ocasionalmente cambia de opinión.

~ siempre apuntará a lo que sea que la instancia actual de emacs piense que es HOME, pero la sugerencia de kanja (Ch v user-init-file) siempre le dirá a qué se asigna ~ / .emacs.

remcycles
fuente
2
Ahora he notado que Windows configurará la HOMEvariable de entorno de manera diferente, dependiendo de cómo empiece runemacs.exe. Si lo inicio desde el Explorador, HOMEestá configurado en C:\Documents and Settings\username, pero si lo inicio desde el menú Inicio, HOMEes C:\Documents and Settings\username\Application Data. Extraño.
Recicla el
1

En Windows XP es:

C:\Documents and Settings\yourusernamehere\Application Data\
oso polar
fuente
0

En Windows 8.1, si Emacs se inicia desde el Explorador de Windows , un acceso directo o desde la consola cmd , usa el archivo de inicio C: \ Users \ <USER> \ AppData \ Roaming.emacs . Cuando inicio Emacs desde PowerShell, Emacs busca su archivo de inicio en la carpeta C: \ Users \ <USER> . La solución a este problema fue establecer la variable de entorno del usuario HOME (Panel de control \ Sistema y seguridad \ Sistema-> Configuración avanzada del sistema-> Avanzado-> Variables de entorno) en C: \ Usuarios \ <USUARIO> . Después de este cambio, no importa cómo inicie Emacs, usa el mismo archivo de inicio (vea la respuesta aceptada de esta pregunta )

kri
fuente
0

Para WIndows7 y Emacs26.3:


si HOMEse establece el entorno, entonces el.emacs archivo debe estar en esa carpeta.

de lo contrario, debería estar en formato c:\.


En ambos casos, si .emacsno está,_emacs debe utilizar.

Esto se debe a que no podemos crear un .emacsarchivo de acuerdo con las reglas de nomenclatura de archivos de Windows (pero podemos descargarlo o copiarlo desde otro lugar).

ZhaoGang
fuente