gpt4 book ai didi

emacs - Emacs 中注释的错误缩进

转载 作者:行者123 更新时间:2023-12-04 01:00:18 25 4
gpt4 key购买 nike

在许多语言中,行注释以单个符号开头,例如 Python 和 R 中的 #。

我发现在 Emacs 中,在编写此类行注释时,我必须重复两次注释符号才能进行正确的缩进。

请参阅以下示例:

(setq x-select-enable-clipboard t)
;using a single comment symbol indents wrongly
;; repeating the comment symbol indents fine
(setq-default c-basic-offset 4)

带单;在行首无法获得正确的缩进。如何获得正确的设置?谢谢!

编辑:

我自己找到了解决方案。在 ESS 的文档中:

Comments are also handled specially by ESS, using an idea borrowed from the Emacs-Lisp indentation style. 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. You turn off the default behavior by adding the line (setq ess-fancy-comments nil) to your .emacs file.



所以我把它放在我的 .emacs 中:
(setq ess-fancy-comments nil) ; this is for ESS

我认为对于 Python 模式,它有一个类似的变量。

最佳答案

主要模式应该妥善处理这一点。如果没有,请考虑向维护人员提交增强请求或错误报告。当然,“适当”可能在旁观者的眼中。但是,您可以尝试公开您的偏好。并检查主模式代码是否已经有用户选项。

除此之外,作为变量 的值的函数comment-indent-function 管辖这个。通常,这是由主模式设置的。您可以将其设置为您想要的任何功能(例如,在模式 Hook 上,以便您的定义覆盖主模式代码提供的功能)。

它不接受任何参数,并返回您希望注释缩进的列。

下面是将注释缩进第 0 列的代码,例如:

(defun foo () (setq comment-indent-function (lambda () 0)))
(add-hook 'SOME-MODE-HOOK 'foo 'APPEND)

例如,对于 Emacs-Lisp 模式,您将使用 (add-hook 'emacs-lisp-mode-hook 'foo 'APPEND) .

关于emacs - Emacs 中注释的错误缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26312317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com