C Emacs中的评论 - Linux Kernel Style v2

时间:2016-01-10 21:15:31

标签: emacs elisp

我收到的关于C Comment in Emacs - Linux Kernel Style的答案很有效但

enter image description here

当emacs评论(comment-dwim)时,它填充第二个* long_function_name_vari和最后*/行的空格(在评论之前),而不是像我配置它的标签。如何避免?

使用这种风格轻松发表评论?

    /* void main()
     * {
     *  int i;
     *  int b;
     *  printf("format string");
     * }
     */

2 个答案:

答案 0 :(得分:2)

可自定义变量comment-style在newcomment.el中定义 ...

(extra-line t   nil t   t
            "One comment for all lines, end on a line by itself")

...

应该提供想要的结果IIUC。

目前的实施方案是两个额外的行,到目前为止开放的新行没有记录。请提交功能请求。 docu-bug报告。

答案 1 :(得分:0)

好吧,在寻找newcomment.el后,我可以理解如何调整这种行为。

(defun my-c-comment-dwim (tabify delete-trailing)      
  (interactive)
  (let (beg end)
    (if (region-active-p)
        (progn
          (setq beg (region-beginning)
                end (region-end))
          (if (comment-only-p beg end)
              (uncomment-region beg end)
            (progn
              (comment-region beg end)
              (when (equal comment-style 'extra-line)
                (save-excursion
                  (goto-char end)
                  (forward-line 2)
                  (setq end (line-end-position))))
              (when tabify
                (tabify beg end))
              (when delete-trailing
                (delete-trailing-whitespace beg end)))))
      (comment-indent))))

(global-set-key [remap comment-dwim] (lambda ()
                                       (interactive)
                                       (my-c-comment-dwim t t)))