当前位置:  开发笔记 > 开发工具 > 正文

C模式下的Emacs评论区域

如何解决《C模式下的Emacs评论区域》经验,为你挑选了1个好方法。

在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手册中有一个关于多行注释的部分,但它没有提到任何内容.



1> Trey Jackson..:

从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(根据自己的喜好调整条件).

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有