2009-07-10 9 views
6

¿Hay algún modo de emacs utilizable para Rscript?¿Hay un modo Emacs para Rscript?

(Rscript es el front-end de la escritura para la lengua R.)

Si escribo esto:

#!/usr/bin/Rscript 
print(commandArgs(TRUE)) 

y hacer indent en el modo R ESS que sangra la primera línea como locos , ya que lo ve como un comentario:

      #!/usr/bin/Rscript 
print(commandArgs(TRUE)) 

Respuesta

1

no hay, pero puede forzar su RSCRIPT en el modo de edición de R al hacer la segunda línea del archivo se ve así: (. Más información here)

# -*- mode: R -*- 

+2

Además, si los finaliza .R (mi elección para los archivos R normales) o .r (mi elección para los scripts más pequeños o Rscript ') el modo tiende a asignarse automáticamente a. –

0

Trate shell-script-mode - con un poco notes on customized indentation

Sancionó su código muy bien, para mí.

+0

¿Alguna razón para el voto negativo? Como dije, lo que conecté para corregir la mala sangría de la que OP se quejaba; si esto no es útil, ignóralo. Si es incorrecto o perjudicial, vote a la baja, pero haga que todos tengan la cortesía de explicar POR QUÉ está mal. –

2

A partir de versión 5.9, ESS reconocerá las secuencias de comandos utilizando el intérprete Rscript o liteter; ver http://ess.r-project.org/Manual/ess.html#New-features.

Como referencia, para asignar un modo a un intérprete, use la variable interpreter-mode-alist. Por ejemplo,

(add-to-list 'interpreter-mode-alist '("Rscript" . r-mode)) 

Cualquier archivo con una primera línea como "#!/Usr/bin/RSCRIPT" será reconocido como R-mode.

0

Si solo quiere comentar una línea, use "##" en lugar de "#". Double # pondrá la línea en la posición correcta.

+1

Es cierto, y es útil saberlo. Sin embargo, en este caso, se requiere que la primera línea comience con '#!' Para decirle al shell qué tipo de script es. – Aaron