在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)
但这没有用.在Emacs手册中有一个关于多行注释的部分,但它没有提到任何内容.
从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将是一个更好的解决方案.
我的黑客打破了'uncomment-region
.一个适当的解决方案是改变'comment-padright
.这需要更多的研究,以免打破其他事情.上述黑客只会改变行为'c-mode
(根据自己的喜好调整条件).