【问题标题】:changing indentation in emacs ess [closed]在 emacs ess 中更改缩进 [关闭]
【发布时间】:2012-09-30 03:06:00
【问题描述】:

我想知道如何更改 emacs ess 中的缩进。 我一般喜欢默认的(ess-set-style 'C++'quiet) 但有时它的格式真的很奇怪。例如,这是我想要的,如果它不是函数的一部分,这将是默认格式:

  ggplot(data = overtime.by.month,
         aes(x="",
             y=Percent,
             fill = Overtime)) +
  geom_bar(width = 1) +
  xlab('') +
  ylab(sub.txt) +
  labs(title = title.txt) +
  facet_wrap(~Year.Month) +
  geom_text(aes(y = txt.pos, label = Per.txt)) +
  coord_polar(theta = "y") +
  scale_fill_manual(values = c('green', 'red')) +
  theme(axis.ticks = element_blank(),
        axis.text.y = element_blank(),
        axis.text.x = element_blank())

如果我把它放在函数内部,这就是我用当前的缩进样式得到的。

a <- function(){

    a <- ggplot(data = overtime.by.month,
                aes(x="",
                    y=Percent,
                    fill = Overtime)) +
                        geom_bar(width = 1) +
                            xlab('') +
                                ylab(sub.txt) +
                                    labs(title = title.txt) +
                                        facet_wrap(~Year.Month) +
                                            geom_text(aes(y = txt.pos, label = Per.txt)) +
                                                coord_polar(theta = "y") +
                                                    scale_fill_manual(values = c('green', 'red')) +
                                                        theme(axis.ticks = element_blank(),
                                                              axis.text.y = element_blank(),
                                                              axis.text.x = element_blank())
}

更新:我遵循了 VitoshKa 和 Dirk 的建议,重新安装后,更新 .emacs 问题就消失了。谢谢各位

UPDATE2:问题又回来了。我认为现在它对所有人都可以重现。我试图在两台不同的机器上。当您将代码放入函数中时会发生这种情况。我更新了帖子以反映更改。

【问题讨论】:

标签: r emacs ess


【解决方案1】:

我也没有看到您的问题。尝试更新,它可能是一个老错误。

在任何情况下,C-c C-e s 允许您动态更改缩进样式。推荐的是RRR。

【讨论】:

    【解决方案2】:

    我明白了

    ggplot(data = overtime.by.month,
           aes(x="",
               y=Percent,
               fill = Overtime)) +
        geom_bar(width = 1) +
        xlab('') +
        ylab(sub.txt) +
        labs(title = title.txt) +
        facet_wrap(~Year.Month) +
        geom_text(aes(y = txt.pos, label = Per.txt)) +
        coord_polar(theta = "y") +
        scale_fill_manual(values = c('green', 'red')) +
        theme(axis.ticks = element_blank(),
              axis.text.y = element_blank(),
              axis.text.x = element_blank())
    

    我直接使用 R 手册中的默认值。

    ;; R-internals manual
    ;;; ESS
    (add-hook 'ess-mode-hook
          (lambda ()
            (ess-set-style 'C++ 'quiet)
            ;; Because
            ;;                                 DEF GNU BSD K&R C++
            ;; ess-indent-level                  2   2   8   5   4
            ;; ess-continued-statement-offset    2   2   8   5   4
            ;; ess-brace-offset                  0   0  -8  -5  -4
            ;; ess-arg-function-offset           2   4   0   0   0
            ;; ess-expression-offset             4   2   8   5   4
            ;; ess-else-offset                   0   0   0   0   0
            ;; ess-close-brace-offset            0   0   0   0   0
            (add-hook 'local-write-file-hooks
                  (lambda ()
                (ess-nuke-trailing-whitespace)))))
    ;;(setq ess-nuke-trailing-whitespace-p 'ask)
    ;; or even
    (setq ess-nuke-trailing-whitespace-p t)
    ;; Perl
    (add-hook 'perl-mode-hook
          (lambda () (setq perl-indent-level 4)))
    

    您可以在评论中修改这些值。

    【讨论】:

    • Dirk,快速提问我将如何修改评论中的值?只是取消评论和更改?
    • 我一般,(setq some-variable new-value) 然后你想评估它,或者强制重启 Emacs。
    • Dirk,你能看看更新的帖子吗?
    • 我建议您与 ESS 邮件列表交谈(更详细;可重现的示例)。
    猜你喜欢
    • 2019-05-15
    • 2012-10-05
    • 2018-06-02
    • 2014-07-29
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多