在emacs中用星号添加注释块

7

在emacs中进行类似这样的评论,需要哪些设置和命令:

  /**
   * 
   * something here
   */

谢谢。
6个回答

5

一种简单的方法是定义自己的命令来插入此注释。将以下代码添加到您的 .emacs 文件中:

(defun insert-doc-comment () (interactive)
   (insert "/**\n * Brief description. Long description. \n * @param \n * @return \n * @exception \n * @see \n * @author \n */"))

然后将新命令绑定到您喜欢的键:

(define-key global-map [(S-f1)] 'insert-doc-comment)

现在按下Shift-F1将会插入一个像这样的注释块:
/**
 * Brief description. Long description. 
 * @param 
 * @return 
 * @exception 
 * @see 
 * @author 
 */

按照您说的做了。但是按下Shift+F1后,它显示;2P。您知道为什么吗? - ajmartin
2
也许你正在使用不识别Shift +功能键的终端。按 C-h k 然后按S-f1,查看Emacs是否将这些键识别为 S-f1 - sanityinc
是的,它没有识别到Shift键。将该键修改为其他键。谢谢。 - ajmartin

2

如果你还没有使用过,可以尝试使用yasnippet代码片段工具。

将这段代码放在你的snippets/**-mode/文件夹中。

# -*- mode: snippet -*-
# name: dock
# key: /*
# --
/*
 * $1
 */
$0

或者另一个版本:

# -*- mode: snippet -*-
# name: docblock
# key: /**
# --
/**
 * ${1:name} - ${2:short description}
 * @${3:argv1}: $4
 * @${5:argv2}: $6
 *
 * ${7:long description}
 */
$0

我在我的代码片段中使用了两个,顺便说一下,您应该将yasnippets-xx/snippets复制到另一个位置,例如~/.emacs.d/snippets,并将以下内容放入您的.emacs中:

(setq yas-snippet-dirs '("~/.emacs.d/snippets"))

每次更新yasnippet时,yasnippet-xx/snippets将被作者的代码片段替换。您可以在~/.emacs.d/snippets中添加/删除/修改自己的代码片段以满足个人需求。请注意保留HTML标签。

2
您可以使用emacs构建模板。 模板是文件结构的骨架,并且可以与具有特定扩展名的文件相关联。 例如,您可以创建一个适用于任何新创建带有.java扩展名的文件的java模板,还可以创建一个适用于创建带有.cpp扩展名的任何文件的C ++模板(如果需要,还可以为.h文件创建另一个模板)。
这个wiki有更多示例,可帮助您开始使用C ++类模板。

0
M-x customize-group RET comment

查看“注释样式”变量的“值菜单”。

(然后您可以使用“comment-dwim”或“comment-or-uncomment-region”在选定的块中切换注释)

如果没有活动区域,您还可以使用此功能将当前行注释/取消注释:

(defun px-toggle-comments ()
  "If region is set, [un]comments it. Otherwise [un]comments current line."
  (interactive)
  (if (eq mark-active nil)
      (progn 
                (beginning-of-line 1)
                (set-mark (point))
                (forward-line)
                (comment-dwim nil))
    (comment-dwim nil))
  (deactivate-mark))

我通常将它绑定到 M-d:

(global-set-key (kbd "M-d") 'px-toggle-comments)

-1

1
我尝试过了,但它似乎只能用斜杠进行注释。我需要斜杠和星号的组合(如上所示)。我该如何自定义? - ajmartin

-1

你可以定义一个键盘宏来完成工作,并运行它。对于您的情况,先输入开头的/*,然后按C-x(,接着是C-n M-m *C-x)。反复按C-x e直到您要注释掉的最后一行。当您在最后一行时,以/结尾。

我知道这看起来非常丑陋,但是无论如何,这对我很有效。当我需要注释大块代码时,我使用这种方法。


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