%>% 后的 Emacs ESS 缩进

Emacs ESS indent after %>%

对于 R 代码,我当前的 emacs ESS 风格是 C++,这导致

worst <- flights_sml %>%
    group_by(year, month, day)

即continuation 在 %>% 之后缩进 4 个空格。我希望它是 2 个空格。

我该怎么做?

还不完全清楚你想要什么。如果在连续的语句中只需要 2 spaces,比如管道后面的语句,下面的语句应该可以工作

(setq ess-offset-continued '(straight 2))

因此,缩进仍将默认为 C++ 样式中设置的 4 spaces,例如。结果看起来像

worst <- flights_sml %>%
  group_by(year, month, day)

f <- function(x) {
    x
}  

否则,如果你总是想要 2 space 个偏移量

(setq ess-indent-offset 2)

您可以在模式挂钩中自定义这些变量,例如。

(defun my-R-hook ()
  (setq-local ess-style 'C++)
  (setq-local ess-offset-continued '(straight 2)))

有关详细信息,请参阅 ess-offset-continuedess-style-alist 的文档。