在C模式下,我方便地使用 M - ; 来评论具有/* */
样式的区域。
/* Program: Foo */
/* Author: Jando */
/* Date: 19/06/2014 */
/* ... */
现在我来到C ++模式,只发现 M - ; 只能用//
做注释行样式。
// Only
// Comment Line
// is
// available here
我可以知道emacs的C ++模式中的键绑定是什么来做注释区域(/*...*/
)?我真的需要这种风格来编写注释,例如源文件头区域(因为我的公司有这种格式符合)。
提前谢谢。
答案 0 :(得分:4)
在C ++模式下,变量comment-start
和comment-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
,则该命令将关闭旧行上的注释并在新行上开始新注释。否则,它会在当前注释分隔符中打开一个新行。