2010-06-11 12 views
8

Ni siquiera estoy seguro de que sea un comando anterior o un comando no terminado o lo que sea, pero sí sé que realmente no me gusta.¿Cómo puedo evitar que el mini-buffer muestre comandos previos en Emacs?

Mi problema es que algunos comandos (o mensajes, o lo que sea) se atascan en el mini-buffer para que cuando escribo un nuevo comando aparece realmente rápido, y luego el mini-buffer vuelve al comando obstinado . Parece que se eligen algunos comandos, y después de usar muchos comandos, algo más se queda atascado allí, pero siempre se muestra algo que no quiero ver. Traté de escribir C-g muchas veces para ver si saldría, pero eso no funciona.

Esta es una imagen de lo que tengo ahora:

alt text

No importa lo que hago, que poco

Etiqueta: HL-line

No se ira. Se deja momentáneamente cuando se escribe un nuevo comando, pero regresa. No me gusta, es confuso, y preferiría ver allí el último comando usado.

Revisé las opciones de personalización para el mini-buffer (la parte inferior se puede ver en mi imagen), pero no encontré nada que pareciera ser lo que estaba buscando.

¿Alguna idea?

+2

Estás en (dos niveles de) edición recursiva, como puede verse por el [[..]] alrededor de los paréntesis que rodean los nombres de modo. Puede abortar la edición recursiva usando 'C-]'. Consulte http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Recursive%20Edit para obtener más información. –

Respuesta

10

El mini-buffer ha perdido el enfoque. Pruebe C-x o (Control + x o) para recuperar el enfoque. Para cancelar el comando, presione C-g cuando tenga el foco en el mini-buffer.

+0

Oh, ¿entonces fue como un comando sin terminar? Hice el C-x o y tuve que terminar todo ese flujo de comandos (para insertar un entorno en látex, poner etiqueta, posición, etc.) para que desapareciera. ¡Gracias por eso! – Vivi

14

Lo más probable es que te estés metiendo en la situación porque comenzaste un comando y usaste el mouse para seleccionar algo en una ventana diferente. Si ese es el caso, puede hacer que Emacs aborte automáticamente el comando cuando realiza dicha acción.

Este es el código que le agregue a su .emacs:

(defun stop-using-minibuffer() 
    "kill the minibuffer" 
    (when (and (>= (recursion-depth) 1) (active-minibuffer-window)) 
    (abort-recursive-edit))) 

(add-hook 'mouse-leave-buffer-hook 'stop-using-minibuffer) 

Nota: Cogí esto de mi blog post on the topic.

Y también hay una pregunta de superusuario que resuelve este problema, y ​​mi respuesta allí proporciona un comando para jump back to the minibuffer.

+0

Es muy posible que lo haya hecho ... Aunque intento no usar el mouse, espero que este comando sea redundante pronto. ¿Esto sucede cuando uso ** C-x b ** también? Por cierto, prefiero el código que pones en la respuesta a una pregunta del superusuario y se vincula en un comentario a tu publicación del blog :) (el que da un enlace de clave para ir a la ventana del minibúfer activo) – Vivi

+0

@Vivi Ahhh .. . correcto la respuesta SU. No estoy tan feliz de cómo SO y SU dividen las preguntas de Emacs. Voy a vincular ese también en esta respuesta. –

+1

Esto puede suceder si inicia un comando y obtiene una condición de error. El truco para enfocar en el mini-buffer y luego Ctrl-G para abortar lo arreglará. –

Cuestiones relacionadas