Doom Emacs配置:关闭单行注释自动换行,保留多行注释功能
Doom Emacs 关闭单行注释自动换行并保留多行注释功能的配置
以下是可添加到你的Doom Emacs配置文件(通常是~/.doom.d/config.el)的Elisp代码,实现关闭单行注释//的自动换行,同时保留多行注释/* */的自动续行功能:
;; 针对使用//和/* */注释的语言(如C/C++/JS/Java等)配置注释行为 (add-hook! '(c-mode-hook c++-mode-hook js-mode-hook java-mode-hook) ;; 仅在注释内容内启用自动填充 (setq-local comment-auto-fill-only-comments t) ;; 让多行注释自动续行并添加* (setq-local comment-style 'multi-line) ;; 自定义函数:检测是否处于单行注释,是则禁用自动填充 (defun my-disable-single-line-comment-auto-fill () (let ((syntax-state (syntax-ppss))) (if (and (nth 4 syntax-state) ;; 检查是否处于注释块内 (string= (comment-start) "//")) ;; 检查是否是单行注释 (auto-fill-mode -1) (auto-fill-mode 1)))) ;; 将函数绑定到输入后钩子,实时检测注释类型 (add-hook 'post-self-insert-hook #'my-disable-single-line-comment-auto-fill nil t))
代码说明
add-hook!:Doom Emacs的钩子语法,针对指定的编程语言模式生效comment-auto-fill-only-comments:限制自动填充仅作用于注释内容comment-style 'multi-line:确保多行注释/* */在回车后自动插入换行和*- 自定义的
my-disable-single-line-comment-auto-fill函数:通过syntax-ppss检测当前是否处于单行注释中,动态开启/关闭自动填充,从而阻止单行注释自动续行
内容的提问来源于stack exchange,提问作者Krys
相关产品推荐
相关产品推荐

