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