我目前使用emacs ESS,最近同意使用一个使用2个空格缩进的内部样式指南。我将以下内容添加到我的.emacs文件中:
(defun myindent-ess-hook ()
(setq ess-indent-level 2)
)
(add-hook 'ess-mode-hook 'myindent-ess-hook)
一切都很顺利。当我定义一个新函数时,它会很好地缩进2个空格。另外,当我调用一个函数并将调用分成多行时,间距也很好地缩进了2个空格:
x <- function(){
mean(
c(2,3)
)
}
但是,如果我使用::来限制mean函数,那么缩进就会搞乱:
x <- function(){
base::mean(
c(2,3)
)
}
我的猜测是,这与尾随的空白区域有关,但即使在通过以下方式跟踪空白之后:
(defun myindent-ess-hook ()
(setq ess-indent-level 2)
(setq ess-nuke-trailing-whitespace t)
)
(add-hook 'ess-mode-hook 'myindent-ess-hook)
问题仍然存在 - 以前有人遇到过这个问题吗?
答案 0 :(得分:0)
我在黑暗中刺伤,可能适用于您发布的示例,但您可能不喜欢其他情况下的效果。有关更多选项,请参阅describe-variable
上的ess-offset-arguments-newline
(默认值:prev-call
),然后尝试:
(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)