2010-03-10 7 views
6

Cambié una configuración en Emacs. Ahora, cada vez que intento abrir un archivo desde la línea de comando, abre un buffer *scratch* en la parte superior del archivo. ¿Hay alguna manera de deshacerse de esto? ¿O una forma de restablecer la configuración de inicio de mi emacs?Apertura de emacs sin el búfer de retoque al abrir un archivo

+1

Lo más probable es que hayas configurado 'initial-buffer-choice' en' t', quizás a través de la personalización Environment -> Initialization. – starblue

Respuesta

3

Puede volver a cargar su archivo .emacs con M-x archivo de carga ~/.emacs. También hay otras formas de hacerlo, consulte la pregunta How can I load changes to my .emacs without rebooting Emacs?.

Si usted piensa que tiene un problema con el archivo .emacs, intente abrir usando la opción -q:

emacs -q somefile 

si funciona como se espera, es probable que un error en su .emacs, y una buena manera para depurar su .emacs es utilizar la opción --debug-init:

emacs --debug-init 

que le dirá Emacs para proporcionar un seguimiento de pila de cualquier error que encuentra durante la carga de su .emacs, algo así como:

Debugger entered--Lisp error: (wrong-type-argument symbolp (car n)) 
(setq (car n) 3) 
(let ((n ...)) (setq (car n) 3)) 
eval-buffer(#<buffer *load*<2>> nil "/home/tjackson/.emacs.tjackson.el" nil t) ; Reading at buffer position 161460 
load-with-code-conversion("/home/tjackson/.emacs.tjackson.el" "/home/tjackson/.emacs.tjackson.el" nil nil) 
load("/home/tjackson/.emacs.tjackson.el") 
(let ((debug-on-error t)) (load user-init-file)) 
(if init-file-debug (let (...) (load user-init-file)) (error (format "Problems while loading the file %s: %s" user-init-file ...))) 
(condition-case err (load user-init-file) (error (if init-file-debug ... ...))) 
(if (file-exists-p user-init-file) (condition-case err (load user-init-file) (error ...))) 
eval-buffer(#<buffer *load*> nil "/home/tjackson/.emacs" nil t) ; Reading at buffer position 12150 
load-with-code-conversion("/home/tjackson/.emacs" "/home/tjackson/.emacs" t t) 
load("~/.emacs" t t) 
#[nil "....."] 
command-line() 
normal-top-level() 

Y eso generalmente puede indicarle lo que podría estar mal. En mi caso anterior, estoy usando setq incorrectamente, y parece que está dentro de una declaración let, que está dentro del archivo /home/tjackson/.emacs.tjackson.el. Una búsqueda rápida en ese archivo me lleva al error y puedo solucionarlo.

+1

Nick dijo que abre el búfer de scratch EN LA PARTE SUPERIOR DEL ARCHIVO (énfasis mío) lo que significa para mí que está llamando a emacs con "emacs foo" y en ese caso, foo debería aparecer encima de * scratch *. scratch estará allí, pero foo debería ser el buffer que se muestra ... –

+0

@Brian Gracias, he actualizado la respuesta para reflejar su interpretación (lo cual suena razonable). –

1

Si desea restablecer la configuración de emacs, puede cambiar el nombre de su archivo .emacs actual por otra cosa para tener una copia de seguridad, y luego reiniciar Emacs.

4
M-x customize-group 
initialization 

Luego, el búfer de elección inicial, puede seleccionar entre:

  • pantalla de inicio
  • Directorio
  • Archivo
  • buffer de cero

Por último, haga clic en guardar para sesiones futuras.

También puede activarlo/desactivarlo. Ver si esto puede ayudar.

(La otra cosa que probablemente quiera hacer es abrir solo un búfer al inicio. No recuerdo de memoria cómo se hace esto. Publicaré una actualización si lo encuentro).

1

Mi carpeta ~/.emacs.d era propiedad de root con privilegios restrictivos r/w/x, por lo que no pude acceder como usuario no root.

Asegúrese de que su usuario actual tenga privilegios de lectura para los archivos/directorios de configuración de emacs.

que esto esté arreglado para mí:

sudo chown -R user:group ~/.emacs.d/ 

Los -R obras de forma recursiva en el directorio.

0

Eliminé mi directorio ~/.emacs.d y eso me solucionó la situación.

Cuestiones relacionadas