开发者

Comment blocks with stars in emacs

What settings and commands does one need to perform to make comments like this in emacs:

  /**
   * 
   * something here
  开发者_如何学Python */

Thanks.


An easy way is to define your own command for inserting this comment. Add this to your .emacs file:

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

Then bind the new command to a key of your liking:

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

Now pressing Shift-F1 will insert a comment block like this:

/**
 * Brief description. Long description. 
 * @param 
 * @return 
 * @exception 
 * @see 
 * @author 
 */


You can build templates with emacs. Templates are skeletons for a file structure, and can be tied to files with specific extensions. For example, you can make a java template that applies to any new file you create with a .java extension, and you can make a C++ template that applies to any file you create with a .cpp extension (and another one for .h files if needed).

This wiki has more examples to help you get started with a C++ class template.


Use yasnippet snipept, if you're not using it yet, try it.

Put this in you snippets/**-mode/

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

or another version:

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

I got both two in my snippets/, by the way you should copy yasnippets-xx/snippets to another place like ~/.emacs.d/snippets, and put this in your .emacs:

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

become every time you update yasnippet, the yasnippet-xx/snippets will replaced by the author's snippets, you can add/delete/modify your own snippets in ~/.emacs.d/snippets for your own needs.


M-x customize-group RET comment

Look at the "Value Menu" of the "Comment Style" variable.

(Then you can use both "comment-dwim" or "comment-or-uncomment-region" to toggle comments in and out of selected blocks)

You can also use this if you want the current line commented in/out if there is no region active :

(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))

I usually bind it to M-d :

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


You are looking for M-x comment-region and its friends for your particular mode.


You could define a keyboard macro to do the work, and run it. For your situation, type out the beginning /*, then do C-x ( then, C-n M-m * and, C-x ). Do C-x e until the last line that you want to comment out. When on the last line, end it with a /.

I know it looks very ugly, and such, but FWIW, it works for me. When I have to comment out big blocks, I use this approach.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜