From 95705aea0d29dd20a2dc71487bf6a56edf9da74b Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Tue, 18 Nov 2014 00:01:26 +0100 Subject: [PATCH] vim + git --- etc/gitconfig | 8 + etc/vim/HTML.zip | Bin 0 -> 48865 bytes etc/vim/autoload/template.vim | 139 + etc/vim/checkscript.sh | 55 + etc/vim/checkspell.sh | 28 + etc/vim/choosesig.pl | 134 + etc/vim/doc/NERD_commenter.txt | 991 ++++++ etc/vim/doc/tags | 63 + etc/vim/doc/vimplate.txt | 350 ++ etc/vim/doc/xml-plugin.txt | 226 ++ etc/vim/ftdetect/puppet.vim | 2 + etc/vim/ftplugin/xml.vim | 940 +++++ etc/vim/plugin/NERD_commenter.vim | 3132 +++++++++++++++++ etc/vim/plugin/calendar.vim | 1263 +++++++ etc/vim/plugin/vimplate.vim | 41 + etc/vim/source/._ShowFunc.vim | Bin 0 -> 4096 bytes etc/vim/source/ShowFunc.vim.disable | 566 +++ etc/vim/source/abbreviate.vim | 23 + etc/vim/source/debian.vim | 82 + etc/vim/source/functions.vim | 430 +++ etc/vim/source/html.no | 6 + etc/vim/source/map.vim | 90 + etc/vim/source/option.vim | 132 + etc/vim/source/tt.vim | 1 + etc/vim/stats/let.g | 19 + etc/vim/stats/let.v | 33 + etc/vim/stats/set.all | 88 + etc/vim/stats/setglob.all | 31 + etc/vim/stats/setloc.all | 26 + etc/vim/syntax/puppet.vim | 115 + etc/vim/template.html | 13 + etc/vim/templates/bash.tt | 119 + etc/vim/templates/css.tt | 5 + etc/vim/templates/daemon.tt | 93 + etc/vim/templates/daemon.tt.bak | 60 + etc/vim/templates/html.tt | 23 + etc/vim/templates/perl.tt | 189 + etc/vim/templates/php.tt | 29 + etc/vim/templates/puppet.tt | 81 + etc/vim/templates/sh.tt | 1 + etc/vim/templates/sql.tt | 12 + ...+usr=+share=+vim=+vim72=+doc=+options.txt= | 104 + etc/vim/vim-shortcurts | 741 ++++ etc/vim/vim-shortcurts-stdin | 30 + etc/vim/vim-shortcurts.new | 0 etc/vim/vim-template-0.3.0.zip | Bin 0 -> 9503 bytes etc/vim/vimplate-dump | 12 + 47 files changed, 10526 insertions(+) create mode 100644 etc/gitconfig create mode 100644 etc/vim/HTML.zip create mode 100644 etc/vim/autoload/template.vim create mode 100644 etc/vim/checkscript.sh create mode 100644 etc/vim/checkspell.sh create mode 100644 etc/vim/choosesig.pl create mode 100644 etc/vim/doc/NERD_commenter.txt create mode 100644 etc/vim/doc/tags create mode 100644 etc/vim/doc/vimplate.txt create mode 100644 etc/vim/doc/xml-plugin.txt create mode 100644 etc/vim/ftdetect/puppet.vim create mode 100644 etc/vim/ftplugin/xml.vim create mode 100644 etc/vim/plugin/NERD_commenter.vim create mode 100644 etc/vim/plugin/calendar.vim create mode 100644 etc/vim/plugin/vimplate.vim create mode 100644 etc/vim/source/._ShowFunc.vim create mode 100644 etc/vim/source/ShowFunc.vim.disable create mode 100644 etc/vim/source/abbreviate.vim create mode 100644 etc/vim/source/debian.vim create mode 100644 etc/vim/source/functions.vim create mode 100644 etc/vim/source/html.no create mode 100644 etc/vim/source/map.vim create mode 100644 etc/vim/source/option.vim create mode 100644 etc/vim/source/tt.vim create mode 100644 etc/vim/stats/let.g create mode 100644 etc/vim/stats/let.v create mode 100644 etc/vim/stats/set.all create mode 100644 etc/vim/stats/setglob.all create mode 100644 etc/vim/stats/setloc.all create mode 100644 etc/vim/syntax/puppet.vim create mode 100644 etc/vim/template.html create mode 100644 etc/vim/templates/bash.tt create mode 100644 etc/vim/templates/css.tt create mode 100644 etc/vim/templates/daemon.tt create mode 100644 etc/vim/templates/daemon.tt.bak create mode 100644 etc/vim/templates/html.tt create mode 100644 etc/vim/templates/perl.tt create mode 100644 etc/vim/templates/php.tt create mode 100644 etc/vim/templates/puppet.tt create mode 120000 etc/vim/templates/sh.tt create mode 100644 etc/vim/templates/sql.tt create mode 100644 etc/vim/view/=+usr=+share=+vim=+vim72=+doc=+options.txt= create mode 100644 etc/vim/vim-shortcurts create mode 100644 etc/vim/vim-shortcurts-stdin create mode 100644 etc/vim/vim-shortcurts.new create mode 100644 etc/vim/vim-template-0.3.0.zip create mode 100644 etc/vim/vimplate-dump diff --git a/etc/gitconfig b/etc/gitconfig new file mode 100644 index 00000000..e029af33 --- /dev/null +++ b/etc/gitconfig @@ -0,0 +1,8 @@ +[user] + name = Nicolas Boisselier + email = nicolas.boisselier@gmail.com +[core] + pager = less -iMRF + editor = vim +[credential] + helper = cache --timeout 3600 diff --git a/etc/vim/HTML.zip b/etc/vim/HTML.zip new file mode 100644 index 0000000000000000000000000000000000000000..8086411439c87808c1437939f33949a23031d71d GIT binary patch literal 48865 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 CihLXZ literal 0 HcmV?d00001 diff --git a/etc/vim/autoload/template.vim b/etc/vim/autoload/template.vim new file mode 100644 index 00000000..ae9a207e --- /dev/null +++ b/etc/vim/autoload/template.vim @@ -0,0 +1,139 @@ +" Simple and flexible template engine. +" Version: 0.3.0 +" Author : thinca +" License: zlib License + +let s:save_cpo = &cpo +set cpo&vim + +let s:nomodeline = 703 < v:version || (v:version == 703 && has('patch438')) +let s:loading_template = '' + +" Core functions. {{{1 +function! template#load(...) + let empty_buffer = line('$') == 1 && strlen(getline(1)) == 0 + let pattern = get(a:000, 0, 0) + let lnum = get(a:000, 1, 0) + let force = get(a:000, 2, 0) + if !force && !empty_buffer + return + endif + let tmpl = template#search(empty(pattern) ? expand('%:p') : pattern) + if tmpl == '' + if &verbose && !empty(pattern) + echohl ErrorMsg + echomsg 'template: Template file was not found.' + echohl None + endif + return + endif + + call cursor(lnum, 1) + silent keepalt :.-1 read `=tmpl` + if empty_buffer + silent $ delete _ + 1 + endif + + let loading_pre = s:loading_template + let s:loading_template = tmpl + + if getline('.') =~ '^:' + let [save_reg, save_reg_type] = [getreg('"'), getregtype('"')] + silent .;/^[^:]\|^$\|^:\s*fini\%[sh]\>/-1 delete " + if getline('.') =~# ':\s*fini\%[sh]\>' + delete _ + endif + + let code = @" + call setreg('"', save_reg, save_reg_type) + + let temp = tmpl . '.vim' + if glob(temp) != '' + let temp = tempname() + endif + + call writefile(split(code, "\n"), temp) + try + if s:nomodeline + doautocmd User plugin-template-preexec + else + doautocmd User plugin-template-preexec + endif + source `=temp` + catch + echoerr v:exception + finally + call delete(temp) + endtry + endif + if s:nomodeline + doautocmd User plugin-template-loaded + else + doautocmd User plugin-template-loaded + endif + + let s:loading_template = loading_pre +endfunction + +function! template#search(pattern) + if !exists('g:template_basedir') || empty(a:pattern) + return '' + endif + " Matching from tail. + let target = s:reverse(s:to_slash_path(a:pattern)) + + let longest = ['', 0] " ['template file name', match length] + for i in split(globpath(g:template_basedir, g:template_files), "\n") + let i = s:to_slash_path(i) + if isdirectory(i) || i !~ g:template_free_pattern + continue + endif + " Make a pattern such as the following. + " From: 'path/to/a_FREE_file.vim' (FREE is a free pattern.) + " To: '^\Vmiv.elif_\(\.\{-}\)_a\%[/ot/htap]' + " TODO: cache? + let l = map(split(i, g:template_free_pattern), + \ 's:reverse(escape(v:val, "\\"))') + let [head, rest] = matchlist(l[0], '\v(.{-})(/.*)')[1:2] + let l[0] = head . '\%[' . substitute(rest, '[][]', '[\0]', 'g') . ']' + let matched = matchlist(target, '^\V' . join(reverse(l), '\(\.\{-}\)')) + let len = len(matched) ? + \ strlen(matched[0]) - strlen(join(matched[1:], '')) : 0 + if longest[1] < len + let longest = [i, len] + endif + endfor + return longest[0] +endfunction + +function! template#loading() + return s:loading_template +endfunction + + +" Misc functions. {{{1 +" Return the reversed string. +function! s:reverse(str) + return join(reverse(split(a:str, '\zs')), '') +endfunction + +" Unify pass separator to a slash. +function! s:to_slash_path(path) + if has('win16') || has('win32') || has('win64') + return substitute(a:path, '\\', '/', 'g') + endif + return a:path +endfunction + +" Complete function for :TemplateLoad +function! template#complete(lead, cmd, pos) + let lead = escape(matchstr(a:cmd, 'T\%[emplateLoad]!\?\s\+\zs.*$'), '\') + let pat = '[/\\][^/\\]*' . g:template_free_pattern + let list = map(filter(split(globpath(g:template_basedir, g:template_files), + \ "\n"), '!isdirectory(v:val)'), 'v:val[match(v:val, pat):]') + return filter(list, 'v:val =~ "^\\V" . lead') +endfunction + + +let &cpo = s:save_cpo diff --git a/etc/vim/checkscript.sh b/etc/vim/checkscript.sh new file mode 100644 index 00000000..0326b84d --- /dev/null +++ b/etc/vim/checkscript.sh @@ -0,0 +1,55 @@ +#!/bin/bash +f=$1 + +if [ -z "$f" ]; then + echo -e "Usage: $0 FILE\nCheck syntaxe of a document"; + exit -1; +fi + +ext=`echo $f|sed 's/^.*\.\(.*\)$/\1/'` +php="php5 --define error_reporting=22519 --define display_errors=1 --define log_errors=1 --define html_errors=1" # E_ALL & ~E_NOTICE & ~E_DEPRECATED +#php="php5 --define error_reporting=8192 --define display_errors=1" # E_ALL & ~E_NOTICE & E_DEPRECATED +#php="php5 "; +case "$ext" in + pp) exec puppet parser validate $f;; + pm|pl) exec perl -w -c $f;; + htm|html|xhtm) exec xmllint --noout --html $f;; + xml|sgml) exec xmllint --noout $f;; + php|inc) + exec $php -f $f + ;; +esac +case "$f" in + *named.conf) exec /usr/sbin/named-checkconf $f;; + *httpd2*) + httpd=`which httpd2 2>/dev/null`; + [ -z $httpd ] && httpd=`which apache2 2>/dev/null`; + exec $httpd -d `dirname $f` -t -f `basename $f`; + ;; + *httpd[\.-]*) + httpd=`which httpd 2>/dev/null`; + [ -z $httpd ] && httpd=`which apache 2>/dev/null`; + [ -z $httpd ] && httpd=`which httpd2 2>/dev/null`; + exec $httpd -d `dirname $f` -t -f `basename $f`; + ;; +esac + +head=`head -c 100 $f` +case "$head" in + \#!*/perl*)exec perl -w -c $f;; +esac; + +file=`file $f` +case "$file" in + *XML*document*) exec xmllint --noout $f;; + *SGML*document*) exec xmllint --noout $f;; + *HTML*document*) exec xmllint --noout --html $f;; + *perl*executable*)exec perl -w -c $f;; + *perl*modules*) exec perl -w -c $f;; + *[pP][hH][pP]*script*) exec $php -f $f;; + *[Bb]ourne*shell*script*) exec sh -x $f;; + *bash*executable*) exec sh -x $f;; +esac; + +echo "Nothing to do with this file: $file: $ext!" +exit 1 diff --git a/etc/vim/checkspell.sh b/etc/vim/checkspell.sh new file mode 100644 index 00000000..c4c3d2e1 --- /dev/null +++ b/etc/vim/checkspell.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# NB 12.03.04 nicolasboisselier@free.fr + +if [ -z "$@" ]; then + echo -e "Usage: $0 FILES\nVerifie l'orthographe d'un document." + exit -1; +fi + +while [ "$1" ]; do + file=`file $1` + cmd="" + case "$file" in + *XML*document*) cmd="aspell -c --dont-backup --mode=sgml";; + *HTML*document*) cmd="aspell -c --dont-backup --mode=sgml";; + *SGML*document*) cmd="aspell -c --dont-backup --mode=sgml";; + *ASCII*mail*) cmd="aspell -c --dont-backup --mode=email";; + *text*) cmd="aspell -c --dont-backup";; + esac; + + if [ "$cmd" ]; then + $cmd $1 + else + echo "Rien à faire avec ce type de fichier: $file: $ext!" + fi + shift +done + +exit diff --git a/etc/vim/choosesig.pl b/etc/vim/choosesig.pl new file mode 100644 index 00000000..0b23774b --- /dev/null +++ b/etc/vim/choosesig.pl @@ -0,0 +1,134 @@ +#!/usr/bin/perl +############################################################################## +# +# NB 09.10.03 +# +# script pour macro mutt: choisie un template dans ~/.signature pour changer +# l'envoyeur d'un mail +# +############################################################################## +use strict qw (subs vars refs); + +my $file = shift @ARGV; +my $dir = $ENV{HOME} . "/.signature"; + +opendir(D,$dir) || die "$dir: $!"; + +my @sig = sort grep(!/^\./,readdir(D)); +close D; + +my $i = -1; +print "Choissisez une signature:\n",map { $i++; "[$i] $_\n" } @sig; + +$i = "Z"; +$i = <>; +exit if !defined($i) or $i eq "" or $i !~ /^\d+$/ or $i>=scalar(@sig); + +my $f = "$dir/$sig[$i]"; + +# on charge la signature +open(F,$f) || die "$f: $!"; +my $sig = join('',); +close F; + +# on extrait l'email de la signature +$sig =~ s/^From\s*:\s*(.*?)\s*[\r\n]//; +my $me = $1 || ""; +my $from = $me; $from =~ s/^.*<(.*?)>.*$/$1/; +$sig = "-- \n$sig" unless $sig =~ /^--\s*\n/; + +# NB 22.10.06 +#my @allmail; +#for (@sig) { +# $_ = "$dir/$_"; +# open(F,$_) or die "$_: $!"; +# $_ = ; +# s/\s+$//; +# if (/^From\s*:\s*(.*?)\s*$/) { +# $_ = $1 and push(@allmail,$_); +# s/^.*<(.*?)>.*$/$1/ and push(@allmail,$_); +# s/['"]/$1/g and push(@allmail,$_); +# } +# close F; +#} +#die @allmail; + +# lecture du mail +my (@mail,$mail); +#my $lsig = 0; +open(F,$file) || die "$file: $!"; +$i = 0; + +while ($mail = ) { + + unless ($i) { + + # on est dans l'entete + if ($mail =~ /^\s$/) { + # fin de l'entete + $i = 1; + next; + } + + $mail =~ /^Cc\s*:/ and $mail =~ s/[^,:]*$from[^,:]*//g; + if ($mail =~ /^From\s*:/) { $i=2; next; } + + } + + # NB 04.11.03 on supprime toutes les signatures dans l'email + if (1 and $mail =~ /^[> ]*--+\s*$/) { + $mail = while ($mail !~ /^[> ]*\s*$/); + next; + } + + #$lsig = $. if $mail =~ /^--\s*$/; # signature trouve + # NB 14.10.06 destinataire vide ???? + $mail =~ /^(From|Cc|Bcc|To)\s*:/ + and $mail =~ s/"" <>,?//g + and $mail =~ /^\s*$/ and next; + $mail = &sup_me($me,$mail); + + push(@mail,$mail); +} +close F; + +# on supprime la derniere ligne si vide +pop(@mail) if $mail[$#mail||0] =~ /^\s*$/; + +# noise +@mail = grep { !/^(From|To|Cc): (['"]([^'"<>]+)?['"] )<>\s*$/ } @mail; + +open(F,">$file") || die "$file: $!"; +$_ = join('',@mail); + +s/(To: .*?)\nCc: +(contact|admin)\@izideal.com/$1\nCc: izideal/; + +print F "From: $me\n",$_,"\n$sig"; + +close F; + +sub sup_me { +#------------------------------------------------------------------------------ +# NB 16.06.05 +#------------------------------------------------------------------------------ +my ($me,$mail,$simple) = @_; +#warn $me; + #$mail =~ s/[^:,;]*$me\s*[:,;]?//gi; return $mail; + $mail =~ s/, *$me//gi; + $mail =~ s/$me *,//gi; + $mail =~ s/ *$me *//gi; +# $mail =~ s/ *$me//gi; +# $mail =~ s/$me *//gi; +return $mail if $simple; + $me =~ s/"/'/g; + $mail = &sup_me($me,$mail,1); + $me =~ s/["']//g; + $mail = &sup_me($me,$mail,1); +#return $mail; + $me =~ s/^.*<([^>]+)>.*$/$1/g; +# print "$me\n"; + $mail = &sup_me($me,$mail,1); +return $mail +} + +exit; diff --git a/etc/vim/doc/NERD_commenter.txt b/etc/vim/doc/NERD_commenter.txt new file mode 100644 index 00000000..d79d2788 --- /dev/null +++ b/etc/vim/doc/NERD_commenter.txt @@ -0,0 +1,991 @@ +*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 |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: 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: 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 +Mapped to: 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: 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: 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: 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: 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: 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: 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: 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='' +< +to your vimrc. + +------------------------------------------------------------------------------ +2.2.11 Use alternate delims map *NERDComAltDelim* + +Default mapping: ,ca +Mapped to: 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: NERDCommenterAlignLeft + 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: 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 + #include + #include + |int| main(){ + | | printf("SUCK THIS\n"); + | | while(1){ + | | fork(); + | | } + |} | +< +If NERDBlockComIgnoreEmpty=0 then this code will become: > + #include + #include + #include + /*int*/ main(){ + /* */ printf("SUCK THIS\n"); + /* */ while(1){ + /* */ fork(); + /* */ } + /*} */ +< +Otherwise, the code block would become: > + #include + #include + #include + /*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 -c as the shortcut. + "3": Turns the 'Plugin -> comment' menu on with -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__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 mapping. +For example, to remap the |NERDComComment| mapping to ",omg" you would put +this line in your vimrc: > + map ,omg NERDCommenterComment +< +This will stop the corresponding default mappings from being created. + +See the help for the mapping in question to see which 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 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. diff --git a/etc/vim/doc/tags b/etc/vim/doc/tags new file mode 100644 index 00000000..0c92c9c4 --- /dev/null +++ b/etc/vim/doc/tags @@ -0,0 +1,63 @@ +'NERDAllowAnyVisualDelims' NERD_commenter.txt /*'NERDAllowAnyVisualDelims'* +'NERDBlockComIgnoreEmpty' NERD_commenter.txt /*'NERDBlockComIgnoreEmpty'* +'NERDCommentWholeLinesInVMode' NERD_commenter.txt /*'NERDCommentWholeLinesInVMode'* +'NERDCompactSexyComs' NERD_commenter.txt /*'NERDCompactSexyComs'* +'NERDCreateDefaultMappings' NERD_commenter.txt /*'NERDCreateDefaultMappings'* +'NERDDefaultNesting' NERD_commenter.txt /*'NERDDefaultNesting'* +'NERDLPlace' NERD_commenter.txt /*'NERDLPlace'* +'NERDMenuMode' NERD_commenter.txt /*'NERDMenuMode'* +'NERDRPlace' NERD_commenter.txt /*'NERDRPlace'* +'NERDRemoveAltComs' NERD_commenter.txt /*'NERDRemoveAltComs'* +'NERDRemoveExtraSpaces' NERD_commenter.txt /*'NERDRemoveExtraSpaces'* +'NERDSpaceDelims' NERD_commenter.txt /*'NERDSpaceDelims'* +'NERDUsePlaceHolders' NERD_commenter.txt /*'NERDUsePlaceHolders'* +'loaded_nerd_comments' NERD_commenter.txt /*'loaded_nerd_comments'* +NERDComAbout NERD_commenter.txt /*NERDComAbout* +NERDComAlignedComment NERD_commenter.txt /*NERDComAlignedComment* +NERDComAltDelim NERD_commenter.txt /*NERDComAltDelim* +NERDComAppendComment NERD_commenter.txt /*NERDComAppendComment* +NERDComChangelog NERD_commenter.txt /*NERDComChangelog* +NERDComComment NERD_commenter.txt /*NERDComComment* +NERDComCredits NERD_commenter.txt /*NERDComCredits* +NERDComDefaultDelims NERD_commenter.txt /*NERDComDefaultDelims* +NERDComEOLComment NERD_commenter.txt /*NERDComEOLComment* +NERDComFiletypes NERD_commenter.txt /*NERDComFiletypes* +NERDComFunctionality NERD_commenter.txt /*NERDComFunctionality* +NERDComFunctionalityDetails NERD_commenter.txt /*NERDComFunctionalityDetails* +NERDComFunctionalitySummary NERD_commenter.txt /*NERDComFunctionalitySummary* +NERDComHeuristics NERD_commenter.txt /*NERDComHeuristics* +NERDComInsertComment NERD_commenter.txt /*NERDComInsertComment* +NERDComInvertComment NERD_commenter.txt /*NERDComInvertComment* +NERDComIssues NERD_commenter.txt /*NERDComIssues* +NERDComLicense NERD_commenter.txt /*NERDComLicense* +NERDComMappings NERD_commenter.txt /*NERDComMappings* +NERDComMinimalComment NERD_commenter.txt /*NERDComMinimalComment* +NERDComNERDComment NERD_commenter.txt /*NERDComNERDComment* +NERDComNestedComment NERD_commenter.txt /*NERDComNestedComment* +NERDComNesting NERD_commenter.txt /*NERDComNesting* +NERDComOptions NERD_commenter.txt /*NERDComOptions* +NERDComOptionsDetails NERD_commenter.txt /*NERDComOptionsDetails* +NERDComOptionsSummary NERD_commenter.txt /*NERDComOptionsSummary* +NERDComSexyComment NERD_commenter.txt /*NERDComSexyComment* +NERDComSexyComments NERD_commenter.txt /*NERDComSexyComments* +NERDComToggleComment NERD_commenter.txt /*NERDComToggleComment* +NERDComUncommentLine NERD_commenter.txt /*NERDComUncommentLine* +NERDComYankComment NERD_commenter.txt /*NERDComYankComment* +NERDCommenter NERD_commenter.txt /*NERDCommenter* +NERDCommenterContents NERD_commenter.txt /*NERDCommenterContents* +NERD_commenter.txt NERD_commenter.txt /*NERD_commenter.txt* +int/ NERD_commenter.txt /*int\/* +vimplate vimplate.txt /*vimplate* +vimplate-contents vimplate.txt /*vimplate-contents* +vimplate-description vimplate.txt /*vimplate-description* +vimplate-documentation vimplate.txt /*vimplate-documentation* +vimplate-example vimplate.txt /*vimplate-example* +vimplate-installation vimplate.txt /*vimplate-installation* +vimplate-requirements vimplate.txt /*vimplate-requirements* +vimplate-subroutines vimplate.txt /*vimplate-subroutines* +vimplate-usage vimplate.txt /*vimplate-usage* +xml-plugin-callbacks xml-plugin.txt /*xml-plugin-callbacks* +xml-plugin-html xml-plugin.txt /*xml-plugin-html* +xml-plugin-mappings xml-plugin.txt /*xml-plugin-mappings* +xml-plugin-settings xml-plugin.txt /*xml-plugin-settings* +xml-plugin.txt xml-plugin.txt /*xml-plugin.txt* diff --git a/etc/vim/doc/vimplate.txt b/etc/vim/doc/vimplate.txt new file mode 100644 index 00000000..4fcd7216 --- /dev/null +++ b/etc/vim/doc/vimplate.txt @@ -0,0 +1,350 @@ +*vimplate* vimplate - vim template (example for C++, Perl, LaTeX and make) + +Author: Urs Stotz +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