在GNU Emacs中,有一种很好的方法可以在C模式下更改comment-region命令
/* This is a comment which extends */
/* over more than one line in C. */
Run Code Online (Sandbox Code Playgroud)
至
/* This is a comment which extends
over more than one line in C. */
Run Code Online (Sandbox Code Playgroud)
?我试过了
(setq comment-multi-line t)
Run Code Online (Sandbox Code Playgroud)
从Emacs 21开始,有一个名为的模块'newcomment,它有不同的注释样式(参见变量'comment-styles.这个设置接近你想要的:
(setq comment-style 'multi-line)
Run Code Online (Sandbox Code Playgroud)
(注意:您应该进行此设置'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) ?\ ))))))
Run Code Online (Sandbox Code Playgroud)
当前设置comment-style始终在注释行前加上"*"(如果不是整个"/*").
如果您没有Emacs 21,我想您只需newcomment.el从存储库下载即可.我不知道它是否在早期版本的Emacs中按原样运行,但它可能值得一试,尽管升级Emacs将是一个更好的解决方案.
我的黑客打破了'uncomment-region.一个适当的解决方案是改变'comment-padright.这需要更多的研究,以免打破其他事情.上述黑客只会改变行为'c-mode(根据自己的喜好调整条件).
| 归档时间: |
|
| 查看次数: |
3489 次 |
| 最近记录: |