首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作用域R函数的Emacs ESS缩进

作用域R函数的Emacs ESS缩进
EN

Stack Overflow用户
提问于 2017-12-19 23:41:14
回答 1查看 250关注 0票数 0

我目前使用的是emacs ESS,最近同意使用一个使用2个空格缩进的内部样式指南。我在.emacs文件中添加了以下内容:

代码语言:javascript
复制
(defun myindent-ess-hook ()
  (setq ess-indent-level 2)
)
(add-hook 'ess-mode-hook 'myindent-ess-hook)

一切都进行得很顺利。当我定义一个新函数时,它会很好地缩进2个空格。此外,当我调用一个函数并将调用分成多行时,空格也被很好地缩进了两个空格:

代码语言:javascript
复制
x <- function(){
  mean(
    c(2,3)
  )      
}

但是,如果我用::来限定mean函数的范围,缩进就会变得混乱:

代码语言:javascript
复制
x <- function(){
  base::mean(
          c(2,3)
        )
}

我猜测这与尾随空格有关,但即使在but尾随空格之后:

代码语言:javascript
复制
(defun myindent-ess-hook ()
  (setq ess-indent-level 2)
  (setq ess-nuke-trailing-whitespace t)
)
(add-hook 'ess-mode-hook 'myindent-ess-hook)

问题仍然存在-以前有人遇到过这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-16 18:27:17

我在黑暗中的刺刀,可能对你发布的例子有效,但你可能不喜欢其他情况下的效果。有关更多选项,请参阅ess-offset-arguments-newline上的describe-variable (默认值:prev-call),然后尝试:

代码语言:javascript
复制
(defun myindent-ess-hook ()
  (setq ess-indent-level 2)
  (setq ess-offset-arguments-newline '(prev-line 2))
)
(add-hook 'ess-mode-hook 'myindent-ess-hook)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47890433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档