我正在为Emacs使用Emacs-Speaks-Statistics(ESS)模式。编辑R代码时,任何注释行(以#开头的那些注释行)会在我上面创建一个新行时自动获得最右边的选项卡。我应该如何更改我的.emacs.el文件来修复此问题?
例如,我有:
# Comment
现在,在将光标放在行的开头并按Enter后,我得到:
# Comment
感谢任何提示。
答案 0 :(得分:62)
如果您不想缩进评论,请使用'###'。根据{{3}},
默认情况下,评论以。开头 '###'与开头对齐 这条线。以“##”开头的评论 与当前的水平保持一致 包含块的缩进 评论。最后,评论 以'#'开头的对齐a 右栏(第40栏 默认情况下,但此值为 由变量控制 评论列,)或刚刚之后 表达式包含的行 评论是否超出了 缩进栏。
答案 1 :(得分:31)
无论
(setq ess-fancy-comments nil)
如果您从不想缩进单个#
评论或
(add-hook 'ess-mode-hook
(lambda ()
(local-set-key (kbd "RET") 'newline)))
如果你想改变Enter的行为,那么它不会缩进。
答案 2 :(得分:2)
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)
答案 3 :(得分:2)
将ess-indent-with-fancy-comments
设置为nil将删除奇怪的单#
缩进,但是必须在钩子中局部于缓冲区设置(如Rob的回答),或者在加载ESS之前设置:< / p>
(setq ess-indent-with-fancy-comments nil)
(require 'ess)
确保在加载ESS之前对其进行设置的其他方法是在M-x configure
中进行设置,或在:init
的{{1}}部分进行设置。
正在发生的事情是ESS在use-package
中初始化时定义了样式,然后在每个缓冲区中应用了默认样式。因此,要确保这些样式遵守ess-style-alist
,必须确保在定义样式之前进行设置。