CONTENTS *NERDCommenterContents*
1.Intro...................................|NERDCommenter|
- 2.Functionality provided..................|NERDComFunctionality|
- 2.1 Functionality Summary.............|NERDComFunctionalitySummary|
- 2.2 Functionality Details.............|NERDComFunctionalityDetails|
- 2.2.1 Comment map.................|NERDComComment|
- 2.2.2 Nested comment map..........|NERDComNestedComment|
- 2.2.3 Toggle comment map..........|NERDComToggleComment|
- 2.2.4 Minimal comment map.........|NERDComMinimalComment|
- 2.2.5 Invert comment map..........|NERDComInvertComment|
- 2.2.6 Sexy comment map............|NERDComSexyComment|
- 2.2.7 Yank comment map............|NERDComYankComment|
- 2.2.8 Comment to EOL map..........|NERDComEOLComment|
- 2.2.9 Append com to line map......|NERDComAppendComment|
- 2.2.10 Insert comment map.........|NERDComInsertComment|
- 2.2.11 Use alternate delims map...|NERDComAltDelim|
- 2.2.12 Comment aligned maps.......|NERDComAlignedComment|
- 2.2.13 Uncomment line map.........|NERDComUncommentLine|
- 2.3 Supported filetypes...............|NERDComFiletypes|
- 2.4 Sexy Comments.....................|NERDComSexyComments|
- 2.5 The NERDComment function..........|NERDComNERDComment|
- 3.Options.................................|NERDComOptions|
- 3.1 Options summary...................|NERDComOptionsSummary|
- 3.2 Options details...................|NERDComOptionsDetails|
- 3.3 Default delimiter Options.........|NERDComDefaultDelims|
- 4. Customising key mappings...............|NERDComMappings|
- 5. Issues with the script.................|NERDComIssues|
- 5.1 Delimiter detection heuristics....|NERDComHeuristics|
- 5.2 Nesting issues....................|NERDComNesting|
- 6.About.. ............................|NERDComAbout|
- 7.Changelog...............................|NERDComChangelog|
- 8.Credits.................................|NERDComCredits|
- 9.License.................................|NERDComLicense|
+ 2.Installation............................|NERDComInstallation|
+ 3.Functionality provided..................|NERDComFunctionality|
+ 3.1 Functionality Summary.............|NERDComFunctionalitySummary|
+ 3.2 Functionality Details.............|NERDComFunctionalityDetails|
+ 3.2.1 Comment map.................|NERDComComment|
+ 3.2.2 Nested comment map..........|NERDComNestedComment|
+ 3.2.3 Toggle comment map..........|NERDComToggleComment|
+ 3.2.4 Minimal comment map.........|NERDComMinimalComment|
+ 3.2.5 Invert comment map..........|NERDComInvertComment|
+ 3.2.6 Sexy comment map............|NERDComSexyComment|
+ 3.2.7 Yank comment map............|NERDComYankComment|
+ 3.2.8 Comment to EOL map..........|NERDComEOLComment|
+ 3.2.9 Append com to line map......|NERDComAppendComment|
+ 3.2.10 Insert comment map.........|NERDComInsertComment|
+ 3.2.11 Use alternate delims map...|NERDComAltDelim|
+ 3.2.12 Comment aligned maps.......|NERDComAlignedComment|
+ 3.2.13 Uncomment line map.........|NERDComUncommentLine|
+ 3.4 Sexy Comments.....................|NERDComSexyComments|
+ 3.5 The NERDComment function..........|NERDComNERDComment|
+ 4.Options.................................|NERDComOptions|
+ 4.1 Options summary...................|NERDComOptionsSummary|
+ 4.2 Options details...................|NERDComOptionsDetails|
+ 4.3 Default delimiter Options.........|NERDComDefaultDelims|
+ 5. Customising key mappings...............|NERDComMappings|
+ 6. Issues with the script.................|NERDComIssues|
+ 6.1 Delimiter detection heuristics....|NERDComHeuristics|
+ 6.2 Nesting issues....................|NERDComNesting|
+ 7.About.. ............................|NERDComAbout|
+ 8.Changelog...............................|NERDComChangelog|
+ 9.Credits.................................|NERDComCredits|
+ 10.License................................|NERDComLicense|
==============================================================================
1. Intro *NERDCommenter*
taste.
==============================================================================
-2. Functionality provided *NERDComFunctionality*
+2. Installation *NERDComInstallation*
+
+The NERD Commenter requires Vim 7 or higher.
+
+Extract the plugin files in your ~/.vim (*nix) or ~/vimfiles (Windows). You
+should have 2 files: >
+ plugin/NERD_commenter.vim
+ doc/NERD_commenter.txt
+<
+Next, to finish installing the help file run: >
+ :helptags ~/.vim/doc
+<
+See |add-local-help| for more details.
+
+Make sure that you have filetype plugins enabled, as the script makes use of
+|'commentstring'| where possible (which is usually set in a filetype plugin).
+See |filetype-plugin-on| for details, but basically, stick this in your vimrc >
+ filetype plugin on
+<
+
+==============================================================================
+3. Functionality provided *NERDComFunctionality*
------------------------------------------------------------------------------
-2.1 Functionality summary *NERDComFunctionalitySummary*
+3.1 Functionality summary *NERDComFunctionalitySummary*
The following key mappings are provided by default (there is also a menu
with items corresponding to all the mappings below):
-[count],cc |NERDComComment|
+[count]<leader>cc |NERDComComment|
Comment out the current line or text selected in visual mode.
-[count],cn |NERDComNestedComment|
-Same as ,cc but forces nesting.
+[count]<leader>cn |NERDComNestedComment|
+Same as <leader>cc but forces nesting.
-[count],c<space> |NERDComToggleComment|
+[count]<leader>c<space> |NERDComToggleComment|
Toggles the comment state of the selected line(s). If the topmost selected
line is commented, all selected lines are uncommented and vice versa.
-[count],cm |NERDComMinimalComment|
+[count]<leader>cm |NERDComMinimalComment|
Comments the given lines using only one set of multipart delimiters.
-[count],ci |NERDComInvertComment|
+[count]<leader>ci |NERDComInvertComment|
Toggles the comment state of the selected line(s) individually.
-[count],cs |NERDComSexyComment|
+[count]<leader>cs |NERDComSexyComment|
Comments out the selected lines ``sexily''
-[count],cy |NERDComYankComment|
-Same as ,cc except that the commented line(s) are yanked first.
+[count]<leader>cy |NERDComYankComment|
+Same as <leader>cc except that the commented line(s) are yanked first.
-,c$ |NERDComEOLComment|
+<leader>c$ |NERDComEOLComment|
Comments the current line from the cursor to the end of line.
-,cA |NERDComAppendComment|
+<leader>cA |NERDComAppendComment|
Adds comment delimiters to the end of line and goes into insert mode between
them.
Disabled by default.
-,ca |NERDComAltDelim|
+<leader>ca |NERDComAltDelim|
Switches to the alternative set of delimiters.
-[count],cl
-[count],cb |NERDComAlignedComment|
+[count]<leader>cl
+[count]<leader>cb |NERDComAlignedComment|
Same as |NERDComComment| except that the delimiters are aligned down the
-left side (,cl) or both sides (,cb).
+left side (<leader>cl) or both sides (<leader>cb).
-[count],cu |NERDComUncommentLine|
+[count]<leader>cu |NERDComUncommentLine|
Uncomments the selected line(s).
------------------------------------------------------------------------------
-2.2 Functionality details *NERDComFunctionalityDetails*
+3.2 Functionality details *NERDComFunctionalityDetails*
------------------------------------------------------------------------------
-2.2.1 Comment map *NERDComComment*
+3.2.1 Comment map *NERDComComment*
-Default mapping: [count],cc
+Default mapping: [count]<leader>cc
Mapped to: <plug>NERDCommenterComment
Applicable modes: normal visual visual-line visual-block.
lines were selected in visual-line mode.
------------------------------------------------------------------------------
-2.2.2 Nested comment map *NERDComNestedComment*
+3.2.2 Nested comment map *NERDComNestedComment*
-Default mapping: [count],cn
+Default mapping: [count]<leader>cn
Mapped to: <plug>NERDCommenterNest
Applicable modes: normal visual visual-line visual-block.
-Performs nested commenting. Works the same as ,cc except that if a line is
-already commented then it will be commented again.
+Performs nested commenting. Works the same as <leader>cc except that if a line
+is already commented then it will be commented again.
If |'NERDUsePlaceHolders'| is set then the previous comment delimiters will
be replaced by place-holder delimiters if needed. Otherwise the nested
|'NERDDefaultNesting'|
------------------------------------------------------------------------------
-2.2.3 Toggle comment map *NERDComToggleComment*
+3.2.3 Toggle comment map *NERDComToggleComment*
-Default mapping: [count],c<space>
+Default mapping: [count]<leader>c<space>
Mapped to: <plug>NERDCommenterToggle
Applicable modes: normal visual-line.
lines were selected in visual-line mode.
------------------------------------------------------------------------------
-2.2.4 Minimal comment map *NERDComMinimalComment*
+3.2.4 Minimal comment map *NERDComMinimalComment*
-Default mapping: [count],cm
+Default mapping: [count]<leader>cm
Mapped to: <plug>NERDCommenterMinimal
Applicable modes: normal visual-line.
Comments the selected lines using one set of multipart delimiters if possible.
-For example: if you are programming in c and you select 5 lines and press ,cm
-then a '/*' will be placed at the start of the top line and a '*/' will be
-placed at the end of the last line.
+For example: if you are programming in c and you select 5 lines and press
+<leader>cm then a '/*' will be placed at the start of the top line and a '*/'
+will be placed at the end of the last line.
Sets of multipart comment delimiters that are between the top and bottom
selected lines are replaced with place holders (see |'NERDLPlace'|) if
lines were selected in visual-line mode.
------------------------------------------------------------------------------
-2.2.5 Invert comment map *NERDComInvertComment*
+3.2.5 Invert comment map *NERDComInvertComment*
-Default mapping: ,ci
+Default mapping: <leader>ci
Mapped to: <plug>NERDCommenterInvert
Applicable modes: normal visual-line.
lines were selected in visual-line mode.
------------------------------------------------------------------------------
-2.2.6 Sexy comment map *NERDComSexyComment*
+3.2.6 Sexy comment map *NERDComSexyComment*
-Default mapping: [count],cs
+Default mapping: [count]<leader>cs
Mapped to: <plug>NERDCommenterSexy
Applicable modes: normal, visual-line.
|'NERDCompactSexyComs'|
------------------------------------------------------------------------------
-2.2.7 Yank comment map *NERDComYankComment*
+3.2.7 Yank comment map *NERDComYankComment*
-Default mapping: [count],cy
+Default mapping: [count]<leader>cy
Mapped to: <plug>NERDCommenterYank
Applicable modes: normal visual visual-line visual-block.
-Same as ,cc except that it yanks the line(s) that are commented first.
+Same as <leader>cc except that it yanks the line(s) that are commented first.
------------------------------------------------------------------------------
-2.2.8 Comment to EOL map *NERDComEOLComment*
+3.2.8 Comment to EOL map *NERDComEOLComment*
-Default mapping: ,c$
+Default mapping: <leader>c$
Mapped to: <plug>NERDCommenterToEOL
Applicable modes: normal.
the line.
------------------------------------------------------------------------------
-2.2.9 Append com to line map *NERDComAppendComment*
+3.2.9 Append com to line map *NERDComAppendComment*
-Default mapping: ,cA
+Default mapping: <leader>cA
Mapped to: <plug>NERDCommenterAppend
Applicable modes: normal.
to insert mode between the new delimiters.
------------------------------------------------------------------------------
-2.2.10 Insert comment map *NERDComInsertComment*
+3.2.10 Insert comment map *NERDComInsertComment*
Default mapping: disabled by default.
Map it to: <plug>NERDCommenterInInsert
to your vimrc.
------------------------------------------------------------------------------
-2.2.11 Use alternate delims map *NERDComAltDelim*
+3.2.11 Use alternate delims map *NERDComAltDelim*
-Default mapping: ,ca
+Default mapping: <leader>ca
Mapped to: <plug>NERDCommenterAltDelims
Applicable modes: normal.
Changes to the alternative commenting style if one is available. For example,
-if the user is editing a c++ file using // comments and they hit ,ca
+if the user is editing a c++ file using // comments and they hit <leader>ca
then they will be switched over to /**/ comments.
See also |NERDComDefaultDelims|
------------------------------------------------------------------------------
-2.2.12 Comment aligned maps *NERDComAlignedComment*
+3.2.12 Comment aligned maps *NERDComAlignedComment*
-Default mappings: [count],cl [count],cb
+Default mappings: [count]<leader>cl [count]<leader>cb
Mapped to: <plug>NERDCommenterAlignLeft
<plug>NERDCommenterAlignBoth
Applicable modes: normal visual-line.
-Same as ,cc except that the comment delimiters are aligned on the left side or
-both sides respectively. These comments are always nested if the line(s) are
-already commented.
+Same as <leader>cc except that the comment delimiters are aligned on the left
+side or both sides respectively. These comments are always nested if the
+line(s) are already commented.
If a [count] is given in normal mode, the mapping works as though that many
lines were selected in visual-line mode.
------------------------------------------------------------------------------
-2.2.13 Uncomment line map *NERDComUncommentLine*
+3.2.13 Uncomment line map *NERDComUncommentLine*
-Default mapping: [count],cu
+Default mapping: [count]<leader>cu
Mapped to: <plug>NERDCommenterUncomment
Applicable modes: normal visual visual-line visual-block.
|'NERDRemoveExtraSpaces'|
------------------------------------------------------------------------------
-2.3 Supported filetypes *NERDComFiletypes*
-
-Filetypes that can be commented by this plugin:
-abaqus abc acedb ada ahdl amiga aml ampl ant apache apachestyle asm68k asm asn
-aspvbs atlas autohotkey autoit automake ave awk basic b bc bdf bib bindzone
-bst btm caos catalog c cfg cg ch changelog cl clean clipper cmake conf config
-context cpp crontab cs csc csp css cterm cupl csv cvs dcl debchangelog
-debcontrol debsources def diff django docbk dns dosbatch dosini dot dracula
-dsl dtd dtml dylan ecd eiffel elf elmfilt erlang eruby eterm expect exports
-fetchmail fgl focexec form fortran foxpro fstab fvwm fx gdb gdmo geek
-gentoo-package-keywords' gentoo-package-mask' gentoo-package-use' gnuplot
-gtkrc haskell hb h help hercules hog html htmldjango htmlos ia64 icon idlang
-idl indent inform inittab ishd iss ist jam java javascript jess jgraph
-jproperties jproperties jsp kconfig kix kscript lace lex lftp lifelines lilo
-lisp lite lotos lout lprolog lscript lss lua lynx m4 mail make maple masm
-master matlab mel mf mib mma model moduala. modula2 modula3 monk mush muttrc
-named nasm nastran natural ncf netdict netrw nqc nroff nsis objc ocaml occam
-omlet omnimark openroad opl ora otl ox pascal passwd pcap pccts perl pfmain
-php phtml pic pike pilrc pine plaintex plm plsql po postscr pov povini ppd
-ppwiz procmail progress prolog psf ptcap python python qf radiance ratpoison r
-rc readline rebol registry remind rexx robots rpl rtf ruby sa samba sas sass
-sather scheme scilab screen scsh sdl sed selectbuf sgml sgmldecl sgmllnx sh
-sicad simula sinda skill slang sl slrnrc sm smarty smil smith sml snnsnet
-snnspat snnsres snobol4 spec specman spice sql sqlforms sqlj sqr squid st stp
-strace svn systemverilog tads taglist tags tak tasm tcl terminfo tex text
-plaintex texinfo texmf tf tidy tli trasys tsalt tsscl tssgm uc uil vb verilog
-verilog_systemverilog vgrindefs vhdl vim viminfo virata vo_base vrml vsejcl
-webmacro wget winbatch wml wvdial xdefaults xf86conf xhtml xkb xmath xml
-xmodmap xpm2 xpm xslt yacc yaml z8a
-
-If a language is not in the list of hardcoded supported filetypes then the
-&commentstring vim option is used.
-
-------------------------------------------------------------------------------
-2.4 Sexy Comments *NERDComSexyComments*
+3.3 Sexy Comments *NERDComSexyComments*
These are comments that use one set of multipart comment delimiters as well as
one other marker symbol. For example: >
/*
Here the multipart delimiters are /* and */ and the marker is *.
------------------------------------------------------------------------------
-2.5 The NERDComment function *NERDComNERDComment*
+3.4 The NERDComment function *NERDComNERDComment*
All of the NERD commenter mappings and menu items invoke a single function
which delegates the commenting work to other functions. This function is
==============================================================================
-3. Options *NERDComOptions*
+4. Options *NERDComOptions*
------------------------------------------------------------------------------
-3.1 Options summary *NERDComOptionsSummary*
+4.1 Options summary *NERDComOptionsSummary*
|'loaded_nerd_comments'| Turns off the script.
|'NERDAllowAnyVisualDelims'| Allows multipart alternative delims to
style sexy comments.
------------------------------------------------------------------------------
-3.3 Options details *NERDComOptionsDetails*
+4.3 Options details *NERDComOptionsDetails*
To enable any of the below options you should put the given line in your
~/.vimrc
delimiters of the alternative style.
For example, if you are editing a c++ file using // style comments and you go
-,cu on this line: >
+<leader>cu on this line: >
/* This is a c++ comment baby! */
<
It will not be uncommented if the NERDRemoveAltComs is set to 0.
Following the above example, if we have line of c code: >
/* int horse */
<
-and we comment it with ,cn it will be changed to: >
+and we comment it with <leader>cn it will be changed to: >
/*FOO int horse BAR*/
<
When we uncomment this line it will go back to what it was.
Default 1.
When this option is set to 1, comments are nested automatically. That is, if
-you hit ,cc on a line that is already commented it will be commented again
+you hit <leader>cc on a line that is already commented it will be commented
+again.
------------------------------------------------------------------------------
3.3 Default delimiter customisation *NERDComDefaultDelims*
See |NERDComAltDelim| for switching commenting styles at runtime.
==============================================================================
-4. Key mapping customisation *NERDComMappings*
+5. Key mapping customisation *NERDComMappings*
To change a mapping just map another key combo to the internal <plug> mapping.
For example, to remap the |NERDComComment| mapping to ",omg" you would put
See also |'NERDCreateDefaultMappings'|.
==============================================================================
-5. Issues with the script *NERDComIssues*
+6. Issues with the script *NERDComIssues*
------------------------------------------------------------------------------
-5.1 Delimiter detection heuristics *NERDComHeuristics*
+6.1 Delimiter detection heuristics *NERDComHeuristics*
Heuristics are used to distinguish the real comment delimiters
cases.
------------------------------------------------------------------------------
-5.2 Nesting issues *NERDComNesting*
+6.2 Nesting issues *NERDComNesting*
If we have some line of code like this: >
/*int foo */ = /*5 + 9;*/
for simplicity)
==============================================================================
-6. About *NERDComAbout*
+7. About *NERDComAbout*
The author of the NERD commenter is Martyzillatron --- the half robot, half
dinosaur bastard son of Megatron and Godzilla. He enjoys destroying
==============================================================================
8. Changelog *NERDComChangelog*
+2.3.0
+ - remove all filetypes which have a &commentstring in the standard vim
+ runtime for vim > 7.0 unless the script stores an alternate set of
+ delimiters
+ - make the script complain if the user doesnt have filetype plugins enabled
+ - use <leader> instead of comma to start the default mappings
+ - fix a couple of bugs with sexy comments - thanks to Tim Smart
+ - lots of refactoring
+
2.2.2
- remove the NERDShutup option and the message is suppresses, this makes
the plugin silently rely on &commentstring for unknown filetypes.
NERDComInsertComment if you wish to restore it
==============================================================================
-8. Credits *NERDComCredits*
+9. Credits *NERDComCredits*
Thanks to the follow people for suggestions and patches:
Ivan Devat javascript.jquery
tpope cucumber,pdf
==============================================================================
-9. License *NERDComLicense*
+10. License *NERDComLicense*
The NERD commenter is released under the wtfpl.
See http://sam.zoy.org/wtfpl/COPYING.