Tengo algunos problemas con el timón, por lo que me he debug-on-error
esforzado por localizar el problema. Ahora, cuando se produce el problema, el *Backtrace*
búfer aparece como se esperaba, pero todavía estoy en uno de los modos principales de timón y no puedo navegar por el búfer de seguimiento y depurar normalmente.
El modo principal todavía está usando el minibúfer, y también parece estar "robando" mis secuencias clave y evitando que me depure. Cuando salgo de helm-mulit-occur
en progreso, el búfer de traza inversa se borra y no puedo continuar con la depuración.
¿Hay alguna manera de "pausar" un modo principal mientras se mantiene el depurador elisp en funcionamiento para que pueda depurarlo normalmente?
debug-on-entry
enhelm
(debug-on-error no se activaría ya que no había errores) y todavía puedo depurar.helm-multi-occur
y el error específico que está ocurriendo algún tiempo después de que el timón se ejecuta correctamente eshelm-interpret-value: Symbol must be a function or a variable
.other-window
no hace nada en este modo, y el minibúfer parece tener siempre el foco.C-h m
está asignado al comando,helm-help
pero la ejecución manualdescribe-mode
me dice que estoy dentrominibuffer-inactive-mode
.Respuestas:
El comando
helm-toggle-suspend-update
está vinculadoC-!
por defecto. No cierra el timón ni finaliza la actualización recursiva, pero temporalmente hace que el modo de timón sea mucho menos "invasivo". Suspender las actualizaciones evitará que el timón "robe" toda la entrada del teclado y el mouse, lo que puede permitirle depurar el proceso del timón en otra ventana.fuente
No es posible "pausar" un modo principal, pero como se sugiere en los comentarios a sus preguntas, debería ser posible alejarse del búfer que activó el error y al búfer de retroceso. Si el modo del búfer donde ocurrió el error anula los enlaces globales normales para moverse a otro búfer, entonces agregar la clave explícitamente a su mapa de teclas podría devolverle la capacidad de seleccionar otro búfer.
Sin embargo, también es posible que el modo lea la entrada del usuario de una manera más elegante, lo que hace que sea imposible alejarse. En el caso de un modo / búfer de finalización como
helm
ese podría tener sentido.Sin embargo, es posible que pueda simplemente abandonar
helm
y luego ir a*Backtrace*
. El búfer ya no se mostrará en una ventana, pero aún debe existir y contener la última traza inversa. Usted menciona que el "búfer de traza inversa se borra"; ¿El búfer simplemente desaparece o su contenido se borra realmente? En el último caso, es posible que desee abrir un problema en elhelm
repositorio, ya que esto podría considerarse un error.fuente
M-x other-window
directamente, pero ninguno de estos me permitirá desviar la atención del minibúfer de finalización del timón. Cuando aparece por primera vez el búfer de rastreo, es la ventana activa, pero casi cualquier pulsación de tecla es "robada" por el timón y me devuelve al modo de finalización. Cuando salgo de timón conC-g
el búfer de retroceso se borra, sin información de deshacer.(elisp)Recursive Editing
. Tiene sentido para un paquete comohelm
pero también significa que dejar de fumarhelm
(al invocar regularmente un comando o abortar en su caso) volverá al nivel anterior, lo que hace que se retroceda para perder el nivel actual Así que estabas completamente en el camino correcto. Quizás Helm ya ofrece una solución a esto, revisa sus preguntas frecuentes, de lo contrario, abre un problema.M-x fundamental-mode
También podría funcionar, aunque también es posible que esto cambie el modo en el búfer incorrecto.