【问题标题】:Is there an Emacs mode for Rscript?Rscript 有 Emacs 模式吗?
【发布时间】:2010-11-09 14:33:13
【问题描述】:

Rscript 有没有可用的 emacs 模式?

RscriptR 语言的脚本前端。)

如果我输入这个:

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

并在ESS R 模式下执行indent,它会疯狂缩进第一行,因为它会将其视为注释:

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

【问题讨论】:

    标签: emacs r ess


    【解决方案1】:

    试试shell-script-mode - 一些notes on customized indentation

    它缩进你的代码就好了,对我来说。

    【讨论】:

    • 路过投反对票有什么原因吗?正如我所说,我所链接的内容纠正了 OP 抱怨的不良缩进;如果这没有帮助,请忽略。如果错误或有害,请投反对票 - 但请大家礼貌地解释为什么它是错误的。
    【解决方案2】:

    没有,但您可以通过使文件的第二行如下所示来强制您的 Rscript 进入 R 编辑模式:

    # -*- mode: R -*-
    

    (更多信息here。)

    【讨论】:

    • 另外,如果你结束它们 .R(我对普通 R 文件的选择)或 .r(我对 littler 或 Rscript 'scripts'的选择),模式往往会自动分配给。
    【解决方案3】:

    从 5.9 版开始,ESS 将使用 Rscript 或 litter 解释器识别脚本;见http://ess.r-project.org/Manual/ess.html#New-features

    作为参考,要将模式分配给解释器,请使用interpreter-mode-alist 变量。例如,

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

    任何第一行如“#!/usr/bin/Rscript”的文件都将被识别为 r-mode。

    【讨论】:

      【解决方案4】:

      如果您只想注释掉一行,请使用“##”而不是“#”。 Double # 会将线放在正确的位置。

      【讨论】:

      • 是的,知道的很有用。但是,在这种情况下,第一行需要以#! 开头,以告诉shell 它是什么类型的脚本。
      猜你喜欢
      • 1970-01-01
      • 2014-09-28
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多