Cambiar la carpeta predeterminada en Emacs

107

Soy bastante nuevo en Emacs y he estado tratando de averiguar cómo cambiar la carpeta predeterminada para C-x C-fel inicio. Por ejemplo, cuando cargo Emacs por primera vez y llego a C-x C-fsu carpeta predeterminada es C:\emacs\emacs-21.3\bin, pero prefiero que sea el escritorio. Creo que hay alguna forma de personalizar el .emacsarchivo para hacer esto, pero todavía no estoy seguro de qué es.

Actualización: Hay tres soluciones al problema que encontré que funcionan, sin embargo, creo que la solución 3 es solo para Windows.

  • Solución 1: agregar (cd "C:/Users/Name/Desktop")al .emacsarchivo

  • Solución 2: agregar (setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/")al .emacsarchivo

  • Solución 3: Haga clic derecho en el atajo de Emacs, presione propiedades y cambie el campo de inicio en el directorio deseado.

Anton
fuente

Respuestas:

84

No lo dijo, pero parece que está iniciando Emacs desde un acceso directo de Windows.

El directorio que ve con cx cf es el cwd, en términos de Emacs, la default-directory(una variable).

Cuando inicia Emacs usando un acceso directo de MS Windows, default-directoryinicialmente es la carpeta (directorio) especificada en el campo "Iniciar en" de las propiedades del acceso directo. Haga clic derecho en el acceso directo, seleccione Propertiesy escriba la ruta a su escritorio en el Start Incampo.

Si está usando Emacs desde la línea de comandos, default-directorycomienza como el directorio donde inició Emacs (el cwd).

Este enfoque es mejor que editar su archivo .emacs, ya que le permitirá tener más de un atajo con más de un directorio de inicio, y le permitirá tener el comportamiento normal de línea de comandos de Emacs si lo necesita.

CWD = directorio de trabajo actual = PWD = directorio de trabajo actual . Tiene mucho más sentido en la línea de comandos que en una GUI.

Bart
fuente
Sí, estoy usando emacs en Windows.
Anton
5
Esto también funciona en MacOS. Agregué esto a mi .emacs: (setq default-directory (concat (getenv "HOME") "/"))
vy32
Y si quiere que Emacs comience en Dired de ese directorio entonces, además de ponerlo en el Start Incampo, agréguelo al final del Targetcampo, después de uno o más espacios, encerrándolo entre comillas dobles ( "). Por ejemplo: "d:\path\to\the\folder".
Drew
49

Creo que la línea que necesita agregar a su .emacs es

(setq default-directory "C:/Documents and Settings/USER NAME/Desktop/" )

Emacs se iniciará en su escritorio de esa manera, a menos que tenga un archivo abierto. Por lo general, comenzará en el mismo directorio que el archivo en su búfer actual.

Miguel
fuente
26

Puede escribir el comando emacs 'cd'. (Mx cd) para cambiar la carpeta predeterminada como única.

Chris Huang-Leaver
fuente
24

He puesto

(cd "c:/cvsroot/")

en mi .emacs e hizo el trabajo

vava
fuente
6

La carpeta predeterminada es en realidad la misma que la carpeta de trabajo actual para el búfer, es decir, puede ser diferente para cada archivo con el que trabaje. Digamos que el archivo con el que está trabajando está ubicado en C:\dir_a, entonces el directorio de trabajo para ese búfer será por defecto C:\dir_a. Puede cambiar esto con M-x cdy escribir el directorio que le gustaría que sea el predeterminado (y por defecto me refiero al que aparecerá cuando lo haga C-x C-f).

Si inicia emacs sin abrir un archivo, terminará con el *scratch*búfer abierto. Si inició emacs desde un acceso directo de Windows, el directorio de trabajo será el mismo que el especificado en las propiedades del acceso directo. Si lo inició desde la línea de comandos, será el directorio desde donde lo inició. Aún puede cambiar este directorio predeterminado con M-x cd, también desde el *scratch*búfer.

Finalmente, puede hacer lo que sugiere Vadim y poner

(cd "c:/dir_a/")

en su .emacsarchivo, para hacer que ese directorio sea el predeterminado sin importar cómo inicie emacs.

ehdr
fuente
4

Como está en Windows, puede hacerlo con un atajo.

Crea un atajo a C:\emacs\emacs-21.3\bin\runemacs.exe. Edite las propiedades del acceso directo y cambie el valor de Start In:para que sea el que desee que sea su directorio predeterminado.

Dave Webb
fuente
4

Estoy usando emacs 22.2.1 en Windows XP y las respuestas anteriores me han ayudado a obtener la respuesta en el minibúfer. Quiero el comando Cx Cf. Inicialmente obtenía "Buscar archivo: C: \ Archivos de programa \ emacs \ bin /" como Anton. Tengo HOME configurado en "C: \ Documentos y configuración \ NOMBRE DE USUARIO \ Mis documentos". La respuesta a Cx Cf que quiero en el minibúfer es "Buscar archivo: ~ /". Al agregar (setq default-directory "C: / Documents and Settings / USER NAME / My Documents") a mi archivo .emacs, pude obtener la respuesta "Find file: C: \ Documents and settings \ USER NAME \ My Documents / "que es funcionalmente igual que" Buscar archivo: ~ / ". Sin embargo, noté un punto más. "Personalizar Emacs" en "Opciones" me permitió inhibir la pantalla de inicio. Ahora, cuando abro emacs, voy inmediatamente al búfer de scratch. Cuando escribo Cx Cf en el búfer temporal, obtengo la respuesta exacta que quiero.


fuente
+1 por mencionar la inhibición de la pantalla de inicio. Encontré que esto es clave en mi sistema Windows 10.
Publiqué
1

He agregado a mi acceso directo (en Gnome, Linux) un pramater que es un nombre de archivo ficticio en blanco, y especifico el directorio. Dado que mi emacs está predeterminado en "casa", simplemente digo:

/ Escritorio / blank_file

y eso abre un archivo llamado "blank_file"

Eso también mueve el directorio de trabajo actual para esa sesión de emacs al escritorio.

Si pongo cosas en "blank_file", las guardo, por supuesto, las tengo guardadas. ¡Lo que puede ser una molestia o algo bueno, dependiendo!

Greg Laden
fuente
1

Para cambiar el directorio predeterminado a DESKTOP en Dired y shell, ponga esto en su ~ / .emacs:

;; Esto funciona para Windows XP.
(setq directorio-predeterminado (concat "C: \ Documents and Settings \ MY_ACCOUNT \ DESKTOP \"))

Adam Faryna
fuente
0

En Windows 8, funciona para crear un acceso directo en el escritorio y cambiar la propiedad 'Iniciar en:' para el acceso directo.

Ahora, ejecuté el programa emacs-23.3 \ bin \ addpm.exe como se recomendó, y en la pantalla de Windows-8 (ese horrendo invento de Microsoft) apareció un enlace de icono a Emacs. Pero ahí tienes que volver a cambiar la propiedad 'Iniciar en'. (Es diferente al del escritorio). Simplemente haga clic derecho, elija en la barra inferior 'Abrir la ubicación del archivo' (o similar, lo hice en mi idioma), y se le llevará a la carpeta con un nuevo acceso directo, en el que también puede (debe) cambiar el propiedad 'Iniciar en:'.

Un poco complicado, pero de hecho muy fácil.

Tonibat
fuente
0

Dado que lo más molesto es que Windows Emacs lo descargue en system32 cuando solo está usando el acceso directo, pero desea que todos los demás casos funcionen, solo use un poco de elisp ...

(cuando (cadena <"C: \ WINDOWS \ system32" directorio-predeterminado) (setq directorio-predeterminado "~ /"))

Por lo tanto, solo se establecerá de forma predeterminada en su directorio de inicio cuando termine en system. El único inconveniente es que si realmente desea iniciar emacs en system32 ...

Grant BlahaErath
fuente