tutorial smart remix programador online español curso r emacs ess

smart - ¿Cómo puedo hacer un fondo del proceso R en ESS/Emacs?



smart contracts ethereum (3)

ESS ejecuta R como proceso asíncrono. No necesitas poner fondo a nada. Puede ejecutar su código durante horas y seguir trabajando en ESS sin interrupciones.

Tu problema parece ser otra cosa. Cuando ejecuta su script, lo hace "visiblemente", es decir, su código ejecutado se imprime en el terminal. Esto causa que Emacs se congele.

Establezca ess-eval-visibly en cero y se enviarán instantáneamente grandes porciones de código a R:

(setq ess-eval-visibly nil)

Aclamaciones.

[actualizar]

Hay una nueva configuración para ess-eval-visibply en versiones recientes de ESS: ''nowait. Coloca su código en un búfer inferior y luego lo envía al subproceso. De esta manera, puede ver su código y toda la salida sin esperar a que finalice el subproceso.

[/actualizar]

A menudo corro largas secuencias de comandos R cuando inicio mi entorno R. Me gustaría poder cargar / ejecutar el script R en Emacs / ESS y continuar el trabajo en otro búfer.

Cuando presiono Cg o Cc Cc, el proceso se interrumpe y debo reiniciar el script.

¿Cuál es la mejor manera de desarrollar el proceso R en ESS / Emacs?

EDIT: Gracias por sus respuestas y comentarios, pero ninguno de ellos aborda el hecho de que Emacs se congela cuando carga / ejecuta un script grande y no puede cambiar el búfer.

Supongo que mi pregunta es un poco más general: ¿puede Emacs crear un proceso que le permita seguir trabajando?


En mi experiencia personal, ESS no es muy bueno para manejar scripts muy grandes, ya que a veces el resto de Emacs se vuelve inutilizable. Tal vez sea mejor hacer el desarrollo en ESS y luego ejecutar el script completo en el modo BATCH.


Mx R iniciará una sesión R (el nombre del búfer predeterminado es *R* ). Si presiona Mx R nuevamente, se iniciará una segunda sesión R (con el nombre del búfer *R:2* ).

Cada sesión tiene su propio proceso R, por lo que puede ejecutar un largo script R en uno y seguir utilizando el otro de forma independiente.

Al presionar Cx Cb aparece la lista de búferes, que le permitiría cambiar entre sesiones R

O, si pones

(global-set-key "/C-cr" ''ess-request-a-process)

en su archivo de inicialización .emacs , luego, cada vez que presione Cc r se le preguntará a qué sesión R (búfer) desea cambiar. Si solo tienes una sesión, cambiará allí automáticamente.