De vez en cuando empiezo a abrir un archivo, y antes de seleccionar el archivo, por alguna razón, lo ejecuto C-x oantes de responder el mensaje. Luego, cada vez que intento ejecutar de find-filenuevo, se queja de que Command intentó usar minibúfer mientras estaba en minibúfer . Sin embargo, si uso un comando como isearch-forward-regexp, (incluso si ya está en una find-filesolicitud), el error no se produce y no puedo volver a usar el minibúfer other-window.
¿Por qué algunas indicaciones actualizan temporalmente el minibúfer para que other-windowconsidere que el minibúfer sea un posible objetivo, y otras no?
Solo para aclarar, no estoy preguntando cómo despegarse.
Originalmente, cuando me encontraba con esto, cambiaba al minibúfer y hacía Esc Esc Esco C-gpara escapar del indicador, de modo que pudiera iniciar un nuevo comando que usara el minibúfer. Sin embargo, al reflexionar sobre esta pregunta, me di cuenta de que abort-recursive-edit( C-]) cerrará este minibúfer en progreso sin tener que hacer other-window+ keyboard-quit.
Aún así, no estoy muy seguro de para qué sirve el caso de uso original. Tal vez, ¿está destinado a ayudar a copiar el pegado en un indicador de minibúfer, o para ayudar a ejecutar un comando en el medio de una macro?
Lo que sí quiero saber es si hay una manera de deshabilitar esta recursividad de la forma en que está isearch. ¿Es isearchseguro porque usa read-event en lugar de un aviso de bloqueo? ¿Hay un gancho para disparar abort-recursive-edital salir del minibúfer?
TL; DR
- ¿Por qué algunos comandos del minibúfer actualizan el minibúfer a un destino
other-windowy bloquean la ejecución de nuevos comandos del minibúfer, mientras que otrosisearchno lo hacen? - ¿Hay alguna manera de desactivar esto?
- ¿Cuál es el caso de uso previsto de esta característica?
fuente

C-]aborta un nivel de minibúfer, sí. Isearch no usa el minibúfer. ¿Y qué tiene que ver " atrapado en el aviso " con el resto de lo que usted describe? No debería necesitar usarswitch-windownada, en tales contextos. Pero no está claro lo que está tratando de hacer. Intente separar las diversas piezas de su descripción e intente formular una sola pregunta.enable-recursive-minibuffersparatevitar que el Comando intente usar minibúfer mientras está en el mensaje minibúfer . Podría ayudar a aclarar la pregunta original, si la publicó porrecursive-editseparado.Respuestas:
find-fileEs uno de esos comandos. La lectura de la entrada del minibúfer "activa" la ventana del minibúfer, por lo que puede cambiar a ella con elother-windowcomando. Interactivoisearches especial porque se implementa como un modo menor. Técnicamente, no lee su cadena de búsqueda del minibúfer, sino que captura sus pulsaciones de teclas a medida que escribe y las repite en el minibúfermessage. Por eso ves que teother-windowcomportas de manera diferente.find-fileal modificar la función almacenada enread-file-name-function. No he intentado aconsejar la función basada en la respuesta de @ kaushalmodi, pero si eso funciona, actualizaré esto.fuente
El siguiente fragmento [ Fuente ] cancela la edición recursiva cuando el foco se aleja del minibúfer. Esto es para evitar las ocasiones irritantes en las que
C-gpresionar repetidamente no edita el minibúfer cuando el foco del cursor se ha salido de él.fuente
Drew ya ha comentado sobre esto, pero ...
isearch1 en realidad no usa el minibúfer, que probablemente explica parte de su confusión. Muestra cosas en el área de eco (que está en la misma ventana que el minibúfer, pero en realidad no es el minibúfer).Siendo ese el caso, la noción de cambiar hacia y desde el minibúfer mientras se ejecuta una búsqueda no tiene ningún sentido.
1 comandos Ignorar como
isearch-edit-stringla que hacen uso de la minibuffer, pero no forman parte de la más básica isearch flujo de trabajo.fuente