2011-06-24 17 views
11

Estoy usando emacs en Windows. Me gustaría saber cómo cambiar la ruta predeterminada "Buscar archivo:" en emacs, es decir, cuando presionamos "Cx Cf" quiero que la ruta predeterminada del archivo apunte a mi directorio de Documentos y no a "c: \ emacs - ** \ compartimiento/".emacs "Buscar archivo:" ruta predeterminada

Respuesta

0

Debe volver a definir la variable de entorno HOME en su nuevo directorio predeterminado.

+0

No. 'HOME' se utiliza para muchas cosas además de su directorio predeterminado de Emacs. Jugar con esto probablemente hará que muchas cosas se comporten de manera impredecible. -1 –

+1

Comentario válido. Pero dado que Emacs parece usar su propio directorio ahora, significa que la variable HOME aún no está definida. Definirlo en 'Mis documentos' no hará daño. No diría que si estuviera en Linux – Giann

+0

Bueno, admitiré que no sé cómo están las cosas en Windows. –

16

En un búfer que está visitando un archivo, la ruta predeterminada que ve cuando visita un nuevo archivo (C-x C-f) es el directorio que contiene el archivo del búfer en uso.

Con el fin de anular el valor "c: \ emacs - ** \ bin /" con algo más sensato, establecer la variable de default-directory en el fichero .emacs:

(setq default-directory "/path/to/documents/directory/") 

Tenga en cuenta que el valor de ruta debe terminar con una barra (o barra invertida en Windows).

Sin embargo, también puede considerar cambiar el valor de su variable de entorno HOME, ya que de manera predeterminada, esto es a lo que apunta la variable default-directory al inicio (a menos que se establezca en algún otro valor como se muestra arriba).

+0

Todavía debería utilizar barras diagonales en rutas de archivos en NTEmacs. Sabe que hacer – phils

+0

@phils: Supongo que la razón para preferir barras oblicuas sobre barras invertidas es que las barras invertidas también son el carácter de escape en cadenas, por lo que siempre debe escribir nombres de ruta como este: "c: \\ foo \\ barra \\" que se convierte en bastante feo. – Thomas

+1

Esta respuesta no funciona para mí (y otros). Vea la discusión bajo @loudandclear answer. –

1

Esto deberá hacerlo:

(global-set-key (kbd "C-x C-f") (lambda() (interactive) 
            (cd "somePathHere") 
            (call-interactively 'find-file))) 

(sustituir somePathHere con la ruta a su directorio de documentos)

+0

@sabotero alguien hizo -1 porque esta es una solución pobre, poco elegante. Emacs tiene mecanismos para abordar la pregunta de OP, directorio predeterminado. Volver a asignar las claves a una nueva función NO es la forma de abordar esta simple tarea. –

+1

Esta es una respuesta sensata. El OP presumiblemente quiere 'C-x C-f' para comenzar siempre en un directorio determinado. El ajuste 'default-directory' * no * hará esto, ya que es buffer-local y cambiará tan pronto como lea o escriba en un directorio diferente. Tendría que agregar ganchos a 'find-file',' dired' y cualquier otra cosa que lo configure. ¡Y cambiar una configuración en cada búfer no es una forma "elegante" de cambiar el comportamiento de una combinación de teclas! Si desea que una combinación de teclas haga algo diferente, volver a vincularla a un contenedor personalizado es simple, infalible y no interferirá con ninguna otra cosa. – pyrocrasty

+0

Aunque, si está vinculando una función a una clave, al menos debería darle un nombre. Puede usar 'defun' inline si lo desea (es mejor definirlo en el nivel superior, para que el sistema de ayuda pueda encontrar la definición). – pyrocrasty

3

variable '-directorio por defecto' es el directorio "actual" (para el búfer en uso). Command 'cd' cambia de directorio y visita cualquier archivo o directorio (por ejemplo, con Dired) cambió el 'directorio predeterminado' para ese búfer.

Puede iniciar Emacs en un directorio determinado, pasando ese directorio en la línea de comandos. Puede usar un atajo de Windows para hacer esto también. Y puede hacer que el acceso directo visite ese directorio en Dired.

Objetivo:: C: \ Emacs \ bin \ runemacs.exe

Ejemplo información contextual "C: \ mi \ favorito \ carpeta"

Inicio en: C: \ mi \ carpeta \ favorita

Cuestiones relacionadas