54

我正在为 Emacs 使用 Emacs-Speaks-Statistics (ESS) 模式。编辑 R 代码时,当我在其上方创建新行时,任何注释行(以 # 开头的注释行)都会自动在最右边添加标签。我应该如何更改我的 .emacs.el 文件来解决这个问题?

例如,我有:

# Comment

现在,将光标放在行首并按 Enter 后,我得到:

                                # Comment

感谢您的任何提示。

4

4 回答 4

68

如果您不想缩进注释,请使用“###”。根据手册

默认情况下,以“###”开头的注释与行首对齐。以“##”开头的注释与包含该注释的块的当前缩进级别对齐。最后,以 '#' 开头的注释与右侧的列对齐(默认情况下为第 40 列,但此值由变量comment-column 控制)或在包含注释的行上的表达式之后(如果它扩展)超出缩进列。

于 2009-04-23T10:51:09.503 回答
34

任何一个

(setq ess-fancy-comments nil)

如果你不想缩进单个#评论,或者

(add-hook 'ess-mode-hook 
          (lambda () 
            (local-set-key (kbd "RET") 'newline)))

如果您想更改 Enter 的行为,使其不缩进。

于 2009-04-23T09:20:56.240 回答
5

设置ess-indent-with-fancy-comments为 nil 将删除奇怪的单#缩进,但它必须在一个钩子中本地设置缓冲区(如 Rob 的回答),或者在加载 ESS 之前:

(setq ess-indent-with-fancy-comments nil)
(require 'ess)

确保在加载 ESS 之前设置它的其他方法是将其设置在 中M-x configure,或将其设置:inituse-package.

发生的事情是 ESS 在初始化时定义样式ess-style-alist,然后在每个缓冲区中应用默认样式。因此,为了确保这些样式尊重ess-indent-with-fancy-comment,您必须确保在定义样式之前对其进行设置。

于 2018-11-24T13:53:06.637 回答
3

Jouni 的回答对我不起作用。但我在这里找到了一种方法: https ://stat.ethz.ch/pipermail/ess-help/2016-May/010970.html

   (defun my-ess-settings ()
     (setq ess-indent-with-fancy-comments nil))
   (add-hook 'ess-mode-hook #'my-ess-settings)
于 2017-10-19T05:00:16.437 回答