从 Emacs 21 开始,有一个名为 的模块'newcomment
,它有不同的注释样式(参见变量'comment-styles
。这个设置接近你想要的:
(setq comment-style 'multi-line)
(注意:您可能应该在 中进行该设置'c-mode-hook
)。
但是,没有任何设置可以使评论看起来像您想要的那样。
我看到得到你想要的最简单的方法是添加这个黑客:
(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
. 这将需要更多的研究,以免破坏其他东西。上述技巧只会改变行为'c-mode
(根据自己的喜好调整条件)。