在emacs中用C ++模式评论区域的快捷键是什么?

时间:2014-06-20 02:07:06

标签: c++ emacs

在C模式下,我方便地使用 M - ; 来评论具有/* */样式的区域。

/* Program: Foo                  */
/* Author:  Jando                */
/* Date:    19/06/2014           */
/* ...                           */

现在我来到C ++模式,只发现 M - ; 只能用//做注释行样式。

// Only
// Comment Line
// is
// available here

我可以知道emacs的C ++模式中的键绑定是什么来做注释区域(/*...*/)?我真的需要这种风格来编写注释,例如源文件头区域(因为我的公司有这种格式符合)。

提前谢谢。

3 个答案:

答案 0 :(得分:4)

在C ++模式下,变量comment-startcomment-end的值为"// """,而在C模式下,它们为"/* "和{{ 1}}。

因此,您可以更改局部变量以获得与C模式相同的行为,例如:

" */"

您可以将其添加到(set (make-local-variable 'comment-start) "/* ") (set (make-local-variable 'comment-end) " */") 文件

.emacs

或只是:

(defun my-c++-mode-hook ()
  (c-set-style "stroustrup")
  (set (make-local-variable 'comment-start) "/* ")
  (set (make-local-variable 'comment-end) " */"))
(add-hook 'c++-mode-hook 'my-c++-mode-hook)

答案 1 :(得分:1)

您可以使用如下命令:

(defun my-block-comment (start end)
  (interactive "r")
  (let ((comment-start "/* ")
        (commend-end " */")
        (comment-style 'aligned))
    (comment-region start end)))

答案 2 :(得分:0)

来自Emacs manual

  

26.5.2多行评论

     

如果您正在键入注释并希望将其继续到另一行,请键入 M-j C-M-j comment-indent-new-line)。这会打破当前行,并插入必要的注释分隔符和缩进以继续注释。

     

对于具有结束注释分隔符的语言(例如,C中的*/), M-j 的确切行为取决于变量comment-multi-line的值。如果值为nil,则该命令将关闭旧行上的注释并在新行上开始新注释。否则,它会在当前注释分隔符中打开一个新行。

相关问题