我正在为 Emacs 使用 Emacs-Speaks-Statistics (ESS) 模式。编辑 R 代码时,当我在其上方创建新行时,任何注释行(以 # 开头的注释行)都会自动在最右边添加标签。我应该如何更改我的 .emacs.el 文件来解决这个问题?
例如,我有:
# Comment
现在,将光标放在行首并按 Enter 后,我得到:
# Comment
感谢您的任何提示。
如果您不想缩进注释,请使用“###”。根据手册,
默认情况下,以“###”开头的注释与行首对齐。以“##”开头的注释与包含该注释的块的当前缩进级别对齐。最后,以 '#' 开头的注释与右侧的列对齐(默认情况下为第 40 列,但此值由变量comment-column 控制)或在包含注释的行上的表达式之后(如果它扩展)超出缩进列。
任何一个
(setq ess-fancy-comments nil)
如果你不想缩进单个#
评论,或者
(add-hook 'ess-mode-hook
(lambda ()
(local-set-key (kbd "RET") 'newline)))
如果您想更改 Enter 的行为,使其不缩进。
设置ess-indent-with-fancy-comments
为 nil 将删除奇怪的单#
缩进,但它必须在一个钩子中本地设置缓冲区(如 Rob 的回答),或者在加载 ESS 之前:
(setq ess-indent-with-fancy-comments nil)
(require 'ess)
确保在加载 ESS 之前设置它的其他方法是将其设置在 中M-x configure
,或将其设置:init
在use-package
.
发生的事情是 ESS 在初始化时定义样式ess-style-alist
,然后在每个缓冲区中应用默认样式。因此,为了确保这些样式尊重ess-indent-with-fancy-comment
,您必须确保在定义样式之前对其进行设置。
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)