让emacs的M-;键产生//样式的注释

10

当使用c-mode时,如何更改M-;(comment-dwim)的注释样式?

我希望它使用以//开头的注释,而不是/* */嵌套注释。

版本:

GNU Emacs 23.2.1 (x86_64-pc-linux-gnu, GTK+ Version 2.20.1) of 2010-12-11 on brahms, modified by Debian
2个回答

18

相关的变量是comment-startcomment-end,因此您可以使用以下代码:

(add-hook 'c-mode-hook (lambda () (setq comment-start "//"
                                        comment-end   "")))

适用于PHP :) 我使用这个命令来(取消)注释当前行,如果没有选中任何内容:(defun px-toggle-comments () "如果区域已设置,则[取消]注释。否则,[取消]注释当前行。" (interactive) (if (eq mark-active nil) (progn (beginning-of-line 1) (set-mark (point)) (forward-line) (comment-dwim nil)) (comment-dwim nil)) (deactivate-mark)) - yPhil
在你的cpp钩子中: (setq comment-start "/// ") (setq comment-end "") (setq comment-continue "/// ") - Ben Fitzgerald
空格通常应在变量 comment-padding 中。这可能解释了为什么@Mike会得到一个空格。 - yerforkferchips

1

http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)C%20Mode

C++模式类似于C模式,只是它理解C++注释语法以及C和C++之间的某些其他差异。它还有一个命令 `M-x fill-c++-comment',用于填充由C++注释行构成的段落。

所以你可以将这一行添加到你的.emacs文件中:

(add-to-list 'auto-mode-alist '("\\.[ch]\\'" . c++-mode))

1
我不确定。那会在 C++ 模式下打开他的文件,这是不同的。 - Noufal Ibrahim
它有多不同?试一试,看看它是否符合您的需求。 - koddo
如果你想在C-mode下打开C文件,在C++-mode下打开C++文件,这已经被讨论过了:https://dev59.com/2nA75IYBdhLWcg3waIMJ - phils
2
npoektop: 首先,C++模式将具有不同的关键字集,这些关键字将具有不同的语法高亮和缩进。 - Noufal Ibrahim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接