gpt4 book ai didi

c - C 模式下的 Emacs 注释区域

转载 作者:太空狗 更新时间:2023-10-29 17:01:57 26 4
gpt4 key购买 nike

在GNU Emacs中,有没有什么好的方法可以改变C模式下的comment-region命令

/* This is a comment which extends  */
/* over more than one line in C. */

/* This is a comment which extends
over more than one line in C. */

?我试过了

(setq comment-multi-line t)

但这并没有帮助。有一个section on multi-line comments in the Emacs manual , 但它没有提及任何内容。

最佳答案

自 Emacs 21 以来,有一个名为 'newcomment 的模块,它有不同的评论风格(见变量'comment-styles。这个设置接近你想要的:

(setq comment-style 'multi-line)

(注意:您可能应该在 'c-mode-hook 中进行设置)。

但是,没有任何设置可以使评论看起来像您想要的那样。

我看到得到你想要的东西的最简单方法是添加这个 hack:

(defadvice comment-region-internal (before comment-region-internal-hack-ccs activate)
"override 4th argument to be just spaces"
(when (eq major-mode 'c-mode) ; some condition here
(let ((arg (ad-get-arg 4)))
(when arg
(ad-set-arg 4 (make-string (length arg) ?\ ))))))

comment-style 的当前设置总是在注释行前加上“*”(如果不是整个“/*”)。

如果您没有 Emacs 21,我想您可以直接下载 newcomment.el从存储库。我不知道它在早期版本的 Emacs 中是否能正常工作,但它可能值得一试,尽管升级 Emacs 会是更好的解决方案。

我的 hack 破坏了 'uncomment-region。正确的解决方法是更改​​ 'comment-padright。这将需要更多的研究,以免破坏其他东西。上面的 hack 只会改变 'c-mode 中的行为(根据您的喜好调整条件)。

关于c - C 模式下的 Emacs 注释区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1551854/

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