+++ /dev/null
-*NERD_commenter.txt* Plugin for commenting code
-
-
- NERD COMMENTER REFERENCE MANUAL~
-
-
-
-
-
-==============================================================================
-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|
-
-==============================================================================
-1. Intro *NERDCommenter*
-
-The NERD commenter provides many different commenting operations and styles
-which are invoked via key mappings and a menu. These operations are available
-for most filetypes.
-
-There are also options that allow to tweak the commenting engine to your
-taste.
-
-==============================================================================
-2. Functionality provided *NERDComFunctionality*
-
-------------------------------------------------------------------------------
-2.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|
-Comment out the current line or text selected in visual mode.
-
-
-[count],cn |NERDComNestedComment|
-Same as ,cc but forces nesting.
-
-
-[count],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|
-Comments the given lines using only one set of multipart delimiters.
-
-
-[count],ci |NERDComInvertComment|
-Toggles the comment state of the selected line(s) individually.
-
-
-[count],cs |NERDComSexyComment|
-Comments out the selected lines ``sexily''
-
-
-[count],cy |NERDComYankComment|
-Same as ,cc except that the commented line(s) are yanked first.
-
-
-,c$ |NERDComEOLComment|
-Comments the current line from the cursor to the end of line.
-
-
-,cA |NERDComAppendComment|
-Adds comment delimiters to the end of line and goes into insert mode between
-them.
-
-
-|NERDComInsertComment|
-Adds comment delimiters at the current cursor position and inserts between.
-Disabled by default.
-
-
-,ca |NERDComAltDelim|
-Switches to the alternative set of delimiters.
-
-
-[count],cl
-[count],cb |NERDComAlignedComment|
-Same as |NERDComComment| except that the delimiters are aligned down the
-left side (,cl) or both sides (,cb).
-
-
-[count],cu |NERDComUncommentLine|
-Uncomments the selected line(s).
-
-------------------------------------------------------------------------------
-2.2 Functionality details *NERDComFunctionalityDetails*
-
-------------------------------------------------------------------------------
-2.2.1 Comment map *NERDComComment*
-
-Default mapping: [count],cc
-Mapped to: <plug>NERDCommenterComment
-Applicable modes: normal visual visual-line visual-block.
-
-
-Comments out the current line. If multiple lines are selected in visual-line
-mode, they are all commented out. If some text is selected in visual or
-visual-block mode then the script will try to comment out the exact text that
-is selected using multi-part delimiters if they are available.
-
-If a [count] is given in normal mode, the mapping works as though that many
-lines were selected in visual-line mode.
-
-------------------------------------------------------------------------------
-2.2.2 Nested comment map *NERDComNestedComment*
-
-Default mapping: [count],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.
-
-If |'NERDUsePlaceHolders'| is set then the previous comment delimiters will
-be replaced by place-holder delimiters if needed. Otherwise the nested
-comment will only be added if the current commenting delimiters have no right
-delimiter (to avoid syntax errors)
-
-If a [count] is given in normal mode, the mapping works as though that many
-lines were selected in visual-line mode.
-
-Related options:
-|'NERDDefaultNesting'|
-
-------------------------------------------------------------------------------
-2.2.3 Toggle comment map *NERDComToggleComment*
-
-Default mapping: [count],c<space>
-Mapped to: <plug>NERDCommenterToggle
-Applicable modes: normal visual-line.
-
-Toggles commenting of the lines selected. The behaviour of this mapping
-depends on whether the first line selected is commented or not. If so, all
-selected lines are uncommented and vice versa.
-
-With this mapping, a line is only considered to be commented if it starts with
-a left delimiter.
-
-If a [count] is given in normal mode, the mapping works as though that many
-lines were selected in visual-line mode.
-
-------------------------------------------------------------------------------
-2.2.4 Minimal comment map *NERDComMinimalComment*
-
-Default mapping: [count],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.
-
-Sets of multipart comment delimiters that are between the top and bottom
-selected lines are replaced with place holders (see |'NERDLPlace'|) if
-|'NERDUsePlaceHolders'| is set for the current filetype. If it is not, then
-the comment will be aborted if place holders are required to prevent illegal
-syntax.
-
-If a [count] is given in normal mode, the mapping works as though that many
-lines were selected in visual-line mode.
-
-------------------------------------------------------------------------------
-2.2.5 Invert comment map *NERDComInvertComment*
-
-Default mapping: ,ci
-Mapped to: <plug>NERDCommenterInvert
-Applicable modes: normal visual-line.
-
-Inverts the commented state of each selected line. If the a selected line is
-commented then it is uncommented and vice versa. Each line is examined and
-commented/uncommented individually.
-
-With this mapping, a line is only considered to be commented if it starts with
-a left delimiter.
-
-If a [count] is given in normal mode, the mapping works as though that many
-lines were selected in visual-line mode.
-
-------------------------------------------------------------------------------
-2.2.6 Sexy comment map *NERDComSexyComment*
-
-Default mapping: [count],cs
-Mapped to: <plug>NERDCommenterSexy
-Applicable modes: normal, visual-line.
-
-Comments the selected line(s) ``sexily''... see |NERDComSexyComments| for
-a description of what sexy comments are. Can only be done on filetypes for
-which there is at least one set of multipart comment delimiters specified.
-
-Sexy comments cannot be nested and lines inside a sexy comment cannot be
-commented again.
-
-If a [count] is given in normal mode, the mapping works as though that many
-lines were selected in visual-line mode.
-
-Related options:
-|'NERDCompactSexyComs'|
-
-------------------------------------------------------------------------------
-2.2.7 Yank comment map *NERDComYankComment*
-
-Default mapping: [count],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.
-
-------------------------------------------------------------------------------
-2.2.8 Comment to EOL map *NERDComEOLComment*
-
-Default mapping: ,c$
-Mapped to: <plug>NERDCommenterToEOL
-Applicable modes: normal.
-
-Comments the current line from the current cursor position up to the end of
-the line.
-
-------------------------------------------------------------------------------
-2.2.9 Append com to line map *NERDComAppendComment*
-
-Default mapping: ,cA
-Mapped to: <plug>NERDCommenterAppend
-Applicable modes: normal.
-
-Appends comment delimiters to the end of the current line and goes
-to insert mode between the new delimiters.
-
-------------------------------------------------------------------------------
-2.2.10 Insert comment map *NERDComInsertComment*
-
-Default mapping: disabled by default.
-Map it to: <plug>NERDCommenterInInsert
-Applicable modes: insert.
-
-Adds comment delimiters at the current cursor position and inserts
-between them.
-
-NOTE: prior to version 2.1.17 this was mapped to ctrl-c. To restore this
-mapping add >
- let NERDComInsertMap='<c-c>'
-<
-to your vimrc.
-
-------------------------------------------------------------------------------
-2.2.11 Use alternate delims map *NERDComAltDelim*
-
-Default mapping: ,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
-then they will be switched over to /**/ comments.
-
-See also |NERDComDefaultDelims|
-
-------------------------------------------------------------------------------
-2.2.12 Comment aligned maps *NERDComAlignedComment*
-
-Default mappings: [count],cl [count],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.
-
-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*
-
-Default mapping: [count],cu
-Mapped to: <plug>NERDCommenterUncomment
-Applicable modes: normal visual visual-line visual-block.
-
-Uncomments the current line. If multiple lines are selected in
-visual mode then they are all uncommented.
-
-When uncommenting, if the line contains multiple sets of delimiters then the
-``outtermost'' pair of delimiters will be removed.
-
-The script uses a set of heurisics to distinguish ``real'' delimiters from
-``fake'' ones when uncommenting. See |NERDComIssues| for details.
-
-If a [count] is given in normal mode, the mapping works as though that many
-lines were selected in visual-line mode.
-
-Related options:
-|'NERDRemoveAltComs'|
-|'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*
-These are comments that use one set of multipart comment delimiters as well as
-one other marker symbol. For example: >
- /*
- * This is a c style sexy comment
- * So there!
- */
-
- /* This is a c style sexy comment
- * So there!
- * But this one is ``compact'' style */
-<
-Here the multipart delimiters are /* and */ and the marker is *.
-
-------------------------------------------------------------------------------
-2.5 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
-public and has the prototype: >
- function! NERDComment(isVisual, type)
-<
-The arguments to this function are simple:
- - isVisual: if you wish to do any kind of visual comment then set this to
- 1 and the function will use the '< and '> marks to find the comment
- boundries. If set to 0 then the function will operate on the current
- line.
- - type: is used to specify what type of commenting operation is to be
- performed, and it can be one of the following: "sexy", "invert",
- "minimal", "toggle", "alignLeft", "alignBoth", "norm", "nested",
- "toEOL", "append", "insert", "uncomment", "yank"
-
-For example, if you typed >
- :call NERDComment(1, 'sexy')
-<
-then the script would do a sexy comment on the last visual selection.
-
-
-==============================================================================
-3. Options *NERDComOptions*
-
-------------------------------------------------------------------------------
-3.1 Options summary *NERDComOptionsSummary*
-
-|'loaded_nerd_comments'| Turns off the script.
-|'NERDAllowAnyVisualDelims'| Allows multipart alternative delims to
- be used when commenting in
- visual/visual-block mode.
-|'NERDBlockComIgnoreEmpty'| Forces right delims to be placed when
- doing visual-block comments.
-|'NERDCommentWholeLinesInVMode'| Changes behaviour of visual comments.
-|'NERDCreateDefaultMappings'| Turn the default mappings on/off.
-|'NERDDefaultNesting'| Tells the script to use nested comments
- by default.
-|'NERDMenuMode'| Specifies how the NERD commenter menu
- will appear (if at all).
-|'NERDLPlace'| Specifies what to use as the left
- delimiter placeholder when nesting
- comments.
-|'NERDUsePlaceHolders'| Specifies which filetypes may use
- placeholders when nesting comments.
-|'NERDRemoveAltComs'| Tells the script whether to remove
- alternative comment delimiters when
- uncommenting.
-|'NERDRemoveExtraSpaces'| Tells the script to always remove the
- extra spaces when uncommenting
- (regardless of whether NERDSpaceDelims
- is set)
-|'NERDRPlace'| Specifies what to use as the right
- delimiter placeholder when nesting
- comments.
-|'NERDSpaceDelims'| Specifies whether to add extra spaces
- around delimiters when commenting, and
- whether to remove them when
- uncommenting.
-|'NERDCompactSexyComs'| Specifies whether to use the compact
- style sexy comments.
-
-------------------------------------------------------------------------------
-3.3 Options details *NERDComOptionsDetails*
-
-To enable any of the below options you should put the given line in your
-~/.vimrc
-
- *'loaded_nerd_comments'*
-If this script is driving you insane you can turn it off by setting this
-option >
- let loaded_nerd_comments=1
-<
-------------------------------------------------------------------------------
- *'NERDAllowAnyVisualDelims'*
-Values: 0 or 1.
-Default: 1.
-
-If set to 1 then, when doing a visual or visual-block comment (but not a
-visual-line comment), the script will choose the right delimiters to use for
-the comment. This means either using the current delimiters if they are
-multipart or using the alternative delimiters if THEY are multipart. For
-example if we are editing the following java code: >
- float foo = 1221;
- float bar = 324;
- System.out.println(foo * bar);
-<
-If we are using // comments and select the "foo" and "bar" in visual-block
-mode, as shown left below (where '|'s are used to represent the visual-block
-boundary), and comment it then the script will use the alternative delims as
-shown on the right: >
-
- float |foo| = 1221; float /*foo*/ = 1221;
- float |bar| = 324; float /*bar*/ = 324;
- System.out.println(foo * bar); System.out.println(foo * bar);
-<
-------------------------------------------------------------------------------
- *'NERDBlockComIgnoreEmpty'*
-Values: 0 or 1.
-Default: 1.
-
-This option affects visual-block mode commenting. If this option is turned
-on, lines that begin outside the right boundary of the selection block will be
-ignored.
-
-For example, if you are commenting this chunk of c code in visual-block mode
-(where the '|'s are used to represent the visual-block boundary) >
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdio.h>
- |int| main(){
- | | printf("SUCK THIS\n");
- | | while(1){
- | | fork();
- | | }
- |} |
-<
-If NERDBlockComIgnoreEmpty=0 then this code will become: >
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdio.h>
- /*int*/ main(){
- /* */ printf("SUCK THIS\n");
- /* */ while(1){
- /* */ fork();
- /* */ }
- /*} */
-<
-Otherwise, the code block would become: >
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdio.h>
- /*int*/ main(){
- printf("SUCK THIS\n");
- while(1){
- fork();
- }
- /*} */
-<
-------------------------------------------------------------------------------
- *'NERDCommentWholeLinesInVMode'*
-Values: 0, 1 or 2.
-Default: 0.
-
-By default the script tries to comment out exactly what is selected in visual
-mode (v). For example if you select and comment the following c code (using |
-to represent the visual boundary): >
- in|t foo = 3;
- int bar =| 9;
- int baz = foo + bar;
-<
-This will result in: >
- in/*t foo = 3;*/
- /*int bar =*/ 9;
- int baz = foo + bar;
-<
-But some people prefer it if the whole lines are commented like: >
- /*int foo = 3;*/
- /*int bar = 9;*/
- int baz = foo + bar;
-<
-If you prefer the second option then stick this line in your vimrc: >
- let NERDCommentWholeLinesInVMode=1
-<
-
-If the filetype you are editing only has no multipart delimiters (for example
-a shell script) and you hadnt set this option then the above would become >
- in#t foo = 3;
- #int bar = 9;
-<
-(where # is the comment delimiter) as this is the closest the script can
-come to commenting out exactly what was selected. If you prefer for whole
-lines to be commented out when there is no multipart delimiters but the EXACT
-text that was selected to be commented out if there IS multipart delimiters
-then stick the following line in your vimrc: >
- let NERDCommentWholeLinesInVMode=2
-<
-
-Note that this option does not affect the behaviour of commenting in
-|visual-block| mode.
-
-------------------------------------------------------------------------------
- *'NERDCreateDefaultMappings'*
-Values: 0 or 1.
-Default: 1.
-
-If set to 0, none of the default mappings will be created.
-
-See also |NERDComMappings|.
-
-------------------------------------------------------------------------------
- *'NERDRemoveAltComs'*
-Values: 0 or 1.
-Default: 1.
-
-When uncommenting a line (for a filetype with an alternative commenting style)
-this option tells the script whether to look for, and remove, comment
-delimiters of the alternative style.
-
-For example, if you are editing a c++ file using // style comments and you go
-,cu on this line: >
- /* This is a c++ comment baby! */
-<
-It will not be uncommented if the NERDRemoveAltComs is set to 0.
-
-------------------------------------------------------------------------------
- *'NERDRemoveExtraSpaces'*
-Values: 0 or 1.
-Default: 1.
-
-By default, the NERD commenter will remove spaces around comment delimiters if
-either:
-1. |'NERDSpaceDelims'| is set to 1.
-2. NERDRemoveExtraSpaces is set to 1.
-
-This means that if we have the following lines in a c code file: >
- /* int foo = 5; */
- /* int bar = 10; */
- int baz = foo + bar
-<
-If either of the above conditions hold then if these lines are uncommented
-they will become: >
- int foo = 5;
- int bar = 10;
- int baz = foo + bar
-<
-Otherwise they would become: >
- int foo = 5;
- int bar = 10;
- int baz = foo + bar
-<
-If you want the spaces to be removed only if |'NERDSpaceDelims'| is set then
-set NERDRemoveExtraSpaces to 0.
-
-------------------------------------------------------------------------------
- *'NERDLPlace'*
- *'NERDRPlace'*
-Values: arbitrary string.
-Default:
- NERDLPlace: "[>"
- NERDRPlace: "<]"
-
-These options are used to control the strings used as place-holder delimiters.
-Place holder delimiters are used when performing nested commenting when the
-filetype supports commenting styles with both left and right delimiters.
-To set these options use lines like: >
- let NERDLPlace="FOO"
- let NERDRPlace="BAR"
-<
-Following the above example, if we have line of c code: >
- /* int horse */
-<
-and we comment it with ,cn it will be changed to: >
- /*FOO int horse BAR*/
-<
-When we uncomment this line it will go back to what it was.
-
-------------------------------------------------------------------------------
- *'NERDMenuMode'*
-Values: 0, 1, 2, 3.
-Default: 3
-
-This option can take 4 values:
- "0": Turns the menu off.
- "1": Turns the 'comment' menu on with no menu shortcut.
- "2": Turns the 'comment 'menu on with <alt>-c as the shortcut.
- "3": Turns the 'Plugin -> comment' menu on with <alt>-c as the shortcut.
-
-------------------------------------------------------------------------------
- *'NERDUsePlaceHolders'*
-Values: 0 or 1.
-Default 1.
-
-This option is used to specify whether place-holder delimiters should be used
-when creating a nested comment.
-
-------------------------------------------------------------------------------
- *'NERDSpaceDelims'*
-Values: 0 or 1.
-Default 0.
-
-Some people prefer a space after the left delimiter and before the right
-delimiter like this: >
- /* int foo=2; */
-<
-as opposed to this: >
- /*int foo=2;*/
-<
-If you want spaces to be added then set NERDSpaceDelims to 1 in your vimrc.
-
-See also |'NERDRemoveExtraSpaces'|.
-
-------------------------------------------------------------------------------
- *'NERDCompactSexyComs'*
-Values: 0 or 1.
-Default 0.
-
-Some people may want their sexy comments to be like this: >
- /* Hi There!
- * This is a sexy comment
- * in c */
-<
-As opposed to like this: >
- /*
- * Hi There!
- * This is a sexy comment
- * in c
- */
-<
-If this option is set to 1 then the top style will be used.
-
-------------------------------------------------------------------------------
- *'NERDDefaultNesting'*
-Values: 0 or 1.
-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
-
-------------------------------------------------------------------------------
-3.3 Default delimiter customisation *NERDComDefaultDelims*
-
-If you want the NERD commenter to use the alternative delimiters for a
-specific filetype by default then put a line of this form into your vimrc: >
- let NERD_<filetype>_alt_style=1
-<
-Example: java uses // style comments by default, but you want it to default to
-/* */ style comments instead. You would put this line in your vimrc: >
- let NERD_java_alt_style=1
-<
-
-See |NERDComAltDelim| for switching commenting styles at runtime.
-
-==============================================================================
-4. 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
-this line in your vimrc: >
- map ,omg <plug>NERDCommenterComment
-<
-This will stop the corresponding default mappings from being created.
-
-See the help for the mapping in question to see which <plug> mapping to
-map to.
-
-See also |'NERDCreateDefaultMappings'|.
-
-==============================================================================
-5. Issues with the script *NERDComIssues*
-
-
-------------------------------------------------------------------------------
-5.1 Delimiter detection heuristics *NERDComHeuristics*
-
-Heuristics are used to distinguish the real comment delimiters
-
-Because we have comment mappings that place delimiters in the middle of lines,
-removing comment delimiters is a bit tricky. This is because if comment
-delimiters appear in a line doesnt mean they really ARE delimiters. For
-example, Java uses // comments but the line >
- System.out.println("//");
-<
-clearly contains no real comment delimiters.
-
-To distinguish between ``real'' comment delimiters and ``fake'' ones we use a
-set of heuristics. For example, one such heuristic states that any comment
-delimiter that has an odd number of non-escaped " characters both preceding
-and following it on the line is not a comment because it is probably part of a
-string. These heuristics, while usually pretty accurate, will not work for all
-cases.
-
-------------------------------------------------------------------------------
-5.2 Nesting issues *NERDComNesting*
-
-If we have some line of code like this: >
- /*int foo */ = /*5 + 9;*/
-<
-This will not be uncommented legally. The NERD commenter will remove the
-"outter most" delimiters so the line will become: >
- int foo */ = /*5 + 9;
-<
-which almost certainly will not be what you want. Nested sets of comments will
-uncomment fine though. Eg: >
- /*int/* foo =*/ 5 + 9;*/
-<
-will become: >
- int/* foo =*/ 5 + 9;
-<
-(Note that in the above examples I have deliberately not used place holders
-for simplicity)
-
-==============================================================================
-6. About *NERDComAbout*
-
-The author of the NERD commenter is Martyzillatron --- the half robot, half
-dinosaur bastard son of Megatron and Godzilla. He enjoys destroying
-metropolises and eating tourist busses.
-
-Drop him a line at martin_grenfell at msn.com. He would love to hear from you.
-its a lonely life being the worlds premier terror machine. How would you feel
-if your face looked like a toaster and a t-rex put together? :(
-
-The latest stable versions can be found at
- http://www.vim.org/scripts/script.php?script_id=1218
-
-The latest dev versions are on github
- http://github.com/scrooloose/nerdcommenter
-
-==============================================================================
-8. Changelog *NERDComChangelog*
-
-2.2.2
- - remove the NERDShutup option and the message is suppresses, this makes
- the plugin silently rely on &commentstring for unknown filetypes.
- - add support for dhcpd, limits, ntp, resolv, rgb, sysctl, udevconf and
- udevrules. Thanks to Thilo Six.
- - match filetypes case insensitively
- - add support for mp (metapost), thanks to Andrey Skvortsov.
- - add support for htmlcheetah, thanks to Simon Hengel.
- - add support for javacc, thanks to Matt Tolton.
- - make <%# %> the default delims for eruby, thanks to tpope.
- - add support for javascript.jquery, thanks to Ivan Devat.
- - add support for cucumber and pdf. Fix sass and railslog delims,
- thanks to tpope
-
-2.2.1
- - add support for newlisp and clojure, thanks to Matthew Lee Hinman.
- - fix automake comments, thanks to Elias Pipping
- - make haml comments default to -# with / as the alternative delimiter,
- thanks to tpope
- - add support for actionscript and processing thanks to Edwin Benavides
- - add support for ps1 (powershell), thanks to Jason Mills
- - add support for hostsaccess, thanks to Thomas Rowe
- - add support for CVScommit
- - add support for asciidoc, git and gitrebase. Thanks to Simon Ruderich.
- - use # for gitcommit comments, thanks to Simon Ruderich.
- - add support for mako and genshi, thanks to Keitheis.
- - add support for conkyrc, thanks to David
- - add support for SVNannotate, thanks to Miguel Jaque Barbero.
- - add support for sieve, thanks to Stefan Walk
- - add support for objj, thanks to Adam Thorsen.
-
-2.2.0
- - rewrote the mappings system to be more "standard".
- - removed all the mapping options. Now, mappings to <plug> mappings are
- used
- - see :help NERDComMappings, and :help NERDCreateDefaultMappings for
- more info
- - remove "prepend comments" and "right aligned comments".
- - add support for applescript, calbire, man, SVNcommit, potwiki, txt2tags and SVNinfo.
- Thanks to nicothakis, timberke, sgronblo, mntnoe, Bernhard Grotz, John
- O'Shea, François and Giacomo Mariani respectively.
- - bugfix for haskell delimiters. Thanks to mntnoe.
-2.1.18
- - add support for llvm. Thanks to nicothakis.
- - add support for xquery. Thanks to Phillip Kovalev.
-2.1.17
- - fixed haskell delimiters (hackily). Thanks to Elias Pipping.
- - add support for mailcap. Thanks to Pascal Brueckner.
- - add support for stata. Thanks to Jerónimo Carballo.
- - applied a patch from ewfalor to fix an error in the help file with the
- NERDMapleader doc
- - disable the insert mode ctrl-c mapping by default, see :help
- NERDComInsertComment if you wish to restore it
-
-==============================================================================
-8. Credits *NERDComCredits*
-
-Thanks to the follow people for suggestions and patches:
-
-Nick Brettell
-Matthew Hawkins
-Mathieu Clabaut
-Greg Searle
-Nguyen
-Litchi
-Jorge Scandaliaris
-Shufeng Zheng
-Martin Stubenschrott
-Markus Erlmann
-Brent Rice
-Richard Willis
-Igor Prischepoff
-Harry
-David Bourgeois
-Eike Von Seggern
-Torsten Blix
-Alexander Bosecke
-Stefano Zacchiroli
-Norick Chen
-Joseph Barker
-Gary Church
-Tim Carey-Smith
-Markus Klinik
-Anders
-Seth Mason
-James Hales
-Heptite
-Cheng Fang
-Yongwei Wu
-David Miani
-Jeremy Hinegardner
-Marco
-Ingo Karkat
-Zhang Shuhan
-tpope
-Ben Schmidt
-David Fishburn
-Erik Falor
-JaGoTerr
-Elias Pipping
-mntnoe
-Mark S.
-
-
-Thanks to the following people for sending me new filetypes to support:
-
-The hackers The filetypes~
-Sam R verilog
-Jonathan Derque context, plaintext and mail
-Vigil fetchmail
-Michael Brunner kconfig
-Antono Vasiljev netdict
-Melissa Reid omlet
-Ilia N Ternovich quickfix
-John O'Shea RTF, SVNcommitlog and vcscommit, SVNCommit
-Anders occam
-Mark Woodward csv
-fREW gentoo-package-mask,
- gentoo-package-keywords,
- gentoo-package-use, and vo_base
-Alexey verilog_systemverilog, systemverilog
-Lizendir fstab
-Michael Böhler autoit, autohotkey and docbk
-Aaron Small cmake
-Ramiro htmldjango and django
-Stefano Zacchiroli debcontrol, debchangelog, mkd
-Alex Tarkovsky ebuild and eclass
-Jorge Rodrigues gams
-Rainer Müller Objective C
-Jason Mills Groovy, ps1
-Normandie Azucena vera
-Florian Apolloner ldif
-David Fishburn lookupfile
-Niels Aan de Brugh rst
-Don Hatlestad ahk
-Christophe Benz Desktop and xsd
-Eyolf Østrem lilypond, bbx and lytex
-Ingo Karkat dosbatch
-Nicolas Weber markdown, objcpp
-tinoucas gentoo-conf-d
-Greg Weber D, haml
-Bruce Sherrod velocity
-timberke cobol, calibre
-Aaron Schaefer factor
-Mr X asterisk, mplayerconf
-Kuchma Michael plsql
-Brett Warneke spectre
-Pipp lhaskell
-Renald Buter scala
-Vladimir Lomov asymptote
-Marco mrxvtrc, aap
-nicothakis SVNAnnotate, CVSAnnotate, SVKAnnotate,
- SVNdiff, gitAnnotate, gitdiff, dtrace
- llvm, applescript
-Chen Xing Wikipedia
-Jacobo Diaz dakota, patran
-Li Jin gentoo-env-d, gentoo-init-d,
- gentoo-make-conf, grub, modconf, sudoers
-SpookeyPeanut rib
-Greg Jandl pyrex/cython
-Christophe Benz services, gitcommit
-A Pontus vimperator
-Stromnov slice, bzr
-Martin Kustermann pamconf
-Indriði Einarsson mason
-Chris map
-Krzysztof A. Adamski group
-Pascal Brueckner mailcap
-Jerónimo Carballo stata
-Phillip Kovalev xquery
-Bernhard Grotz potwiki
-sgronblo man
-François txt2tags
-Giacomo Mariani SVNinfo
-Matthew Lee Hinman newlisp, clojure
-Elias Pipping automake
-Edwin Benavides actionscript, processing
-Thomas Rowe hostsaccess
-Simon Ruderich asciidoc, git, gitcommit, gitrebase
-Keitheis mako, genshi
-David conkyrc
-Miguel Jaque Barbero SVNannotate
-Stefan Walk sieve
-Adam Thorsen objj
-Thilo Six dhcpd, limits, ntp, resolv, rgb, sysctl,
- udevconf, udevrules
-Andrey Skvortsov mp
-Simon Hengel htmlcheetah
-Matt Tolton javacc
-Ivan Devat javascript.jquery
-tpope cucumber,pdf
-==============================================================================
-9. License *NERDComLicense*
-
-The NERD commenter is released under the wtfpl.
-See http://sam.zoy.org/wtfpl/COPYING.
+++ /dev/null
-*vimplate* vimplate - vim template (example for C++, Perl, LaTeX and make)
-
-Author: Urs Stotz <stotz@gmx.ch>
-Last change: 2005 August 20
-
-==============================================================================
-1. Contents *vimplate-contents*
-===========
- 1. Contents.................: |vimplate-contents|
- 2. Description..............: |vimplate-description|
- 3. Usage....................: |vimplate-usage|
- 4. Subroutines..............: |vimplate-subroutines|
- 5. Example..................: |vimplate-example|
- 6. Requirements.............: |vimplate-requirements|
- 7. Documentation............: |vimplate-documentation|
-
-==============================================================================
-2. Description *vimplate-description*
-==============
-Vimplate provides an extensible and powerful template processing system.
-It is based on Perl and Template-Toolkit.
-You can create templates for program code, makefiles, letters, html pages,
-latex etc. As example vimplate contains templates for C++, LaTeX, Perl
-and Makefile.
-With vimplate you can write templates which interact with the user.
-For themes are the functions choice() and input().
-You can choose different locale for the function date() and locale().
-You can write your own perl code directly in the templates.
-
-In case you find my template useful,
-or have suggestions for improvements, please let me know.
-
-If you write a new template,
-and would like me to add it to the vimplate package
-please send it to: stotz@gmx.ch
-
-==============================================================================
-3. Usage *vimplate-usage*
-========
-Usage:
- :Vimplate <template> [options]
- choice <template> whit <TAB> (command line completion is supported).
- With <TAB> all templates are listed.
- [options]
- -user|u=<username>
- Use the information form user <username> while parsing templates.
- -dir|d=<templatedir>
- Search templatefiles in <templatedir>.
-
-==============================================================================
-4. Subroutines *vimplate-subroutines*
-==============
- locale() for locale please see: man locale
- [% loc=locale() %] get the current locale
- and write it to the variable loc
- [% locale('C') %] set global the current locale to C
- [% locale('de_DE') %] set global the current locale to de_DE
- date() for date please see: man date
- [% date('%c') %] print the current date
- with the current locale setting
- [% date('de_DE', '%c') %] print the current date with the locale de_DE
- input()
- [% var=input() %] read input from user
- and write it to the variable var
- choice()
- [% day=choice('day:', 'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa') %]
- let the user choice between different values
- and write it to the variable day
-
- please try :Vimplate Test
-
-==============================================================================
-5. Example *vimplate-example*
-==========
-
-Example:
- the template letter.tt:
- ________________________________________________________
- [%
- sex=choice('sex: ', 'female', 'male')
- name=input('name: ')
- location=input('your location: ')
- -%]
- [% ucfirst(location) %], [% date('C', '%b %d, %Y') %]
-
- Dear [% IF sex=='female'; 'Ms'; ELSE; 'Mr'; END %] [% ucfirst(name) %]
-
- ...
-
- Sincerely
-
- [% user.firstname %] [% user.lastname %]
- ________________________________________________________
-
- run vim:
- :Vimplate letter
- sex:
- 0) female
- 1) male
- 0
- name: Meier
- your location: Olten
-
- your input was:
- :Vimplate letter<CR>0<CR>Meier<CR>Olten<CR>
-
- this will produce this letter:
- ________________________________________________________
- Olten, Jul 11, 2005
-
- Dear Ms Meier
-
- ...
-
- Sincerely
-
- Urs Stotz
- ________________________________________________________
-
-Example:
- the template hpp-default.tt:
- ________________________________________________________
- [% classname=input('Class name: ')
- doxygen=choice('with Doxygen comments: ', 'no', 'yes')
- -%]
- #ifndef [% uc(classname) %]_HPP
- #define [% uc(classname) %]_HPP
-
- [% IF doxygen=='yes' -%]
- /**
- * @brief [% classname %] ... short description ...
- * @author [% user.firstname %] [% user.lastname %] <[% user.mail %]>
- * @date [% date('%Y-%m-%d') %]
- * ... description ...
- */
-
- [% END -%]
- class [% classname %]
- {
- public:
- [% IF doxygen=='yes' -%]
-
- /**
- * Default constructor
- */
- [% END -%]
- [% classname %]();
- [% IF doxygen=='yes' -%]
-
- /**
- * Copy constructor
- * @param other reference on object to copy
- */
- [% END -%]
- [% classname %](const [% classname %]& other);
- [% IF doxygen=='yes' -%]
-
- /**
- * Assignment operator
- * @param other reference on object to copy
- * @return reference on initialisated object
- */
- [% END -%]
- [% classname %]& operator=(const [% classname %]& other);
- [% IF doxygen=='yes' -%]
-
- /**
- * Destructor
- */
- [% END -%]
- virtual ~[% classname %]();
-
- private:
- [% IF doxygen=='yes' -%]
-
- /**
- * Base initialisation should be called
- * at beginning of each constructor
- */
- [% END -%]
- void init();
- [% IF doxygen=='yes' -%]
-
- /**
- * Method to copy each member (deep copy)
- * @param other reference on object to copy
- */
- [% END -%]
- void init(const [% classname %]& other);
- };
-
- #endif /* #ifndef [% uc(classname) %]_HPP */
- ________________________________________________________
-
- run vim:
- :Vimplate hpp-default
- Class name: Parent
- with Doxygen comments:
- 0) no
- 1) yes
- 1
-
- your input was:
- :Vimplate hpp-default<CR>Parent<CR>1<CR>
-
- this will produce this c++ include file:
- ________________________________________________________
- #ifndef PARENT_HPP
- #define PARENT_HPP
-
- /**
- * @brief Parent ... short description ...
- * @author Urs Stotz <stotz@gmx.ch>
- * @date 2005-07-18
- * ... description ...
- */
-
- class Parent
- {
- public:
-
- /**
- * Default constructor
- */
- Parent();
-
- /**
- * Copy constructor
- * @param other reference on object to copy
- */
- Parent(const Parent& other);
-
- /**
- * Assignment operator
- * @param other reference on object to copy
- * @return reference on initialisated object
- */
- Parent& operator=(const Parent& other);
-
- /**
- * Destructor
- */
- virtual ~Parent();
-
- private:
-
- /**
- * Base initialisation should be called
- * at beginning of each constructor
- */
- void init();
-
- /**
- * Method to copy each member (deep copy)
- * @param other reference on object to copy
- */
- void init(const Parent& other);
- };
-
- #endif /* #ifndef PARENT_HPP */
- ________________________________________________________
-
-==============================================================================
-6. Requirements *vimplate-requirements*
-===============
- Perl
- http://www.perl.org
- Windows users:
- http://www.activestate.com/Products/ActivePerl
- Template-Toolkit
- http://search.cpan.org/~abw/Template-Toolkit-2.14
- or apt-get install libtemplate-perl
- or perl -MCPAN -e"install Template"
- Windows users:
- ppm install
- http://openinteract.sourceforge.net/ppmpackages/AppConfig.ppd
- ppm install
- http://openinteract.sourceforge.net/ppmpackages/Template-Toolkit.ppd
-
-==============================================================================
-7. Documentation *vimplate-documentation*
-================
-Documentation:
- - http://www.template-toolkit.org/docs.html
- - http://perldoc.perl.org/perl.html
-
-Todo:
- - better exception handling
- - write more templates
-
-License:
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License, version 2, as published
- by the Free Software Foundation.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- for more details.
-
- A copy of the GNU GPL is available as /usr/share/common-licenses/GPL-2
- on Debian systems, or on the World Wide Web at
- http://www.gnu.org/copyleft/gpl.html
- You can also obtain it by writing to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
-Copyright:
- Copyright (c) 2005, Urs Stotz <stotz@gmx.ch>
-
-Version:
- vimplate 0.2.3
-
-==============================================================================
-8. Installation *vimplate-installation*
-===============
-Depends:
- Perl:
- http://www.perl.org
- Template-Toolkit:
- http://search.cpan.org/~abw/Template-Toolkit-2.14
-
-Suggests:
- TT2 syntax:
- http://www.vim.org/scripts/script.php?script_id=830
-
-Installation steps:
- 1. change to your $HOME/.vim directory
- (on windows: set the variable HOME
- set HOME=c:\vim)
- 2. untar vimplate.tar.gz: gzip -dc vimplate.tar.gz |tar xpvf -
- 3. move the vimplate into your preferred directory
- for example in $HOME/bin or /usr/local/bin
- 4. move the directory Template with the example templates
- to the place that you prefer
- 5. edit your $HOME/.vimrc and set the variable Vimplate to
- to the place where vimplate is located
- for example let Vimplate = "$HOME/bin/vimplate"
- (on windows: let Vimplate = "$HOME/bin/vimplate.cmd" )
- 6. run vimplate to create your configuration file $HOME/.vimplaterc
- for example $HOME/bin/vimplate -createconfig
- (on windows: $HOME/bin/vimplate.cmd -createconfig" )
- 7. edit your $HOME/.vimplaterc
- (on windows: $HOME/_vimplaterc)
- 8. change to the $HOME/.vim/doc directory,
- start Vim and run the ":helptags ." command to process the
- taglist help file. (see: |helptags| )
- 9. happy vimplating
-==============================================================================
-
-vim:tw=78:ts=2:ft=help
+++ /dev/null
-*xml-plugin.txt* Help edit XML and SGML documents. v1.84
-
- XML Edit ~
-
-A filetype plugin to help edit XML and SGML documents.
-
-This script provides some convenience when editing XML (and some SGML
-including HTML) formated documents. It allows you to jump to the beginning
-or end of the tag block your cursor is in. '%' will jump between '<' and '>'
-within the tag your cursor is in. When in insert mode and you finish a tag
-(pressing '>') the tag will be completed. If you press '>' twice it will
-complete the tag and place the cursor in the middle of the tags on it's own
-line (helps with nested tags).
-
-Usage: Place this file into your ftplugin directory. To add html support
-Sym-link or copy this file to html.vim in your ftplugin directory. To activte
-the script place 'filetype plugin on' in your |.vimrc| file. See |ftplugins|
-for more information on this topic.
-
-If the file edited is of type "html" and "xml_use_html" is defined then the
-following tags will not auto complete:
-<img>, <input>, <param>, <frame>, <br>, <hr>, <meta>, <link>, <base>, <area>
-
-If the file edited is of type 'html' and 'xml_use_xhtml' is defined the above
-tags will autocomplete the xml closing staying xhtml compatable.
-ex. <hr> becomes <hr /> (see |xml-plugin-settings|)
-
-NOTE: If you used the VIM 5.x version of this file (xmledit.vim) you'll need
-to comment out the section where you called it. It is no longer used in the
-VIM 6.x version.
-
-Known Bugs ~
-
-- This script will modify registers ". and "x; register "" will be restored.
-- < & > marks inside of a CDATA section are interpreted as actual XML tags
- even if unmatched.
-- Although the script can handle leading spaces such as < tag></ tag> it is
- illegal XML syntax and considered very bad form.
-- Placing a literal `>' in an attribute value will auto complete dispite that
- the start tag isn't finished. This is poor XML anyway you should use
- > instead.
-- The matching algorithm can handle illegal tag characters where as the tag
- completion algorithm can not.
-
-------------------------------------------------------------------------------
- *xml-plugin-mappings*
-Mappings ~
-
-<LocalLeader> is a setting in VIM that depicts a prefix for scripts and
-plugins to use. By default this is the backslash key `\'. See |mapleader|
-for details.
-
-<LocalLeader><Space>
- Normal or Insert - Continue editing after the ending tag. This
- option requires xml_jump_string to be set to function. When a tag
- is completed it will append the xml_jump_string. Once this mapping
- is ran it will delete the next xml_jump_string pattern to the right
- of the curser and delete it leaving you in insert mode to continue
- editing.
-
-<LocalLeader>w
- Normal - Will clear the entire file of left over xml_jump_string garbage.
- * This will also happen automatically when you save the file. *
-
-<LocalLeader>x
- Visual - Place a custom XML tag to suround the selected text. You
- need to have selected text in visual mode before you can use this
- mapping. See |visual-mode| for details.
-
-<LocalLeader>. or <LocalLeader>>
- Insert - Place a literal '>' without parsing tag.
-
-<LocalLeader>5 or <LocalLeader>%
- Normal or Visual - Jump to the begining or end tag.
-
-<LocalLeader>d
- Normal - Deletes the surrounding tags from the cursor. >
- <tag1>outter <tag2>inner text</tag2> text</tag1>
- ^
-< Turns to: >
- outter <tag2>inner text</tag2> text
- ^
-<
-
-------------------------------------------------------------------------------
- *xml-plugin-settings*
-Options ~
-
-(All options must be placed in your |.vimrc| prior to the |ftplugin|
-command.)
-
-xml_tag_completion_map
- Use this setting to change the default mapping to auto complete a
- tag. By default typing a literal `>' will cause the tag your editing
- to auto complete; pressing twice will auto nest the tag. By using
- this setting the `>' will be a literal `>' and you must use the new
- mapping to perform auto completion and auto nesting. For example if
- you wanted Control-L to perform auto completion inmstead of typing a
- `>' place the following into your .vimrc: >
- let xml_tag_completion_map = "<C-l>"
-<
-xml_no_auto_nesting
- This turns off the auto nesting feature. After a completion is made
- and another `>' is typed xml-edit automatically will break the tag
- accross multiple lines and indent the curser to make creating nested
- tqags easier. This feature turns it off. Enter the following in your
- .vimrc: >
- let xml_no_auto_nesting = 1
-<
-xml_use_xhtml
- When editing HTML this will auto close the short tags to make valid
- XML like <hr /> and <br />. Enter the following in your vimrc to
- turn this option on: >
- let xml_use_xhtml = 1
-<
-xml_no_html
- This turns off the support for HTML specific tags. Place this in your
- .vimrc: >
- let xml_no_html = 1
-<
-xml_jump_string
- This turns off the support for continuing edits after an ending tag.
- xml_jump_string can be any string how ever a simple character will
- suffice. Pick a character or small string that is unique and will
- not interfer with your normal editing. See the <LocalLeader>Space
- mapping for more.
- .vimrc: >
- let xml_jump_string = "`"
-<
-------------------------------------------------------------------------------
- *xml-plugin-callbacks*
-Callback Functions ~
-
-A callback function is a function used to customize features on a per tag
-basis. For example say you wish to have a default set of attributs when you
-type an empty tag like this:
- You type: <tag>
- You get: <tag default="attributes"></tag>
-
-This is for any script programmers who wish to add xml-plugin support to
-there own filetype plugins.
-
-Callback functions recive one attribute variable which is the tag name. The
-all must return either a string or the number zero. If it returns a string
-the plugin will place the string in the proper location. If it is a zero the
-plugin will ignore and continue as if no callback existed.
-
-The following are implemented callback functions:
-
-HtmlAttribCallback
- This is used to add default attributes to html tag. It is intended
- for HTML files only.
-
-XmlAttribCallback
- This is a generic callback for xml tags intended to add attributes.
-
- *xml-plugin-html*
-Callback Example ~
-
-The following is an example of using XmlAttribCallback in your .vimrc
->
- function XmlAttribCallback (xml_tag)
- if a:xml_tag ==? "my-xml-tag"
- return "attributes=\"my xml attributes\""
- else
- return 0
- endif
- endfunction
-<
-The following is a sample html.vim file type plugin you could use:
->
- " Vim script file vim600:fdm=marker:
- " FileType: HTML
- " Maintainer: Devin Weaver <vim (at) tritarget.com>
- " Location: http://www.vim.org/scripts/script.php?script_id=301
-
- " This is a wrapper script to add extra html support to xml documents.
- " Original script can be seen in xml-plugin documentation.
-
- " Only do this when not done yet for this buffer
- if exists("b:did_ftplugin")
- finish
- endif
- " Don't set 'b:did_ftplugin = 1' because that is xml.vim's responsability.
-
- let b:html_mode = 1
-
- if !exists("*HtmlAttribCallback")
- function HtmlAttribCallback( xml_tag )
- if a:xml_tag ==? "table"
- return "cellpadding=\"0\" cellspacing=\"0\" border=\"0\""
- elseif a:xml_tag ==? "link"
- return "href=\"/site.css\" rel=\"StyleSheet\" type=\"text/css\""
- elseif a:xml_tag ==? "body"
- return "bgcolor=\"white\""
- elseif a:xml_tag ==? "frame"
- return "name=\"NAME\" src=\"/\" scrolling=\"auto\" noresize"
- elseif a:xml_tag ==? "frameset"
- return "rows=\"0,*\" cols=\"*,0\" border=\"0\""
- elseif a:xml_tag ==? "img"
- return "src=\"\" width=\"0\" height=\"0\" border=\"0\" alt=\"\""
- elseif a:xml_tag ==? "a"
- if has("browse")
- " Look up a file to fill the href. Used in local relative file
- " links. typeing your own href before closing the tag with `>'
- " will override this.
- let cwd = getcwd()
- let cwd = substitute (cwd, "\\", "/", "g")
- let href = browse (0, "Link to href...", getcwd(), "")
- let href = substitute (href, cwd . "/", "", "")
- let href = substitute (href, " ", "%20", "g")
- else
- let href = ""
- endif
- return "href=\"" . href . "\""
- else
- return 0
- endif
- endfunction
- endif
-
- " On to loading xml.vim
- runtime ftplugin/xml.vim
-<
-
- vim:tw=78:ts=8:ft=help:norl: