2009-07-10 18 views
6

Gibt es einen brauchbaren Emacs-Modus für Rscript?Gibt es einen Emacs-Modus für Rscript?

(Rscript ist das Skript Front-End für die R Sprache.)

Wenn ich diesen Typen:

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

und tue indent im ESS R-Modus es die erste Zeile wie verrückt einrückt , da sie es als Kommentar sieht:

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

Antwort

1

Es ist nicht, aber Sie können Ihre Rscript in R Editiermodus erzwingen, indem die zweite Zeile der Datei sehen wie folgt machen: (. Weitere Informationen here)

# -*- mode: R -*- 

+2

Auch, wenn Sie sie beenden. R (meine Wahl für normale R-Dateien) oder .r (meine Wahl für kleine oder Rscript 'Skripte') wird der Modus tendenziell automatisch zugewiesen. –

0

Versuchen shell-script-mode - mit einigen notes on customized indentation

Es eingerückt Ihren Code ganz gut, für mich.

+0

Irgendein Grund für die Drive-by-Down-Abstimmung? Wie ich schon sagte, korrigierte das, was ich verlinkte, den schlechten Einschnitt, über den sich das OP beschwerte; Wenn dies nicht hilfreich ist, bitte ignorieren. Wenn falsch oder schädlich, Downvote - aber jeder die Höflichkeit der Erklärung warum es falsch ist. –

2

Ab Version 5.9, ESS erkennt Skripte mit dem Rscript- oder Wurf-Interpreter; siehe http://ess.r-project.org/Manual/ess.html#New-features.

Als Referenz können Sie einem Interpreter einen Modus zuweisen, indem Sie die Variable interpreter-mode-alist verwenden. Zum Beispiel

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

Jede Datei mit einer ersten Zeile wie "#!/Usr/bin/Rscript" wird als r-Modus erkannt werden.

0

Wenn Sie nur eine Zeile auskommentieren möchten, verwenden Sie "##" anstelle von "#". Double # bringt die Linie an die richtige Position.

+1

Wahr, und eine nützliche Sache zu wissen. In diesem Fall muss die erste Zeile jedoch mit '#!' Beginnen, um der Shell mitzuteilen, um welche Art von Skript es sich handelt. – Aaron