Emacs ESS Mode - Tabbing for Comment Region
Use '###' if you don't want the comments indented. According to the manual,
By default, comments beginning with ‘###’ are aligned to the beginning of the line. Comments beginning with ‘##’ are aligned to the current level of indentation for the block containing the comment. Finally, comments beginning with ‘#’ are aligned to a column on the right (the 40th column by default, but this value is controlled by the variable comment-column,) or just after the expression on the line containing the comment if it extends beyond the indentation column.
Setting ess-indent-with-fancy-comments
to nil will remove the weird single-#
indentation, but it must be set either buffer-locally in a hook (as in Rob's answer), OR before ESS is loaded:
(setq ess-indent-with-fancy-comments nil)(require 'ess)
Other ways to make sure it is set before ESS is loaded, is to set it in M-x configure
, or to set it in the :init
section of use-package
.
What's going on is that ESS defines styles at initialization in ess-style-alist
, and then applies the default style in every buffer. So to make sure these styles respect ess-indent-with-fancy-comment
, you must make sure to set it before the styles are defined.