Me preguntaba si alguien sabía de una buena manera de hacer que R o ESS dejaran de ejecutar el resto del código más allá del punto en el que ocurre un error si estoy evaluando una región o un buffer (I solo encontré la solicitud opuesta en los archivos de ayuda). Estaba buscando en los archivos de ayuda R pero option(error=stop)
solo detendrá la ejecución de la función o declaración ofensiva, pero no de los que la siguen. ¡Gracias!Forzar detención o detención por error
Respuesta
? Break
Solo lo saca del ciclo.
? Tratar
le permite configurar el código que podría fallar y con gracia recuperarse.
According to the ESS manual, esto debería funcionar: C-c C-c
(comint-interrupción-subtrabajo) envía una señal Control-C
al proceso de ESS. Esto tiene el efecto de abortar el comando actual.
John Fox tiene un sitio web donde ofrece una configuración para ESS. En ella, él tiene esta función:
(defun stop-R()
"Interrupt R process in lower window."
(interactive)
(select-window win2)
(comint-interrupt-subjob)
(select-window win1))
Usted debe ser capaz de añadir esta función para el menú en XEmacs usando:
(defun R-menu()
"Hook to install R menu and sub-menus"
(add-menu-item '("ESS" "R") "Interrupt computation" 'stop-R
)
)
(add-hook 'ess-mode-hook 'R-menu)
debes revisar el resto de su archivo de configuración y documentación para mira si te interesa. No he intentado esto todavía, ¡pero espero que te funcione!
Charlie
Gracias Charlie - Estoy familiarizado con Cc Cc pero esto es de forma manual deteniendo un proceso en progreso, independientemente de los errores (tal como lo entiendo). Puedo buscar la modificación de eval-region o eval-buffer para llamar a esta función cuando se produce un error ... – hatmatrix
Si R/ESS está acaparando tanto tiempo de cómputo que sus emacs/ESS ésta no responde a C-C C-C, también se puede ahorrar mediante el envío de una señal de interrupción de la terminal.
Primero: descubra el ID de proceso R usando top
o ps
. (La mía era 98490 continuación: kill -2 98490
que envía una señal de interrupción y se obtiene el ESS/Emacs y R sesión posterior
- 1. shell script de error de detención
- 2. Detención en curso CAKeyframeAnimation
- 3. Servicios de inicio/detención usando JNA
- 4. Burbujeo de eventos y Propagación de detención
- 5. Eclipse: código de detención de ejecución (java)
- 6. Detención de un servicio de Ruby distribuido
- 7. Inicio y detención de Firefox desde C#
- 8. Detención de un servicio de intención
- 9. Wix: detención de un servicio de Windows en la desinstalación
- 10. Servicio de detención/inicio en el código en Windows 7
- 11. Detención del motor de Rhino en medio de la ejecución
- 12. Detención y montaje en línea de GCC (Linux)
- 13. Detención de tareas ejecutables Handler al destruir la actividad
- 14. Detención de una TcpListener después de llamar BeginAcceptTcpClient
- 15. rendimiento de pitón y la detención en un ciclo?
- 16. Detención/depuración de tareas periódicas en Django-Apio
- 17. Manejo del evento de detención/recarga del contenedor
- 18. ¿Dónde ver los registros de inicio/detención de SQL Server?
- 19. SciPy error de tiempo de ejecución de curve_fit, detención de la iteración
- 20. Detectar error XHR realmente se debe a la detención del navegador o hacer clic en la página nueva
- 21. ¿Por qué mostrar un UserForm como ejecución modal de código de detención?
- 22. ¿Cómo se reinicia el servicio de WhatsApp incluso si fuerzo la detención de la aplicación?
- 23. No se puede pasar automáticamente al servidor. no se puede determinar una ubicación de detención
- 24. ¿Puedo configurar palabras de detención programáticamente con la búsqueda de texto completo de PostgreSQL?
- 25. No se puede crear una lista de detención en SQl 2008
- 26. Aplicación de detención de fuerza: ¿también cancela las alarmas que configuró?
- 27. Embarcadero: la detención programada causa "1 subproceso no se pudo detener"
- 28. ¿Es más fácil resolver el problema de detención de lo que la gente piensa?
- 29. Botón de detención de control de audio HTML5 (en lugar de pausa)
- 30. Detención de trabajo de Jenkins en caso de que se inicie uno más nuevo
Gracias, pero cuando se trabaja de forma interactiva que no quieren poner la línea o región en la prueba() o tryCatch() cada vez, pero supongo que técnicamente lo haría ... – hatmatrix
Hola lisiado. ¿Encontraste una solución para tu problema mientras tanto? – giordano