Rscript 有 Emacs 模式吗?
Posted
技术标签:
【中文标题】Rscript 有 Emacs 模式吗?【英文标题】:Is there an Emacs mode for Rscript? 【发布时间】:2010-11-09 14:33:13 【问题描述】:Rscript
有没有可用的 emacs 模式?
(Rscript
是R 语言的脚本前端。)
如果我输入这个:
#!/usr/bin/Rscript
print(commandArgs(TRUE))
并在ESS R 模式下执行indent
,它会疯狂缩进第一行,因为它会将其视为注释:
#!/usr/bin/Rscript
print(commandArgs(TRUE))
【问题讨论】:
【参考方案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 它是什么类型的脚本。以上是关于Rscript 有 Emacs 模式吗?的主要内容,如果未能解决你的问题,请参考以下文章