Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/vim73/ftplugin
diff options
context:
space:
mode:
authorGeroge Hunt <georgejhunt@gmail.com>2011-02-26 20:19:01 (GMT)
committer Geroge Hunt <georgejhunt@gmail.com>2011-02-26 20:19:01 (GMT)
commitfb6211451e0aa64e36ba309934746c12f9ebd869 (patch)
tree2c8f7cbb26f97654a9d7b6b6b26a82a53bc64f07 /vim73/ftplugin
create initial snapshotHEADmaster
Diffstat (limited to 'vim73/ftplugin')
-rw-r--r--vim73/ftplugin/README.txt24
-rw-r--r--vim73/ftplugin/a2ps.vim20
-rw-r--r--vim73/ftplugin/aap.vim25
-rw-r--r--vim73/ftplugin/abaqus.vim89
-rw-r--r--vim73/ftplugin/ada.vim210
-rw-r--r--vim73/ftplugin/alsaconf.vim19
-rw-r--r--vim73/ftplugin/ant.vim43
-rw-r--r--vim73/ftplugin/arch.vim19
-rw-r--r--vim73/ftplugin/art.vim16
-rw-r--r--vim73/ftplugin/aspvbs.vim59
-rw-r--r--vim73/ftplugin/automake.vim16
-rw-r--r--vim73/ftplugin/bdf.vim20
-rw-r--r--vim73/ftplugin/bst.vim15
-rw-r--r--vim73/ftplugin/btm.vim12
-rw-r--r--vim73/ftplugin/c.vim64
-rw-r--r--vim73/ftplugin/calendar.vim20
-rw-r--r--vim73/ftplugin/cdrdaoconf.vim18
-rw-r--r--vim73/ftplugin/ch.vim17
-rw-r--r--vim73/ftplugin/changelog.vim301
-rw-r--r--vim73/ftplugin/cobol.vim266
-rw-r--r--vim73/ftplugin/conf.vim19
-rw-r--r--vim73/ftplugin/config.vim41
-rw-r--r--vim73/ftplugin/context.vim35
-rw-r--r--vim73/ftplugin/cpp.vim12
-rw-r--r--vim73/ftplugin/crm.vim19
-rw-r--r--vim73/ftplugin/cs.vim24
-rw-r--r--vim73/ftplugin/csc.vim26
-rw-r--r--vim73/ftplugin/csh.vim47
-rw-r--r--vim73/ftplugin/css.vim23
-rw-r--r--vim73/ftplugin/cucumber.vim132
-rw-r--r--vim73/ftplugin/cvsrc.vim19
-rw-r--r--vim73/ftplugin/debchangelog.vim383
-rw-r--r--vim73/ftplugin/debcontrol.vim70
-rw-r--r--vim73/ftplugin/denyhosts.vim18
-rw-r--r--vim73/ftplugin/dictconf.vim19
-rw-r--r--vim73/ftplugin/dictdconf.vim19
-rw-r--r--vim73/ftplugin/diff.vim15
-rw-r--r--vim73/ftplugin/dircolors.vim19
-rw-r--r--vim73/ftplugin/docbk.vim22
-rw-r--r--vim73/ftplugin/dosbatch.vim21
-rw-r--r--vim73/ftplugin/dosini.vim19
-rw-r--r--vim73/ftplugin/dtd.vim39
-rw-r--r--vim73/ftplugin/dtrace.vim40
-rw-r--r--vim73/ftplugin/elinks.vim19
-rw-r--r--vim73/ftplugin/eruby.vim104
-rw-r--r--vim73/ftplugin/eterm.vim20
-rw-r--r--vim73/ftplugin/falcon.vim43
-rw-r--r--vim73/ftplugin/fetchmail.vim19
-rw-r--r--vim73/ftplugin/flexwiki.vim59
-rw-r--r--vim73/ftplugin/fortran.vim118
-rw-r--r--vim73/ftplugin/framescript.vim30
-rw-r--r--vim73/ftplugin/fvwm.vim14
-rw-r--r--vim73/ftplugin/git.vim37
-rw-r--r--vim73/ftplugin/gitcommit.vim68
-rw-r--r--vim73/ftplugin/gitconfig.vim15
-rw-r--r--vim73/ftplugin/gitrebase.vim43
-rw-r--r--vim73/ftplugin/gitsendemail.vim6
-rw-r--r--vim73/ftplugin/gpg.vim19
-rw-r--r--vim73/ftplugin/group.vim19
-rw-r--r--vim73/ftplugin/grub.vim19
-rw-r--r--vim73/ftplugin/haml.vim67
-rw-r--r--vim73/ftplugin/hamster.vim61
-rw-r--r--vim73/ftplugin/haskell.vim20
-rw-r--r--vim73/ftplugin/help.vim19
-rw-r--r--vim73/ftplugin/hostconf.vim18
-rw-r--r--vim73/ftplugin/hostsaccess.vim19
-rw-r--r--vim73/ftplugin/html.vim90
-rw-r--r--vim73/ftplugin/htmldjango.vim13
-rw-r--r--vim73/ftplugin/indent.vim20
-rw-r--r--vim73/ftplugin/initex.vim38
-rw-r--r--vim73/ftplugin/ishd.vim28
-rw-r--r--vim73/ftplugin/java.vim50
-rw-r--r--vim73/ftplugin/javascript.vim38
-rw-r--r--vim73/ftplugin/jsp.vim66
-rw-r--r--vim73/ftplugin/kconfig.vim18
-rw-r--r--vim73/ftplugin/kwt.vim20
-rw-r--r--vim73/ftplugin/ld.vim20
-rw-r--r--vim73/ftplugin/lftp.vim19
-rw-r--r--vim73/ftplugin/libao.vim19
-rw-r--r--vim73/ftplugin/limits.vim19
-rw-r--r--vim73/ftplugin/liquid.vim61
-rw-r--r--vim73/ftplugin/lisp.vim26
-rw-r--r--vim73/ftplugin/logcheck.vim17
-rw-r--r--vim73/ftplugin/loginaccess.vim19
-rw-r--r--vim73/ftplugin/logindefs.vim19
-rw-r--r--vim73/ftplugin/logtalk.dict164
-rw-r--r--vim73/ftplugin/logtalk.vim18
-rw-r--r--vim73/ftplugin/lprolog.vim37
-rw-r--r--vim73/ftplugin/lua.vim36
-rw-r--r--vim73/ftplugin/m4.vim20
-rw-r--r--vim73/ftplugin/mail.vim35
-rw-r--r--vim73/ftplugin/mailaliases.vim18
-rw-r--r--vim73/ftplugin/mailcap.vim19
-rw-r--r--vim73/ftplugin/make.vim28
-rw-r--r--vim73/ftplugin/man.vim185
-rw-r--r--vim73/ftplugin/manconf.vim19
-rw-r--r--vim73/ftplugin/markdown.vim19
-rw-r--r--vim73/ftplugin/matlab.vim30
-rw-r--r--vim73/ftplugin/mf.vim19
-rw-r--r--vim73/ftplugin/modconf.vim20
-rw-r--r--vim73/ftplugin/mp.vim28
-rw-r--r--vim73/ftplugin/mplayerconf.vim20
-rw-r--r--vim73/ftplugin/mrxvtrc.vim22
-rw-r--r--vim73/ftplugin/msmessages.vim40
-rw-r--r--vim73/ftplugin/muttrc.vim22
-rw-r--r--vim73/ftplugin/nanorc.vim19
-rw-r--r--vim73/ftplugin/netrc.vim19
-rw-r--r--vim73/ftplugin/nsis.vim22
-rw-r--r--vim73/ftplugin/objc.vim12
-rw-r--r--vim73/ftplugin/ocaml.vim584
-rw-r--r--vim73/ftplugin/occam.vim39
-rw-r--r--vim73/ftplugin/pamconf.vim19
-rw-r--r--vim73/ftplugin/pascal.vim15
-rw-r--r--vim73/ftplugin/passwd.vim19
-rw-r--r--vim73/ftplugin/pdf.vim89
-rw-r--r--vim73/ftplugin/perl.vim71
-rw-r--r--vim73/ftplugin/perl6.vim48
-rw-r--r--vim73/ftplugin/php.vim82
-rw-r--r--vim73/ftplugin/pinfo.vim19
-rw-r--r--vim73/ftplugin/plaintex.vim36
-rw-r--r--vim73/ftplugin/postscr.vim31
-rw-r--r--vim73/ftplugin/procmail.vim21
-rw-r--r--vim73/ftplugin/prolog.vim20
-rw-r--r--vim73/ftplugin/protocols.vim19
-rw-r--r--vim73/ftplugin/pyrex.vim22
-rw-r--r--vim73/ftplugin/python.vim374
-rw-r--r--vim73/ftplugin/python.vim.gh43
-rw-r--r--vim73/ftplugin/qf.vim16
-rw-r--r--vim73/ftplugin/quake.vim19
-rw-r--r--vim73/ftplugin/racc.vim20
-rw-r--r--vim73/ftplugin/readline.vim19
-rw-r--r--vim73/ftplugin/reva.vim25
-rw-r--r--vim73/ftplugin/rnc.vim19
-rw-r--r--vim73/ftplugin/rpl.vim20
-rw-r--r--vim73/ftplugin/rst.vim20
-rw-r--r--vim73/ftplugin/ruby.vim274
-rw-r--r--vim73/ftplugin/sass.vim22
-rw-r--r--vim73/ftplugin/scheme.vim26
-rw-r--r--vim73/ftplugin/screen.vim19
-rw-r--r--vim73/ftplugin/scss.vim12
-rw-r--r--vim73/ftplugin/sensors.vim19
-rw-r--r--vim73/ftplugin/services.vim19
-rw-r--r--vim73/ftplugin/setserial.vim19
-rw-r--r--vim73/ftplugin/sgml.vim39
-rw-r--r--vim73/ftplugin/sh.vim38
-rw-r--r--vim73/ftplugin/sieve.vim20
-rw-r--r--vim73/ftplugin/slpconf.vim20
-rw-r--r--vim73/ftplugin/slpreg.vim20
-rw-r--r--vim73/ftplugin/slpspi.vim20
-rw-r--r--vim73/ftplugin/spec.vim168
-rw-r--r--vim73/ftplugin/sql.vim493
-rw-r--r--vim73/ftplugin/sshconfig.vim19
-rw-r--r--vim73/ftplugin/sudoers.vim19
-rw-r--r--vim73/ftplugin/svg.vim39
-rw-r--r--vim73/ftplugin/sysctl.vim20
-rw-r--r--vim73/ftplugin/tcl.vim36
-rw-r--r--vim73/ftplugin/tcsh.vim39
-rw-r--r--vim73/ftplugin/terminfo.vim19
-rw-r--r--vim73/ftplugin/tex.vim45
-rw-r--r--vim73/ftplugin/udevconf.vim19
-rw-r--r--vim73/ftplugin/udevperm.vim19
-rw-r--r--vim73/ftplugin/udevrules.vim19
-rw-r--r--vim73/ftplugin/updatedb.vim19
-rw-r--r--vim73/ftplugin/vb.vim45
-rw-r--r--vim73/ftplugin/verilog.vim57
-rw-r--r--vim73/ftplugin/vhdl.vim84
-rw-r--r--vim73/ftplugin/vim.vim74
-rw-r--r--vim73/ftplugin/xdefaults.vim20
-rw-r--r--vim73/ftplugin/xf86conf.vim19
-rw-r--r--vim73/ftplugin/xhtml.vim66
-rw-r--r--vim73/ftplugin/xinetd.vim20
-rw-r--r--vim73/ftplugin/xml.vim63
-rw-r--r--vim73/ftplugin/xmodmap.vim19
-rw-r--r--vim73/ftplugin/xs.vim13
-rw-r--r--vim73/ftplugin/xsd.vim38
-rw-r--r--vim73/ftplugin/xslt.vim16
-rw-r--r--vim73/ftplugin/yaml.vim20
-rw-r--r--vim73/ftplugin/zsh.vim19
178 files changed, 8503 insertions, 0 deletions
diff --git a/vim73/ftplugin/README.txt b/vim73/ftplugin/README.txt
new file mode 100644
index 0000000..19ad58b
--- /dev/null
+++ b/vim73/ftplugin/README.txt
@@ -0,0 +1,24 @@
+The ftplugin directory is for Vim plugin scripts that are only used for a
+specific filetype.
+
+All files ending in .vim in this directory and subdirectories will be sourced
+by Vim when it detects the filetype that matches the name of the file or
+subdirectory.
+For example, these are all loaded for the "c" filetype:
+
+ c.vim
+ c_extra.vim
+ c/settings.vim
+
+Note that the "_" in "c_extra.vim" is required to separate the filetype name
+from the following arbitrary name.
+
+The filetype plugins are only loaded when the ":filetype plugin" command has
+been used.
+
+The default filetype plugin files contain settings that 95% of the users will
+want to use. They do not contain personal preferences, like the value of
+'shiftwidth'.
+
+If you want to do additional settings, or overrule the default filetype
+plugin, you can create your own plugin file. See ":help ftplugin" in Vim.
diff --git a/vim73/ftplugin/a2ps.vim b/vim73/ftplugin/a2ps.vim
new file mode 100644
index 0000000..6653351
--- /dev/null
+++ b/vim73/ftplugin/a2ps.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: a2ps(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s include=^\\s*Include:
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/aap.vim b/vim73/ftplugin/aap.vim
new file mode 100644
index 0000000..90d404f
--- /dev/null
+++ b/vim73/ftplugin/aap.vim
@@ -0,0 +1,25 @@
+" Vim filetype plugin file
+" Language: Aap recipe
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2003 Nov 04
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Reset 'formatoptions', 'comments' and 'expandtab' to undo this plugin.
+let b:undo_ftplugin = "setl fo< com< et<"
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" Set 'comments' to format dashed lists in comments.
+setlocal comments=s:#\ -,m:#\ \,e:#,n:#,fb:-
+
+" Expand tabs to spaces to avoid trouble.
+setlocal expandtab
diff --git a/vim73/ftplugin/abaqus.vim b/vim73/ftplugin/abaqus.vim
new file mode 100644
index 0000000..873b9bf
--- /dev/null
+++ b/vim73/ftplugin/abaqus.vim
@@ -0,0 +1,89 @@
+" Vim filetype plugin file
+" Language: Abaqus finite element input file (www.abaqus.com)
+" Maintainer: Carl Osterwisch <osterwischc@asme.org>
+" Last Change: 2008 Oct 5
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin") | finish | endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Save the compatibility options and temporarily switch to vim defaults
+let s:cpo_save = &cpoptions
+set cpoptions&vim
+
+" Set the format of the include file specification for Abaqus
+" Used in :check gf ^wf [i and other commands
+setlocal include=\\<\\cINPUT\\s*=
+
+" Remove characters up to the first = when evaluating filenames
+setlocal includeexpr=substitute(v:fname,'.\\{-}=','','')
+
+" Remove comma from valid filename characters since it is used to
+" separate keyword parameters
+setlocal isfname-=,
+
+" Define format of comment lines (see 'formatoptions' for uses)
+setlocal comments=:**
+setlocal commentstring=**%s
+
+" Definitions start with a * and assign a NAME, NSET, or ELSET
+" Used in [d ^wd and other commands
+setlocal define=^\\*\\a.*\\c\\(NAME\\\|NSET\\\|ELSET\\)\\s*=
+
+" Abaqus keywords and identifiers may include a - character
+setlocal iskeyword+=-
+
+let b:undo_ftplugin = "setlocal include< includeexpr< isfname<"
+ \ . " comments< commentstring< define< iskeyword<"
+
+if has("folding")
+ " Fold all lines that do not begin with *
+ setlocal foldexpr=getline(v:lnum)[0]!=\"\*\"
+ setlocal foldmethod=expr
+ let b:undo_ftplugin .= " foldexpr< foldmethod<"
+endif
+
+" Set the file browse filter (currently only supported under Win32 gui)
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" .
+ \ "Abaqus Results (*.dat)\t*.dat\n" .
+ \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" .
+ \ "All Files (*.*)\t*.*\n"
+ let b:undo_ftplugin .= "|unlet b:browsefilter"
+endif
+
+" Define patterns for the matchit plugin
+if exists("loaded_matchit") && !exists("b:match_words")
+ let b:match_ignorecase = 1
+ let b:match_words =
+ \ '\*part:\*end\s*part,' .
+ \ '\*assembly:\*end\s*assembly,' .
+ \ '\*instance:\*end\s*instance,' .
+ \ '\*step:\*end\s*step'
+ let b:undo_ftplugin .= "|unlet b:match_ignorecase b:match_words"
+endif
+
+" Define keys used to move [count] keywords backward or forward.
+noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR>
+noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR>
+
+" Define key to toggle commenting of the current line or range
+noremap <silent><buffer> <LocalLeader><LocalLeader>
+ \ :call <SID>Abaqus_ToggleComment()<CR>j
+function! <SID>Abaqus_ToggleComment() range
+ if strpart(getline(a:firstline), 0, 2) == "**"
+ " Un-comment all lines in range
+ silent execute a:firstline . ',' . a:lastline . 's/^\*\*//'
+ else
+ " Comment all lines in range
+ silent execute a:firstline . ',' . a:lastline . 's/^/**/'
+ endif
+endfunction
+
+let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
+ \ . "|unmap <buffer> <LocalLeader><LocalLeader>"
+
+" Restore saved compatibility options
+let &cpoptions = s:cpo_save
diff --git a/vim73/ftplugin/ada.vim b/vim73/ftplugin/ada.vim
new file mode 100644
index 0000000..091181f
--- /dev/null
+++ b/vim73/ftplugin/ada.vim
@@ -0,0 +1,210 @@
+"------------------------------------------------------------------------------
+" Description: Perform Ada specific completion & tagging.
+" Language: Ada (2005)
+" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
+" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
+" Taylor Venable <taylor@metasyntax.net>
+" Neil Bird <neil@fnxweb.com>
+" $Author: krischik $
+" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
+" Version: 4.6
+" $Revision: 887 $
+" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/ftplugin/ada.vim $
+" History: 24.05.2006 MK Unified Headers
+" 26.05.2006 MK ' should not be in iskeyword.
+" 16.07.2006 MK Ada-Mode as vim-ball
+" 02.10.2006 MK Better folding.
+" 15.10.2006 MK Bram's suggestion for runtime integration
+" 05.11.2006 MK Bram suggested not to use include protection for
+" autoload
+" 05.11.2006 MK Bram suggested to save on spaces
+" 08.07.2007 TV fix default compiler problems.
+" Help Page: ft-ada-plugin
+"------------------------------------------------------------------------------
+" Provides mapping overrides for tag jumping that figure out the current
+" Ada object and tag jump to that, not the 'simple' vim word.
+" Similarly allows <Ctrl-N> matching of full-length ada entities from tags.
+"------------------------------------------------------------------------------
+
+" Only do this when not done yet for this buffer
+if exists ("b:did_ftplugin") || version < 700
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 45
+
+"
+" Temporarily set cpoptions to ensure the script loads OK
+"
+let s:cpoptions = &cpoptions
+set cpoptions-=C
+
+" Section: Comments {{{1
+"
+setlocal comments=O:--,:--\ \
+setlocal commentstring=--\ \ %s
+setlocal complete=.,w,b,u,t,i
+
+" Section: case {{{1
+"
+setlocal nosmartcase
+setlocal ignorecase
+
+" Section: formatoptions {{{1
+"
+setlocal formatoptions+=ron
+
+" Section: Tagging {{{1
+"
+if exists ("g:ada_extended_tagging")
+ " Make local tag mappings for this buffer (if not already set)
+ if g:ada_extended_tagging == 'jump'
+ if mapcheck('<C-]>','n') == ''
+ nnoremap <unique> <buffer> <C-]> :call ada#Jump_Tag ('', 'tjump')<cr>
+ endif
+ if mapcheck('g<C-]>','n') == ''
+ nnoremap <unique> <buffer> g<C-]> :call ada#Jump_Tag ('','stjump')<cr>
+ endif
+ elseif g:ada_extended_tagging == 'list'
+ if mapcheck('<C-]>','n') == ''
+ nnoremap <unique> <buffer> <C-]> :call ada#List_Tag ()<cr>
+ endif
+ if mapcheck('g<C-]>','n') == ''
+ nnoremap <unique> <buffer> g<C-]> :call ada#List_Tag ()<cr>
+ endif
+ endif
+endif
+
+" Section: Completion {{{1
+"
+setlocal completefunc=ada#User_Complete
+setlocal omnifunc=adacomplete#Complete
+
+if exists ("g:ada_extended_completion")
+ if mapcheck ('<C-N>','i') == ''
+ inoremap <unique> <buffer> <C-N> <C-R>=ada#Completion("\<lt>C-N>")<cr>
+ endif
+ if mapcheck ('<C-P>','i') == ''
+ inoremap <unique> <buffer> <C-P> <C-R>=ada#Completion("\<lt>C-P>")<cr>
+ endif
+ if mapcheck ('<C-X><C-]>','i') == ''
+ inoremap <unique> <buffer> <C-X><C-]> <C-R>=<SID>ada#Completion("\<lt>C-X>\<lt>C-]>")<cr>
+ endif
+ if mapcheck ('<bs>','i') == ''
+ inoremap <silent> <unique> <buffer> <bs> <C-R>=ada#Insert_Backspace ()<cr>
+ endif
+endif
+
+" Section: Matchit {{{1
+"
+" Only do this when not done yet for this buffer & matchit is used
+"
+if !exists ("b:match_words") &&
+ \ exists ("loaded_matchit")
+ "
+ " The following lines enable the macros/matchit.vim plugin for
+ " Ada-specific extended matching with the % key.
+ "
+ let s:notend = '\%(\<end\s\+\)\@<!'
+ let b:match_words =
+ \ s:notend . '\<if\>:\<elsif\>:\<else\>:\<end\>\s\+\<if\>,' .
+ \ s:notend . '\<case\>:\<when\>:\<end\>\s\+\<case\>,' .
+ \ '\%(\<while\>.*\|\<for\>.*\|'.s:notend.'\)\<loop\>:\<end\>\s\+\<loop\>,' .
+ \ '\%(\<do\>\|\<begin\>\):\<exception\>:\<end\>\s*\%($\|[;A-Z]\),' .
+ \ s:notend . '\<record\>:\<end\>\s\+\<record\>'
+endif
+
+
+" Section: Compiler {{{1
+"
+if ! exists("g:ada_default_compiler")
+ if has("vms")
+ let g:ada_default_compiler = 'decada'
+ else
+ let g:ada_default_compiler = 'gnat'
+ endif
+endif
+
+if ! exists("current_compiler") ||
+ \ current_compiler != g:ada_default_compiler
+ execute "compiler " . g:ada_default_compiler
+endif
+
+" Section: Folding {{{1
+"
+if exists("g:ada_folding")
+ if g:ada_folding[0] == 'i'
+ setlocal foldmethod=indent
+ setlocal foldignore=--
+ setlocal foldnestmax=5
+ elseif g:ada_folding[0] == 'g'
+ setlocal foldmethod=expr
+ setlocal foldexpr=ada#Pretty_Print_Folding(v:lnum)
+ elseif g:ada_folding[0] == 's'
+ setlocal foldmethod=syntax
+ endif
+ setlocal tabstop=8
+ setlocal softtabstop=3
+ setlocal shiftwidth=3
+endif
+
+" Section: Abbrev {{{1
+"
+if exists("g:ada_abbrev")
+ iabbrev ret return
+ iabbrev proc procedure
+ iabbrev pack package
+ iabbrev func function
+endif
+
+" Section: Commands, Mapping, Menus {{{1
+"
+call ada#Map_Popup (
+ \ 'Tag.List',
+ \ 'l',
+ \ 'call ada#List_Tag ()')
+call ada#Map_Popup (
+ \'Tag.Jump',
+ \'j',
+ \'call ada#Jump_Tag ()')
+call ada#Map_Menu (
+ \'Tag.Create File',
+ \':AdaTagFile',
+ \'call ada#Create_Tags (''file'')')
+call ada#Map_Menu (
+ \'Tag.Create Dir',
+ \':AdaTagDir',
+ \'call ada#Create_Tags (''dir'')')
+
+call ada#Map_Menu (
+ \'Highlight.Toggle Space Errors',
+ \ ':AdaSpaces',
+ \'call ada#Switch_Syntax_Option (''space_errors'')')
+call ada#Map_Menu (
+ \'Highlight.Toggle Lines Errors',
+ \ ':AdaLines',
+ \'call ada#Switch_Syntax_Option (''line_errors'')')
+call ada#Map_Menu (
+ \'Highlight.Toggle Rainbow Color',
+ \ ':AdaRainbow',
+ \'call ada#Switch_Syntax_Option (''rainbow_color'')')
+call ada#Map_Menu (
+ \'Highlight.Toggle Standard Types',
+ \ ':AdaTypes',
+ \'call ada#Switch_Syntax_Option (''standard_types'')')
+
+" 1}}}
+" Reset cpoptions
+let &cpoptions = s:cpoptions
+unlet s:cpoptions
+
+finish " 1}}}
+
+"------------------------------------------------------------------------------
+" Copyright (C) 2006 Martin Krischik
+"
+" Vim is Charityware - see ":help license" or uganda.txt for licence details.
+"------------------------------------------------------------------------------
+" vim: textwidth=78 nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
+" vim: foldmethod=marker
diff --git a/vim73/ftplugin/alsaconf.vim b/vim73/ftplugin/alsaconf.vim
new file mode 100644
index 0000000..5d763c8
--- /dev/null
+++ b/vim73/ftplugin/alsaconf.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: alsaconf(8) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/ant.vim b/vim73/ftplugin/ant.vim
new file mode 100644
index 0000000..648fca1
--- /dev/null
+++ b/vim73/ftplugin/ant.vim
@@ -0,0 +1,43 @@
+" Vim filetype plugin file
+" Language: ant
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "XML Files (*.xml)\t*.xml\n" .
+ \ "All Files (*.*)\t*.*\n"
+
+runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
+let b:did_ftplugin = 1
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+endif
+
+" Change the :browse e filter to primarily show Ant-related files.
+if has("gui_win32")
+ let b:browsefilter = "Build Files (build.xml)\tbuild.xml\n" .
+ \ "Java Files (*.java)\t*.java\n" .
+ \ "Properties Files (*.prop*)\t*.prop*\n" .
+ \ "Manifest Files (*.mf)\t*.mf\n" .
+ \ s:browsefilter
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/arch.vim b/vim73/ftplugin/arch.vim
new file mode 100644
index 0000000..71d831e
--- /dev/null
+++ b/vim73/ftplugin/arch.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: GNU Arch inventory file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/art.vim b/vim73/ftplugin/art.vim
new file mode 100644
index 0000000..cb95e6b
--- /dev/null
+++ b/vim73/ftplugin/art.vim
@@ -0,0 +1,16 @@
+" Vim filetype plugin
+" Language: ART-IM and ART*Enterprise
+" Maintainer: Dorai Sitaram <ds26@gte.com>
+" URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
+" Last Change: Apr 2, 2003
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+run ftplugin/lisp.vim
+
+setl lw-=if
+setl lw+=def-art-fun,deffacts,defglobal,defrule,defschema,
+ \for,schema,while
diff --git a/vim73/ftplugin/aspvbs.vim b/vim73/ftplugin/aspvbs.vim
new file mode 100644
index 0000000..2b841ef
--- /dev/null
+++ b/vim73/ftplugin/aspvbs.vim
@@ -0,0 +1,59 @@
+" Vim filetype plugin file
+" Language: aspvbs
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "HTML Files (*.html, *.htm)\t*.htm*\n" .
+ \ "All Files (*.*)\t*.*\n"
+let s:match_words = ""
+
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+let b:did_ftplugin = 1
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words
+endif
+
+" ASP: Active Server Pages (with Visual Basic Script)
+" thanks to Gontran BAERTS
+if exists("loaded_matchit")
+ let s:notend = '\%(\<end\s\+\)\@<!'
+ let b:match_ignorecase = 1
+ let b:match_words =
+ \ s:notend . '\<if\>\%(.\{-}then\s\+\w\)\@!:\<elseif\>:^\s*\<else\>:\<end\s\+\<if\>,' .
+ \ s:notend . '\<select\s\+case\>:\<case\>:\<case\s\+else\>:\<end\s\+select\>,' .
+ \ '^\s*\<sub\>:\<end\s\+sub\>,' .
+ \ '^\s*\<function\>:\<end\s\+function\>,' .
+ \ '\<class\>:\<end\s\+class\>,' .
+ \ '^\s*\<do\>:\<loop\>,' .
+ \ '^\s*\<for\>:\<next\>,' .
+ \ '\<while\>:\<wend\>,' .
+ \ s:match_words
+endif
+
+" Change the :browse e filter to primarily show ASP-related files.
+if has("gui_win32")
+ let b:browsefilter="ASP Files (*.asp)\t*.asp\n" . s:browsefilter
+endif
+
+let b:undo_ftplugin = "unlet! b:match_words b:match_ignorecase b:browsefilter | " . s:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/automake.vim b/vim73/ftplugin/automake.vim
new file mode 100644
index 0000000..20b06af
--- /dev/null
+++ b/vim73/ftplugin/automake.vim
@@ -0,0 +1,16 @@
+" Vim filetype plugin file
+" Language: Automake
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+runtime! ftplugin/make.vim ftplugin/make_*.vim ftplugin/make/*.vim
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/bdf.vim b/vim73/ftplugin/bdf.vim
new file mode 100644
index 0000000..120c5df
--- /dev/null
+++ b/vim73/ftplugin/bdf.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: BDF font definition
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=b:COMMENT commentstring=COMMENT\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/bst.vim b/vim73/ftplugin/bst.vim
new file mode 100644
index 0000000..5e65aac
--- /dev/null
+++ b/vim73/ftplugin/bst.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin file
+" Language: bst
+" Author: Tim Pope <vimNOSPAM@tpope.info>
+" $Id: bst.vim,v 1.1 2007/05/05 17:37:57 vimboss Exp $
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal commentstring=%\ %s
+setlocal comments=:%
+setlocal fo-=t fo+=croql
+
+let b:undo_ftplugin = "setlocal com< cms< fo<"
diff --git a/vim73/ftplugin/btm.vim b/vim73/ftplugin/btm.vim
new file mode 100644
index 0000000..d3dc5b7
--- /dev/null
+++ b/vim73/ftplugin/btm.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Language: BTM
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2004 Jul 06
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Behaves just like dosbatch
+runtime! ftplugin/dosbatch.vim ftplugin/dosbatch_*.vim ftplugin/dosbatch/*.vim
diff --git a/vim73/ftplugin/c.vim b/vim73/ftplugin/c.vim
new file mode 100644
index 0000000..162205b
--- /dev/null
+++ b/vim73/ftplugin/c.vim
@@ -0,0 +1,64 @@
+" Vim filetype plugin file
+" Language: C
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2007 Sep 25
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Using line continuation here.
+let s:cpo_save = &cpo
+set cpo-=C
+
+let b:undo_ftplugin = "setl fo< com< ofu< | if has('vms') | setl isk< | endif"
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" Set completion with CTRL-X CTRL-O to autoloaded function.
+if exists('&ofu')
+ setlocal ofu=ccomplete#Complete
+endif
+
+" Set 'comments' to format dashed lists in comments.
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+
+" In VMS C keywords contain '$' characters.
+if has("vms")
+ setlocal iskeyword+=$
+endif
+
+" When the matchit plugin is loaded, this makes the % command skip parens and
+" braces in comments.
+let b:match_words = &matchpairs
+let b:match_skip = 's:comment\|string\|character'
+
+" Win32 can filter files in the browse dialog
+if has("gui_win32") && !exists("b:browsefilter")
+ if &ft == "cpp"
+ let b:browsefilter = "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" .
+ \ "C Header Files (*.h)\t*.h\n" .
+ \ "C Source Files (*.c)\t*.c\n" .
+ \ "All Files (*.*)\t*.*\n"
+ elseif &ft == "ch"
+ let b:browsefilter = "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" .
+ \ "C Header Files (*.h)\t*.h\n" .
+ \ "C Source Files (*.c)\t*.c\n" .
+ \ "All Files (*.*)\t*.*\n"
+ else
+ let b:browsefilter = "C Source Files (*.c)\t*.c\n" .
+ \ "C Header Files (*.h)\t*.h\n" .
+ \ "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" .
+ \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" .
+ \ "All Files (*.*)\t*.*\n"
+ endif
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/calendar.vim b/vim73/ftplugin/calendar.vim
new file mode 100644
index 0000000..6f117e3
--- /dev/null
+++ b/vim73/ftplugin/calendar.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: calendar(1) input file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=s1:/*,mb:*,ex:*/ commentstring& include&
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/cdrdaoconf.vim b/vim73/ftplugin/cdrdaoconf.vim
new file mode 100644
index 0000000..557fd82
--- /dev/null
+++ b/vim73/ftplugin/cdrdaoconf.vim
@@ -0,0 +1,18 @@
+" Vim filetype plugin file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-12-04
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/ch.vim b/vim73/ftplugin/ch.vim
new file mode 100644
index 0000000..ed09003
--- /dev/null
+++ b/vim73/ftplugin/ch.vim
@@ -0,0 +1,17 @@
+" Vim filetype plugin file
+" Language: Ch
+" Maintainer: SoftIntegration, Inc. <info@softintegration.com>
+" URL: http://www.softintegration.com/download/vim/ftplugin/ch.vim
+" Last change: 2004 May 16
+" Created based on cpp.vim
+"
+" Ch is a C/C++ interpreter with many high level extensions
+"
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Behaves just like C
+runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim
diff --git a/vim73/ftplugin/changelog.vim b/vim73/ftplugin/changelog.vim
new file mode 100644
index 0000000..c871a77
--- /dev/null
+++ b/vim73/ftplugin/changelog.vim
@@ -0,0 +1,301 @@
+" Vim filetype plugin file
+" Language: generic Changelog file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2010-08-17
+" Variables:
+" g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
+" description: the timeformat used in ChangeLog entries.
+" default: "%Y-%m-%d".
+" g:changelog_dateformat -
+" description: the format sent to strftime() to generate a date string.
+" default: "%Y-%m-%d".
+" g:changelog_username -
+" description: the username to use in ChangeLog entries
+" default: try to deduce it from environment variables and system files.
+" Local Mappings:
+" <Leader>o -
+" adds a new changelog entry for the current user for the current date.
+" Global Mappings:
+" <Leader>o -
+" switches to the ChangeLog buffer opened for the current directory, or
+" opens it in a new buffer if it exists in the current directory. Then
+" it does the same as the local <Leader>o described above.
+" Notes:
+" run 'runtime ftplugin/changelog.vim' to enable the global mapping for
+" changelog files.
+" TODO:
+" should we perhaps open the ChangeLog file even if it doesn't exist already?
+" Problem is that you might end up with ChangeLog files all over the place.
+
+" If 'filetype' isn't "changelog", we must have been to add ChangeLog opener
+if &filetype == 'changelog'
+ if exists('b:did_ftplugin')
+ finish
+ endif
+ let b:did_ftplugin = 1
+
+ let s:cpo_save = &cpo
+ set cpo&vim
+
+ " Set up the format used for dates.
+ if !exists('g:changelog_dateformat')
+ if exists('g:changelog_timeformat')
+ let g:changelog_dateformat = g:changelog_timeformat
+ else
+ let g:changelog_dateformat = "%Y-%m-%d"
+ endif
+ endif
+
+ function! s:username()
+ if exists('g:changelog_username')
+ return g:changelog_username
+ elseif $EMAIL != ""
+ return $EMAIL
+ elseif $EMAIL_ADDRESS != ""
+ return $EMAIL_ADDRESS
+ endif
+
+ let login = s:login()
+ return printf('%s <%s@%s>', s:name(login), login, s:hostname())
+ endfunction
+
+ function! s:login()
+ return s:trimmed_system_with_default('whoami', 'unknown')
+ endfunction
+
+ function! s:trimmed_system_with_default(command, default)
+ return s:first_line(s:system_with_default(a:command, a:default))
+ endfunction
+
+ function! s:system_with_default(command, default)
+ let output = system(a:command)
+ if v:shell_error
+ return default
+ endif
+ return output
+ endfunction
+
+ function! s:first_line(string)
+ return substitute(a:string, '\n.*$', "", "")
+ endfunction
+
+ function! s:name(login)
+ for name in [s:gecos_name(a:login), $NAME, s:capitalize(a:login)]
+ if name != ""
+ return name
+ endif
+ endfor
+ endfunction
+
+ function! s:gecos_name(login)
+ for line in s:try_reading_file('/etc/passwd')
+ if line =~ '^' . a:login . ':'
+ return substitute(s:passwd_field(line, 5), '&', s:capitalize(a:login), "")
+ endif
+ endfor
+ return ""
+ endfunction
+
+ function! s:try_reading_file(path)
+ try
+ return readfile(a:path)
+ endtry
+ return []
+ endfunction
+
+ function! s:passwd_field(line, field)
+ let fields = split(a:line, ':', 1)
+ if len(fields) < field
+ return ""
+ endif
+ return fields[field - 1]
+ endfunction
+
+ function! s:capitalize(word)
+ return toupper(a:word[0]) . strpart(a:word, 1)
+ endfunction
+
+ function! s:hostname()
+ return s:trimmed_system_with_default('hostname', 'localhost')
+ endfunction
+
+ " Format used for new date entries.
+ if !exists('g:changelog_new_date_format')
+ let g:changelog_new_date_format = "%d %u\n\n\t* %c\n\n"
+ endif
+
+ " Format used for new entries to current date entry.
+ if !exists('g:changelog_new_entry_format')
+ let g:changelog_new_entry_format = "\t* %c"
+ endif
+
+ " Regular expression used to find a given date entry.
+ if !exists('g:changelog_date_entry_search')
+ let g:changelog_date_entry_search = '^\s*%d\_s*%u'
+ endif
+
+ " Regular expression used to find the end of a date entry
+ if !exists('g:changelog_date_end_entry_search')
+ let g:changelog_date_end_entry_search = '^\s*$'
+ endif
+
+
+ " Substitutes specific items in new date-entry formats and search strings.
+ " Can be done with substitute of course, but unclean, and need \@! then.
+ function! s:substitute_items(str, date, user)
+ let str = a:str
+ let middles = {'%': '%', 'd': a:date, 'u': a:user, 'c': '{cursor}'}
+ let i = stridx(str, '%')
+ while i != -1
+ let inc = 0
+ if has_key(middles, str[i + 1])
+ let mid = middles[str[i + 1]]
+ let str = strpart(str, 0, i) . mid . strpart(str, i + 2)
+ let inc = strlen(mid)
+ endif
+ let i = stridx(str, '%', i + 1 + inc)
+ endwhile
+ return str
+ endfunction
+
+ " Position the cursor once we've done all the funky substitution.
+ function! s:position_cursor()
+ if search('{cursor}') > 0
+ let lnum = line('.')
+ let line = getline(lnum)
+ let cursor = stridx(line, '{cursor}')
+ call setline(lnum, substitute(line, '{cursor}', '', ''))
+ endif
+ startinsert!
+ endfunction
+
+ " Internal function to create a new entry in the ChangeLog.
+ function! s:new_changelog_entry(...)
+ " Deal with 'paste' option.
+ let save_paste = &paste
+ let &paste = 1
+ call cursor(1, 1)
+ " Look for an entry for today by our user.
+ let date = strftime(g:changelog_dateformat)
+ let search = s:substitute_items(g:changelog_date_entry_search, date,
+ \ g:changelog_username)
+ if search(search) > 0
+ " Ok, now we look for the end of the date entry, and add an entry.
+ call cursor(nextnonblank(line('.') + 1), 1)
+ if search(g:changelog_date_end_entry_search, 'W') > 0
+ let p = (line('.') == line('$')) ? line('.') : line('.') - 1
+ else
+ let p = line('.')
+ endif
+ let ls = split(s:substitute_items(g:changelog_new_entry_format, '', ''),
+ \ '\n')
+ call append(p, ls)
+ call cursor(p + 1, 1)
+ else
+ " Flag for removing empty lines at end of new ChangeLogs.
+ let remove_empty = line('$') == 1
+
+ " No entry today, so create a date-user header and insert an entry.
+ let todays_entry = s:substitute_items(g:changelog_new_date_format,
+ \ date, g:changelog_username)
+ " Make sure we have a cursor positioning.
+ if stridx(todays_entry, '{cursor}') == -1
+ let todays_entry = todays_entry . '{cursor}'
+ endif
+
+ " Now do the work.
+ call append(0, split(todays_entry, '\n'))
+
+ " Remove empty lines at end of file.
+ if remove_empty
+ $-/^\s*$/-1,$delete
+ endif
+
+ " Reposition cursor once we're done.
+ call cursor(1, 1)
+ endif
+
+ call s:position_cursor()
+
+ " And reset 'paste' option
+ let &paste = save_paste
+ endfunction
+
+ if exists(":NewChangelogEntry") != 2
+ noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR>
+ command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
+ endif
+
+ let b:undo_ftplugin = "setl com< fo< et< ai<"
+
+ setlocal comments=
+ setlocal formatoptions+=t
+ setlocal noexpandtab
+ setlocal autoindent
+
+ if &textwidth == 0
+ setlocal textwidth=78
+ let b:undo_ftplugin .= " tw<"
+ endif
+
+ let &cpo = s:cpo_save
+ unlet s:cpo_save
+else
+ let s:cpo_save = &cpo
+ set cpo&vim
+
+ " Add the Changelog opening mapping
+ nnoremap <silent> <Leader>o :call <SID>open_changelog()<CR>
+
+ function! s:open_changelog()
+ let path = expand('%:p:h')
+ if exists('b:changelog_path')
+ let changelog = b:changelog_path
+ else
+ if exists('b:changelog_name')
+ let name = b:changelog_name
+ else
+ let name = 'ChangeLog'
+ endif
+ while isdirectory(path)
+ let changelog = path . '/' . name
+ if filereadable(changelog)
+ break
+ endif
+ let parent = substitute(path, '/\+[^/]*$', "", "")
+ if path == parent
+ break
+ endif
+ let path = parent
+ endwhile
+ endif
+ if !filereadable(changelog)
+ return
+ endif
+
+ if exists('b:changelog_entry_prefix')
+ let prefix = call(b:changelog_entry_prefix, [])
+ else
+ let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "") . ':'
+ endif
+ if !empty(prefix)
+ let prefix = ' ' . prefix
+ endif
+
+ let buf = bufnr(changelog)
+ if buf != -1
+ if bufwinnr(buf) != -1
+ execute bufwinnr(buf) . 'wincmd w'
+ else
+ execute 'sbuffer' buf
+ endif
+ else
+ execute 'split' fnameescape(changelog)
+ endif
+
+ call s:new_changelog_entry(prefix)
+ endfunction
+
+ let &cpo = s:cpo_save
+ unlet s:cpo_save
+endif
diff --git a/vim73/ftplugin/cobol.vim b/vim73/ftplugin/cobol.vim
new file mode 100644
index 0000000..203d734
--- /dev/null
+++ b/vim73/ftplugin/cobol.vim
@@ -0,0 +1,266 @@
+" Vim filetype plugin file
+" Language: cobol
+" Author: Tim Pope <vimNOSPAM@tpope.info>
+" $Id: cobol.vim,v 1.1 2007/05/05 17:24:38 vimboss Exp $
+
+" Insert mode mappings: <C-T> <C-D> <Tab>
+" Normal mode mappings: < > << >> [[ ]] [] ][
+" Visual mode mappings: < >
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal commentstring=\ \ \ \ \ \ *%s
+setlocal comments=:*
+setlocal fo+=croqlt
+setlocal expandtab
+setlocal textwidth=72
+
+" matchit support
+if exists("loaded_matchit")
+ let s:ordot = '\|\ze\.\%( \@=\|$\)'
+ let b:match_ignorecase=1
+ "let b:match_skip = 'getline(".") =~ "^.\\{6\\}[*/C]"'
+ let b:match_words=
+ \ '\$if\>:$else\>:\$endif\>,' .
+ \ '[$-]\@<!\<if\>:\<\%(then\|else\)\>:\<end-if\>'.s:ordot.',' .
+ \ '-\@<!\<perform\s\+\%(\d\+\s\+times\|until\|varying\|with\s\+test\)\>:\<end-perform\>'.s:ordot . ',' .
+ \ '-\@<!\<\%(search\|evaluate\)\>:\<\%(when\)\>:\<end-\%(search\|evaluate\)\>' .s:ordot . ',' .
+ \ '-\@<!\<\%(add\|compute\|divide\|multiply\|subtract\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+size\s\+error\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=on\s\+size\s\+error\>:\<end-\%(add\|compute\|divide\|multiply\|subtract\)\>' .s:ordot . ',' .
+ \ '-\@<!\<\%(string\|unstring\|accept\|display\|call\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+\%(overflow\|exception\)\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=on\s\+\%(overflow\|exception\)\>:\<end-\%(string\|unstring\|accept\|display\|call\)\>' .s:ordot . ',' .
+ \ '-\@<!\<\%(delete\|rewrite\|start\|write\|read\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(invalid\s\+key\|at\s\+end\|no\s\+data\|at\s\+end-of-page\)\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=\%(invalid\s\+key\|at\s\+end\|no\s\+data\|at\s\+end-of-page\)\>:\<end-\%(delete\|rewrite\|start\|write\|read\)\>' .s:ordot
+endif
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "COBOL Source Files (*.cbl, *.cob)\t*.cbl;*.cob;*.lib\n".
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+let b:undo_ftplugin = "setlocal com< cms< fo< et< tw<" .
+ \ " | unlet! b:browsefilter b:match_words b:match_ignorecase b:match_skip"
+if !exists("g:no_plugin_maps") && !exists("g:no_cobol_maps")
+ let b:undo_ftplugin = b:undo_ftplugin .
+ \ " | sil! exe 'nunmap <buffer> <'" .
+ \ " | sil! exe 'nunmap <buffer> >'" .
+ \ " | sil! exe 'nunmap <buffer> <<'" .
+ \ " | sil! exe 'nunmap <buffer> >>'" .
+ \ " | sil! exe 'vunmap <buffer> <'" .
+ \ " | sil! exe 'vunmap <buffer> >'" .
+ \ " | sil! exe 'iunmap <buffer> <C-D>'" .
+ \ " | sil! exe 'iunmap <buffer> <C-T>'" .
+ \ " | sil! exe 'iunmap <buffer> <Tab>'" .
+ \ " | sil! exe 'nunmap <buffer> <Plug>Traditional'" .
+ \ " | sil! exe 'nunmap <buffer> <Plug>Comment'" .
+ \ " | sil! exe 'nunmap <buffer> <Plug>DeComment'" .
+ \ " | sil! exe 'vunmap <buffer> <Plug>VisualTraditional'" .
+ \ " | sil! exe 'vunmap <buffer> <Plug>VisualComment'" .
+ \ " | sil! exe 'iunmap <buffer> <Plug>VisualDeComment'" .
+ \ " | sil! exe 'unmap <buffer> [['" .
+ \ " | sil! exe 'unmap <buffer> ]]'" .
+ \ " | sil! exe 'unmap <buffer> []'" .
+ \ " | sil! exe 'unmap <buffer> ]['"
+endif
+
+if !exists("g:no_plugin_maps") && !exists("g:no_cobol_maps")
+ if version >= 700
+ nnoremap <silent> <buffer> > :set opfunc=<SID>IncreaseFunc<CR>g@
+ nnoremap <silent> <buffer> < :set opfunc=<SID>DecreaseFunc<CR>g@
+ endif
+ nnoremap <silent> <buffer> >> :call CobolIndentBlock(1)<CR>
+ nnoremap <silent> <buffer> << :call CobolIndentBlock(-1)<CR>
+ vnoremap <silent> <buffer> > :call CobolIndentBlock(v:count1)<CR>
+ vnoremap <silent> <buffer> < :call CobolIndentBlock(-v:count1)<CR>
+ inoremap <silent> <buffer> <C-T> <C-R>=<SID>IncreaseIndent()<CR><C-R>=<SID>RestoreShiftwidth()<CR>
+ inoremap <silent> <buffer> <C-D> <C-R>=<SID>DecreaseIndent()<CR><C-R>=<SID>RestoreShiftwidth()<CR>
+ if !maparg("<Tab>","i")
+ inoremap <silent> <buffer> <Tab> <C-R>=<SID>Tab()<CR><C-R>=<SID>RestoreShiftwidth()<CR>
+ endif
+ noremap <silent> <buffer> [[ m':call search('\c^\%(\s*\<Bar>.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\<Bar>section\)\s*\.','bW')<CR>
+ noremap <silent> <buffer> ]] m':call search('\c^\%(\s*\<Bar>.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\<Bar>section\)\.','W')<CR>
+ noremap <silent> <buffer> [] m':call <SID>toend('b')<CR>
+ noremap <silent> <buffer> ][ m':call <SID>toend('')<CR>
+ " For EnhancedCommentify
+ noremap <silent> <buffer> <Plug>Traditional :call <SID>Comment('t')<CR>
+ noremap <silent> <buffer> <Plug>Comment :call <SID>Comment('c')<CR>
+ noremap <silent> <buffer> <Plug>DeComment :call <SID>Comment('u')<CR>
+ noremap <silent> <buffer> <Plug>VisualTraditional :'<,'>call <SID>Comment('t')<CR>
+ noremap <silent> <buffer> <Plug>VisualComment :'<,'>call <SID>Comment('c')<CR>
+ noremap <silent> <buffer> <Plug>VisualDeComment :'<,'>call <SID>Comment('u')<CR>
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+if exists("g:did_cobol_ftplugin_functions")
+ finish
+endif
+let g:did_cobol_ftplugin_functions = 1
+
+function! s:repeat(str,count)
+ let i = 0
+ let ret = ""
+ while i < a:count
+ let ret = ret . a:str
+ let i = i + 1
+ endwhile
+ return ret
+endfunction
+
+function! s:increase(...)
+ let lnum = '.'
+ let sw = &shiftwidth
+ let i = a:0 ? a:1 : indent(lnum)
+ if i >= 11
+ return sw - (i - 11) % sw
+ elseif i >= 7
+ return 11-i
+ elseif i == 6
+ return 1
+ else
+ return 6-i
+ endif
+endfunction
+
+function! s:decrease(...)
+ let lnum = '.'
+ let sw = &shiftwidth
+ let i = indent(a:0 ? a:1 : lnum)
+ if i >= 11 + sw
+ return 1 + (i + 12) % sw
+ elseif i > 11
+ return i-11
+ elseif i > 7
+ return i-7
+ elseif i == 7
+ return 1
+ else
+ return i
+ endif
+endfunction
+
+function! CobolIndentBlock(shift)
+ let head = strpart(getline('.'),0,7)
+ let tail = strpart(getline('.'),7)
+ let indent = match(tail,'[^ ]')
+ let sw = &shiftwidth
+ let shift = a:shift
+ if shift > 0
+ if indent < 4
+ let tail = s:repeat(" ",4-indent).tail
+ let shift = shift - 1
+ endif
+ let tail = s:repeat(" ",shift*sw).tail
+ let shift = 0
+ elseif shift < 0
+ if (indent-4) > -shift * sw
+ let tail = strpart(tail,-shift * sw)
+ elseif (indent-4) > (-shift-1) * sw
+ let tail = strpart(tail,indent - 4)
+ else
+ let tail = strpart(tail,indent)
+ endif
+ endif
+ call setline('.',head.tail)
+endfunction
+
+function! s:IncreaseFunc(type)
+ '[,']call CobolIndentBlock(1)
+endfunction
+
+function! s:DecreaseFunc(type)
+ '[,']call CobolIndentBlock(-1)
+endfunction
+
+function! s:IncreaseIndent()
+ let c = "\<C-T>"
+ if exists("*InsertCtrlTWrapper")
+ let key = InsertCtrlTWrapper()
+ if key != c
+ return key
+ endif
+ endif
+ let interval = s:increase()
+ let b:cobol_shiftwidth = &shiftwidth
+ let &shiftwidth = 1
+ let lastchar = strpart(getline('.'),col('.')-2,1)
+ if lastchar == '0' || lastchar == '^'
+ return "\<BS>".lastchar.c
+ else
+ return s:repeat(c,interval)
+ endif
+endfunction
+
+function! s:DecreaseIndent()
+ let c = "\<C-D>"
+ if exists("*InsertCtrlDWrapper")
+ " I hack Ctrl-D to delete when not at the end of the line.
+ let key = InsertCtrlDWrapper()
+ if key != c
+ return key
+ endif
+ endif
+ let interval = s:decrease()
+ let b:cobol_shiftwidth = &shiftwidth
+ let &shiftwidth = 1
+ return s:repeat(c,interval)
+endfunction
+
+function! s:RestoreShiftwidth()
+ if exists("b:cobol_shiftwidth")
+ let &shiftwidth=b:cobol_shiftwidth
+ unlet b:cobol_shiftwidth
+ endif
+ return ""
+endfunction
+
+function! s:Tab()
+ if (strpart(getline('.'),0,col('.')-1) =~ '^\s*$' && &sta)
+ return s:IncreaseIndent()
+ elseif &sts == &sw && &sts != 8 && &et
+ return s:repeat(" ",s:increase(col('.')-1))
+ else
+ return "\<Tab>"
+ endif
+endfunction
+
+function! s:Comment(arg)
+ " For EnhancedCommentify
+ let line = getline('.')
+ if (line =~ '^.\{6\}[*/C]' || a:arg == 'c') && a:arg != 'u'
+ let line = substitute(line,'^.\{6\}\zs.',' ','')
+ else
+ let line = substitute(line,'^.\{6\}\zs.','*','')
+ endif
+ call setline('.',line)
+endfunction
+
+function! s:toend(direction)
+ let ignore = '^\(\s*\|.\{6\}\)\%([*/]\|\s*$\)'
+ let keep = line('.')
+ keepjumps +
+ while line('.') < line('$') && getline('.') =~ ignore
+ keepjumps +
+ endwhile
+ let res = search('\c^\%(\s*\|.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\|section\)\s*\.',a:direction.'W')
+ if a:direction != 'b' && !res
+ let res = line('$')
+ keepjumps $
+ elseif res
+ keepjumps -
+ endif
+ if res
+ while line('.') > 1 && getline('.') =~ ignore
+ keepjumps -
+ endwhile
+ if line('.') == 1 && getline('.') =~ ignore
+ exe "keepjumps ".keep
+ endif
+ else
+ exe "keepjumps ".keep
+ endif
+endfunction
diff --git a/vim73/ftplugin/conf.vim b/vim73/ftplugin/conf.vim
new file mode 100644
index 0000000..1b110e4
--- /dev/null
+++ b/vim73/ftplugin/conf.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: generic configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/config.vim b/vim73/ftplugin/config.vim
new file mode 100644
index 0000000..df607b1
--- /dev/null
+++ b/vim73/ftplugin/config.vim
@@ -0,0 +1,41 @@
+" Vim filetype plugin file
+" Language: config
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "Bourne Shell Files (*.sh)\t*.sh\n" .
+ \ "All Files (*.*)\t*.*\n"
+let s:match_words = ""
+
+runtime! ftplugin/sh.vim ftplugin/sh_*.vim ftplugin/sh/*.vim
+let b:did_ftplugin = 1
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+endif
+
+" Change the :browse e filter to primarily show configure-related files.
+if has("gui_win32")
+ let b:browsefilter="Configure Scripts (configure.*, config.*)\tconfigure*;config.*\n" .
+ \ s:browsefilter
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "unlet! b:browsefilter | " . b:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/context.vim b/vim73/ftplugin/context.vim
new file mode 100644
index 0000000..1c7d678
--- /dev/null
+++ b/vim73/ftplugin/context.vim
@@ -0,0 +1,35 @@
+" Vim filetype plugin file
+" Language: ConTeXt typesetting engine
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo<"
+
+setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql
+
+let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
+ \ . 'def\|\\font\|\\\%(future\)\=let'
+ \ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
+ \ . '\|fam\|insert\|if\)'
+
+let &l:include = '^\s*\%(input\|component\)'
+
+setlocal suffixesadd=.tex
+
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
+ let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' .
+ \ '\\start\(\a\+\):\\stop\1'
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/cpp.vim b/vim73/ftplugin/cpp.vim
new file mode 100644
index 0000000..8c3f211
--- /dev/null
+++ b/vim73/ftplugin/cpp.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Language: C++
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2001 Jan 15
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Behaves just like C
+runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim
diff --git a/vim73/ftplugin/crm.vim b/vim73/ftplugin/crm.vim
new file mode 100644
index 0000000..e86e683
--- /dev/null
+++ b/vim73/ftplugin/crm.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: CRM114
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/cs.vim b/vim73/ftplugin/cs.vim
new file mode 100644
index 0000000..0ff3c9d
--- /dev/null
+++ b/vim73/ftplugin/cs.vim
@@ -0,0 +1,24 @@
+" Vim filetype plugin file
+" Language: C#
+" Maintainer: Johannes Zellner <johannes@zellner.org>
+" Last Change: Tue, 09 Mar 2004 14:09:33 CET
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" Set 'comments' to format dashed lists in comments.
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "C# Source Files (*.cs)\t*.cs\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
diff --git a/vim73/ftplugin/csc.vim b/vim73/ftplugin/csc.vim
new file mode 100644
index 0000000..ac02088
--- /dev/null
+++ b/vim73/ftplugin/csc.vim
@@ -0,0 +1,26 @@
+" Vim filetype plugin file
+" Language: csc
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+if exists("loaded_matchit")
+ let b:match_words=
+ \ '\<fix\>:\<endfix\>,' .
+ \ '\<if\>:\<else\%(if\)\=\>:\<endif\>,' .
+ \ '\<!loopondimensions\>\|\<!looponselected\>:\<!endloop\>'
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "unlet! b:match_words"
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/csh.vim b/vim73/ftplugin/csh.vim
new file mode 100644
index 0000000..3f89c72
--- /dev/null
+++ b/vim73/ftplugin/csh.vim
@@ -0,0 +1,47 @@
+" Vim filetype plugin file
+" Language: csh
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+setlocal commentstring=#%s
+setlocal formatoptions-=t
+setlocal formatoptions+=crql
+
+" Csh: thanks to Johannes Zellner
+" - Both foreach and end must appear alone on separate lines.
+" - The words else and endif must appear at the beginning of input lines;
+" the if must appear alone on its input line or after an else.
+" - Each case label and the default label must appear at the start of a
+" line.
+" - while and end must appear alone on their input lines.
+if exists("loaded_matchit")
+ let b:match_words =
+ \ '^\s*\<if\>.*(.*).*\<then\>:'.
+ \ '^\s*\<else\>\s\+\<if\>.*(.*).*\<then\>:^\s*\<else\>:'.
+ \ '^\s*\<endif\>,'.
+ \ '\%(^\s*\<foreach\>\s\+\S\+\|^s*\<while\>\).*(.*):'.
+ \ '\<break\>:\<continue\>:^\s*\<end\>,'.
+ \ '^\s*\<switch\>.*(.*):^\s*\<case\>\s\+:^\s*\<default\>:^\s*\<endsw\>'
+endif
+
+" Change the :browse e filter to primarily show csh-related files.
+if has("gui_win32")
+ let b:browsefilter="csh Scripts (*.csh)\t*.csh\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal commentstring< formatoptions<" .
+ \ " | unlet! b:match_words b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/css.vim b/vim73/ftplugin/css.vim
new file mode 100644
index 0000000..43d1edf
--- /dev/null
+++ b/vim73/ftplugin/css.vim
@@ -0,0 +1,23 @@
+" Vim filetype plugin file
+" Language: CSS
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo< ofu<"
+
+setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
+setlocal formatoptions-=t formatoptions+=croql
+setlocal omnifunc=csscomplete#CompleteCSS
+
+let &l:include = '^\s*@import\s\+\%(url(\)\='
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/cucumber.vim b/vim73/ftplugin/cucumber.vim
new file mode 100644
index 0000000..a29d46a
--- /dev/null
+++ b/vim73/ftplugin/cucumber.vim
@@ -0,0 +1,132 @@
+" Vim filetype plugin
+" Language: Cucumber
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 Aug 09
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal formatoptions-=t formatoptions+=croql
+setlocal comments=:# commentstring=#\ %s
+setlocal omnifunc=CucumberComplete
+
+let b:undo_ftplugin = "setl fo< com< cms< ofu<"
+
+let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
+
+if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
+ nmap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
+ nmap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
+ nmap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
+ nmap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
+ let b:undo_ftplugin .= "| sil! iunmap! <C-]>| sil! iunmap! <C-W>]| sil! iunmap! <C-W><C-]>| sil! iunmap! <C-W>}"
+endif
+
+function! s:jump(command,count)
+ let steps = s:steps('.')
+ if len(steps) == 0 || len(steps) < a:count
+ return 'echoerr "No matching step found"'
+ elseif len(steps) > 1 && !a:count
+ return 'echoerr "Multiple matching steps found"'
+ else
+ let c = a:count ? a:count-1 : 0
+ return a:command.' +'.steps[c][1].' '.escape(steps[c][0],' %#')
+ endif
+endfunction
+
+function! s:allsteps()
+ let step_pattern = '\C^\s*\K\k*\>\s*\zs\S.\{-\}\ze\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
+ let steps = []
+ for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n")
+ let lines = readfile(file)
+ let num = 0
+ for line in lines
+ let num += 1
+ if line =~ step_pattern
+ let type = matchstr(line,'\w\+')
+ let steps += [[file,num,type,matchstr(line,step_pattern)]]
+ endif
+ endfor
+ endfor
+ return steps
+endfunction
+
+function! s:steps(lnum)
+ let c = indent(a:lnum) + 1
+ while synIDattr(synID(a:lnum,c,1),'name') !~# '^$\|Region$'
+ let c = c + 1
+ endwhile
+ let step = matchstr(getline(a:lnum)[c-1 : -1],'^\s*\zs.\{-\}\ze\s*$')
+ return filter(s:allsteps(),'s:stepmatch(v:val[3],step)')
+endfunction
+
+function! s:stepmatch(receiver,target)
+ if a:receiver =~ '^[''"].*[''"]$'
+ let pattern = '^'.escape(substitute(a:receiver[1:-2],'$\w\+','(.*)','g'),'/').'$'
+ elseif a:receiver =~ '^/.*/$'
+ let pattern = a:receiver[1:-2]
+ elseif a:receiver =~ '^%r..*.$'
+ let pattern = escape(a:receiver[3:-2],'/')
+ else
+ return 0
+ endif
+ try
+ let vimpattern = substitute(substitute(pattern,'\\\@<!(?:','%(','g'),'\\\@<!\*?','{-}','g')
+ if a:target =~# '\v'.vimpattern
+ return 1
+ endif
+ catch
+ endtry
+ if has("ruby") && pattern !~ '\\\@<!#{'
+ ruby VIM.command("return #{if (begin; Kernel.eval('/'+VIM.evaluate('pattern')+'/'); rescue SyntaxError; end) === VIM.evaluate('a:target') then 1 else 0 end}")
+ else
+ return 0
+ endif
+endfunction
+
+function! s:bsub(target,pattern,replacement)
+ return substitute(a:target,'\C\\\@<!'.a:pattern,a:replacement,'g')
+endfunction
+
+function! CucumberComplete(findstart,base) abort
+ let indent = indent('.')
+ let group = synIDattr(synID(line('.'),indent+1,1),'name')
+ let type = matchstr(group,'\Ccucumber\zs\%(Given\|When\|Then\)')
+ let e = matchend(getline('.'),'^\s*\S\+\s')
+ if type == '' || col('.') < col('$') || e < 0
+ return -1
+ endif
+ if a:findstart
+ return e
+ endif
+ let steps = []
+ for step in s:allsteps()
+ if step[2] ==# type
+ if step[3] =~ '^[''"]'
+ let steps += [step[3][1:-2]]
+ elseif step[3] =~ '^/\^.*\$/$'
+ let pattern = step[3][2:-3]
+ let pattern = substitute(pattern,'\C^(?:|I )','I ','')
+ let pattern = s:bsub(pattern,'\\[Sw]','w')
+ let pattern = s:bsub(pattern,'\\d','1')
+ let pattern = s:bsub(pattern,'\\[sWD]',' ')
+ let pattern = s:bsub(pattern,'\[\^\\\="\]','_')
+ let pattern = s:bsub(pattern,'[[:alnum:]. _-][?*]?\=','')
+ let pattern = s:bsub(pattern,'\[\([^^]\).\{-\}\]','\1')
+ let pattern = s:bsub(pattern,'+?\=','')
+ let pattern = s:bsub(pattern,'(\([[:alnum:]. -]\{-\}\))','\1')
+ let pattern = s:bsub(pattern,'\\\([[:punct:]]\)','\1')
+ if pattern !~ '[\\()*?]'
+ let steps += [pattern]
+ endif
+ endif
+ endif
+ endfor
+ call filter(steps,'strpart(v:val,0,strlen(a:base)) ==# a:base')
+ return sort(steps)
+endfunction
+
+" vim:set sts=2 sw=2:
diff --git a/vim73/ftplugin/cvsrc.vim b/vim73/ftplugin/cvsrc.vim
new file mode 100644
index 0000000..c410530
--- /dev/null
+++ b/vim73/ftplugin/cvsrc.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: cvs(1) RC file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments= commentstring= formatoptions-=tcroql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/debchangelog.vim b/vim73/ftplugin/debchangelog.vim
new file mode 100644
index 0000000..80ff8ef
--- /dev/null
+++ b/vim73/ftplugin/debchangelog.vim
@@ -0,0 +1,383 @@
+" Vim filetype plugin file (GUI menu, folding and completion)
+" Language: Debian Changelog
+" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
+" Stefano Zacchiroli <zack@debian.org>
+" Last Change: 2010-07-11
+" License: GNU GPL, version 2.0 or later
+" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim
+
+" Bug completion requires apt-listbugs installed for Debian packages or
+" python-launchpadlib installed for Ubuntu packages
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin=1
+
+" {{{1 Local settings (do on every load)
+if exists("g:debchangelog_fold_enable")
+ setlocal foldmethod=expr
+ setlocal foldexpr=DebGetChangelogFold(v:lnum)
+ setlocal foldtext=DebChangelogFoldText()
+endif
+
+" Debian changelogs are not supposed to have any other text width,
+" so the user cannot override this setting
+setlocal tw=78
+setlocal comments=f:*
+
+" Clean unloading
+let b:undo_ftplugin = "setlocal tw< comments< foldmethod< foldexpr< foldtext<"
+" }}}1
+
+if exists("g:did_changelog_ftplugin")
+ finish
+endif
+
+" Don't load another plugin (this is global)
+let g:did_changelog_ftplugin = 1
+
+" {{{1 GUI menu
+
+" Helper functions returning various data.
+" Returns full name, either from $DEBFULLNAME or debianfullname.
+" TODO Is there a way to determine name from anywhere else?
+function <SID>FullName()
+ if exists("$DEBFULLNAME")
+ return $DEBFULLNAME
+ elseif exists("g:debianfullname")
+ return g:debianfullname
+ else
+ return "Your Name"
+ endif
+endfunction
+
+" Returns email address, from $DEBEMAIL, $EMAIL or debianemail.
+function <SID>Email()
+ if exists("$DEBEMAIL")
+ return $DEBEMAIL
+ elseif exists("$EMAIL")
+ return $EMAIL
+ elseif exists("g:debianemail")
+ return g:debianemail
+ else
+ return "your@email.address"
+ endif
+endfunction
+
+" Returns date in RFC822 format.
+function <SID>Date()
+ let savelang = v:lc_time
+ execute "language time C"
+ let dateandtime = strftime("%a, %d %b %Y %X %z")
+ execute "language time " . savelang
+ return dateandtime
+endfunction
+
+function <SID>WarnIfNotUnfinalised()
+ if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
+ echohl WarningMsg
+ echo "The entry has not been unfinalised before editing."
+ echohl None
+ return 1
+ endif
+ return 0
+endfunction
+
+function <SID>Finalised()
+ let savelinenum = line(".")
+ normal 1G
+ call search("^ -- ")
+ if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
+ let returnvalue = 1
+ else
+ let returnvalue = 0
+ endif
+ execute savelinenum
+ return returnvalue
+endfunction
+
+" These functions implement the menus
+function NewVersion()
+ " The new entry is unfinalised and shall be changed
+ amenu disable Changelog.New\ Version
+ amenu enable Changelog.Add\ Entry
+ amenu enable Changelog.Close\ Bug
+ amenu enable Changelog.Set\ Distribution
+ amenu enable Changelog.Set\ Urgency
+ amenu disable Changelog.Unfinalise
+ amenu enable Changelog.Finalise
+ call append(0, substitute(getline(1), '-\([[:digit:]]\+\))', '-$$\1)', ''))
+ call append(1, "")
+ call append(2, "")
+ call append(3, " -- ")
+ call append(4, "")
+ call Urgency("low")
+ normal 1G0
+ call search(")")
+ normal h
+ normal 
+ call setline(1, substitute(getline(1), '-\$\$', '-', ''))
+ if exists("g:debchangelog_fold_enable")
+ foldopen
+ endif
+ call AddEntry()
+endfunction
+
+function AddEntry()
+ normal 1G
+ call search("^ -- ")
+ normal kk
+ call append(".", " * ")
+ normal jjj
+ let warn=<SID>WarnIfNotUnfinalised()
+ normal kk
+ if warn
+ echohl MoreMsg
+ call input("Hit ENTER")
+ echohl None
+ endif
+ startinsert!
+endfunction
+
+function CloseBug()
+ normal 1G
+ call search("^ -- ")
+ let warn=<SID>WarnIfNotUnfinalised()
+ normal kk
+ call append(".", " * (closes: #" . input("Bug number to close: ") . ")")
+ normal j^ll
+ startinsert
+endfunction
+
+function Distribution(dist)
+ call setline(1, substitute(getline(1), ") [[:lower:] ]*;", ") " . a:dist . ";", ""))
+endfunction
+
+function Urgency(urg)
+ call setline(1, substitute(getline(1), "urgency=.*$", "urgency=" . a:urg, ""))
+endfunction
+
+function <SID>UnfinaliseMenu()
+ " This means the entry shall be changed
+ amenu disable Changelog.New\ Version
+ amenu enable Changelog.Add\ Entry
+ amenu enable Changelog.Close\ Bug
+ amenu enable Changelog.Set\ Distribution
+ amenu enable Changelog.Set\ Urgency
+ amenu disable Changelog.Unfinalise
+ amenu enable Changelog.Finalise
+endfunction
+
+function Unfinalise()
+ call <SID>UnfinaliseMenu()
+ normal 1G
+ call search("^ -- ")
+ call setline(".", " -- ")
+endfunction
+
+function <SID>FinaliseMenu()
+ " This means the entry should not be changed anymore
+ amenu enable Changelog.New\ Version
+ amenu disable Changelog.Add\ Entry
+ amenu disable Changelog.Close\ Bug
+ amenu disable Changelog.Set\ Distribution
+ amenu disable Changelog.Set\ Urgency
+ amenu enable Changelog.Unfinalise
+ amenu disable Changelog.Finalise
+endfunction
+
+function Finalise()
+ call <SID>FinaliseMenu()
+ normal 1G
+ call search("^ -- ")
+ call setline(".", " -- " . <SID>FullName() . " <" . <SID>Email() . "> " . <SID>Date())
+endfunction
+
+
+function <SID>MakeMenu()
+ amenu &Changelog.&New\ Version :call NewVersion()<CR>
+ amenu Changelog.&Add\ Entry :call AddEntry()<CR>
+ amenu Changelog.&Close\ Bug :call CloseBug()<CR>
+ menu Changelog.-sep- <nul>
+
+ amenu Changelog.Set\ &Distribution.&unstable :call Distribution("unstable")<CR>
+ amenu Changelog.Set\ Distribution.&frozen :call Distribution("frozen")<CR>
+ amenu Changelog.Set\ Distribution.&stable :call Distribution("stable")<CR>
+ menu Changelog.Set\ Distribution.-sep- <nul>
+ amenu Changelog.Set\ Distribution.frozen\ unstable :call Distribution("frozen unstable")<CR>
+ amenu Changelog.Set\ Distribution.stable\ unstable :call Distribution("stable unstable")<CR>
+ amenu Changelog.Set\ Distribution.stable\ frozen :call Distribution("stable frozen")<CR>
+ amenu Changelog.Set\ Distribution.stable\ frozen\ unstable :call Distribution("stable frozen unstable")<CR>
+
+ amenu Changelog.Set\ &Urgency.&low :call Urgency("low")<CR>
+ amenu Changelog.Set\ Urgency.&medium :call Urgency("medium")<CR>
+ amenu Changelog.Set\ Urgency.&high :call Urgency("high")<CR>
+
+ menu Changelog.-sep- <nul>
+ amenu Changelog.U&nfinalise :call Unfinalise()<CR>
+ amenu Changelog.&Finalise :call Finalise()<CR>
+
+ if <SID>Finalised()
+ call <SID>FinaliseMenu()
+ else
+ call <SID>UnfinaliseMenu()
+ endif
+endfunction
+
+augroup changelogMenu
+au BufEnter * if &filetype == "debchangelog" | call <SID>MakeMenu() | endif
+au BufLeave * if &filetype == "debchangelog" | silent! aunmenu Changelog | endif
+augroup END
+
+" }}}
+" {{{1 folding
+
+" look for an author name in the [zonestart zoneend] lines searching backward
+function! s:getAuthor(zonestart, zoneend)
+ let linepos = a:zoneend
+ while linepos >= a:zonestart
+ let line = getline(linepos)
+ if line =~ '^ --'
+ return substitute(line, '^ --\s*\([^<]\+\)\s*.*', '\1', '')
+ endif
+ let linepos -= 1
+ endwhile
+ return '[unknown]'
+endfunction
+
+" Look for a package source name searching backward from the givenline and
+" returns it. Return the empty string if the package name can't be found
+function! DebGetPkgSrcName(lineno)
+ let lineidx = a:lineno
+ let pkgname = ''
+ while lineidx > 0
+ let curline = getline(lineidx)
+ if curline =~ '^\S'
+ let pkgname = matchlist(curline, '^\(\S\+\).*$')[1]
+ break
+ endif
+ let lineidx = lineidx - 1
+ endwhile
+ return pkgname
+endfunction
+
+function! DebChangelogFoldText()
+ if v:folddashes == '-' " changelog entry fold
+ return foldtext() . ' -- ' . s:getAuthor(v:foldstart, v:foldend) . ' '
+ endif
+ return foldtext()
+endfunction
+
+function! DebGetChangelogFold(lnum)
+ let line = getline(a:lnum)
+ if line =~ '^\w\+'
+ return '>1' " beginning of a changelog entry
+ endif
+ if line =~ '^\s\+\[.*\]'
+ return '>2' " beginning of an author-specific chunk
+ endif
+ if line =~ '^ --'
+ return '1'
+ endif
+ return '='
+endfunction
+
+if exists("g:debchangelog_fold_enable")
+ silent! foldopen! " unfold the entry the cursor is on (usually the first one)
+endif
+
+" }}}
+
+" {{{1 omnicompletion for Closes: #
+
+if !exists('g:debchangelog_listbugs_severities')
+ let g:debchangelog_listbugs_severities = 'critical,grave,serious,important,normal,minor,wishlist'
+endif
+
+fun! DebCompleteBugs(findstart, base)
+ if a:findstart
+ let line = getline('.')
+
+ " try to detect whether this is closes: or lp:
+ let g:debchangelog_complete_mode = 'debbugs'
+ let try_colidx = col('.') - 1
+ let colidx = -1 " default to no-completion-possible
+
+ while try_colidx > 0 && line[try_colidx - 1] =~ '\s\|\d\|#\|,\|:'
+ let try_colidx = try_colidx - 1
+ if line[try_colidx] == '#' && colidx == -1
+ " found hash, where we complete from:
+ let colidx = try_colidx
+ elseif line[try_colidx] == ':'
+ if try_colidx > 1 && strpart(line, try_colidx - 2, 3) =~ '\clp:'
+ let g:debchangelog_complete_mode = 'lp'
+ endif
+ break
+ endif
+ endwhile
+ return colidx
+ else " return matches:
+ let bug_lines = []
+ if g:debchangelog_complete_mode == 'lp'
+ if ! has('python')
+ echoerr 'vim must be built with Python support to use LP bug completion'
+ return
+ endif
+ let pkgsrc = DebGetPkgSrcName(line('.'))
+ python << EOF
+import vim
+try:
+ from launchpadlib.launchpad import Launchpad
+ from lazr.restfulclient.errors import HTTPError
+ # login anonymously
+ lp = Launchpad.login_anonymously('debchangelog.vim', 'production')
+ ubuntu = lp.distributions['ubuntu']
+ try:
+ sp = ubuntu.getSourcePackage(name=vim.eval('pkgsrc'))
+ status = ('New', 'Incomplete', 'Confirmed', 'Triaged',
+ 'In Progress', 'Fix Committed')
+ tasklist = sp.searchTasks(status=status, order_by='id')
+ liststr = '['
+ for task in tasklist:
+ bug = task.bug
+ liststr += "'#%d - %s'," % (bug.id, bug.title.replace('\'', '\'\''))
+ liststr += ']'
+ vim.command('silent let bug_lines = %s' % liststr.encode('utf-8'))
+ except HTTPError:
+ pass
+except ImportError:
+ vim.command('echoerr \'python-launchpadlib >= 1.5.4 needs to be installed to use Launchpad bug completion\'')
+EOF
+ else
+ if ! filereadable('/usr/sbin/apt-listbugs')
+ echoerr 'apt-listbugs not found, you should install it to use Closes bug completion'
+ return
+ endif
+ let pkgsrc = DebGetPkgSrcName(line('.'))
+ let listbugs_output = system('/usr/sbin/apt-listbugs -s ' . g:debchangelog_listbugs_severities . ' list ' . pkgsrc . ' | grep "^ #" 2> /dev/null')
+ let bug_lines = split(listbugs_output, '\n')
+ endif
+ let completions = []
+ for line in bug_lines
+ let parts = matchlist(line, '^\s*\(#\S\+\)\s*-\s*\(.*\)$')
+ " filter only those which match a:base:
+ if parts[1] !~ "^" . a:base
+ continue
+ endif
+ let completion = {}
+ let completion['word'] = parts[1]
+ let completion['menu'] = parts[2]
+ let completion['info'] = parts[0]
+ let completions += [completion]
+ endfor
+ return completions
+ endif
+endfun
+
+setlocal omnifunc=DebCompleteBugs
+
+" }}}
+
+" vim: set foldmethod=marker:
diff --git a/vim73/ftplugin/debcontrol.vim b/vim73/ftplugin/debcontrol.vim
new file mode 100644
index 0000000..7871d98
--- /dev/null
+++ b/vim73/ftplugin/debcontrol.vim
@@ -0,0 +1,70 @@
+" Vim filetype plugin file (GUI menu and folding)
+" Language: Debian control files
+" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Former Maintainer: Pierre Habouzit <madcoder@debian.org>
+" Last Change: 2008-03-08
+" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/ftplugin/debcontrol.vim
+
+" Do these settings once per buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin=1
+
+" {{{1 Local settings (do on every load)
+if exists("g:debcontrol_fold_enable")
+ setlocal foldmethod=expr
+ setlocal foldexpr=DebControlFold(v:lnum)
+ setlocal foldtext=DebControlFoldText()
+endif
+setlocal textwidth=0
+
+" Clean unloading
+let b:undo_ftplugin = "setlocal tw< foldmethod< foldexpr< foldtext<"
+
+" }}}1
+
+" {{{1 folding
+
+function! s:getField(f, lnum)
+ let line = getline(a:lnum)
+ let fwdsteps = 0
+ while line !~ '^'.a:f.':'
+ let fwdsteps += 1
+ let line = getline(a:lnum + fwdsteps)
+ if line == ''
+ return 'unknown'
+ endif
+ endwhile
+ return substitute(line, '^'.a:f.': *', '', '')
+endfunction
+
+function! DebControlFoldText()
+ if v:folddashes == '-' " debcontrol entry fold
+ let type = substitute(getline(v:foldstart), ':.*', '', '')
+ if type == 'Source'
+ let ftext = substitute(foldtext(), ' *Source: *', ' ', '')
+ return ftext . ' -- ' . s:getField('Maintainer', v:foldstart) . ' '
+ endif
+ let arch = s:getField('Architecture', v:foldstart)
+ let ftext = substitute(foldtext(), ' *Package: *', ' [' . arch . '] ', '')
+ return ftext . ': ' . s:getField('Description', v:foldstart) . ' '
+ endif
+ return foldtext()
+endfunction
+
+function! DebControlFold(l)
+
+ " This is for not merging blank lines around folds to them
+ if getline(a:l) =~ '^Source:'
+ return '>1'
+ endif
+
+ if getline(a:l) =~ '^Package:'
+ return '>1'
+ endif
+
+ return '='
+endfunction
+
+" }}}1
diff --git a/vim73/ftplugin/denyhosts.vim b/vim73/ftplugin/denyhosts.vim
new file mode 100644
index 0000000..557fd82
--- /dev/null
+++ b/vim73/ftplugin/denyhosts.vim
@@ -0,0 +1,18 @@
+" Vim filetype plugin file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-12-04
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/dictconf.vim b/vim73/ftplugin/dictconf.vim
new file mode 100644
index 0000000..659046c
--- /dev/null
+++ b/vim73/ftplugin/dictconf.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: dict(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/dictdconf.vim b/vim73/ftplugin/dictdconf.vim
new file mode 100644
index 0000000..ee738c5
--- /dev/null
+++ b/vim73/ftplugin/dictdconf.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: dictd(8) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/diff.vim b/vim73/ftplugin/diff.vim
new file mode 100644
index 0000000..3fe1b84
--- /dev/null
+++ b/vim73/ftplugin/diff.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin file
+" Language: Diff
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2005 Jul 27
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl modeline<"
+
+" Don't use modelines in a diff, they apply to the diffed file
+setlocal nomodeline
diff --git a/vim73/ftplugin/dircolors.vim b/vim73/ftplugin/dircolors.vim
new file mode 100644
index 0000000..3b3d046
--- /dev/null
+++ b/vim73/ftplugin/dircolors.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: dircolors(1) input file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/docbk.vim b/vim73/ftplugin/docbk.vim
new file mode 100644
index 0000000..11cb323
--- /dev/null
+++ b/vim73/ftplugin/docbk.vim
@@ -0,0 +1,22 @@
+" Vim filetype plugin file
+" Language: DocBook
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2010-10-14
+
+if exists('b:did_ftplugin')
+ finish
+endif
+
+if !exists('b:docbk_type')
+ if expand('%:e') == 'sgml'
+ let b:docbk_type = 'sgml'
+ else
+ let b:docbk_type = 'xml'
+ endif
+endif
+
+if b:docbk_type == 'sgml'
+ runtime! ftplugin/sgml.vim ftplugin/sgml_*.vim ftplugin/sgml/*.vim
+else
+ runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
+endif
diff --git a/vim73/ftplugin/dosbatch.vim b/vim73/ftplugin/dosbatch.vim
new file mode 100644
index 0000000..6e581e7
--- /dev/null
+++ b/vim73/ftplugin/dosbatch.vim
@@ -0,0 +1,21 @@
+" Vim filetype plugin file
+" Language: MS-DOS .bat files
+" Maintainer: Mike Williams <mrw@eandem.co.uk>
+" Last Change: 27th May 2009
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" BAT comment formatting
+setlocal comments=b:rem,b:@rem,b:REM,b:@REM,:::
+setlocal formatoptions-=t formatoptions+=rol
+
+" Define patterns for the browse file filter
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\nAll Files (*.*)\t*.*\n"
+endif
diff --git a/vim73/ftplugin/dosini.vim b/vim73/ftplugin/dosini.vim
new file mode 100644
index 0000000..461403c
--- /dev/null
+++ b/vim73/ftplugin/dosini.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: Configuration File (ini file) for MSDOS/MS Windows
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:; commentstring=;\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/dtd.vim b/vim73/ftplugin/dtd.vim
new file mode 100644
index 0000000..eed5ca6
--- /dev/null
+++ b/vim73/ftplugin/dtd.vim
@@ -0,0 +1,39 @@
+" Vim filetype plugin file
+" Language: dtd
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+setlocal commentstring=<!--%s-->
+setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->
+
+setlocal formatoptions-=t
+if !exists("g:ft_dtd_autocomment") || (g:ft_dtd_autocomment == 1)
+ setlocal formatoptions+=croql
+endif
+
+if exists("loaded_matchit")
+ let b:match_words = '<!--:-->,<!:>'
+endif
+
+" Change the :browse e filter to primarily show Java-related files.
+if has("gui_win32")
+ let b:browsefilter="DTD Files (*.dtd)\t*.dtd\n" .
+ \ "XML Files (*.xml)\t*.xml\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
+ \ " | unlet! b:matchwords b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/dtrace.vim b/vim73/ftplugin/dtrace.vim
new file mode 100644
index 0000000..9288097
--- /dev/null
+++ b/vim73/ftplugin/dtrace.vim
@@ -0,0 +1,40 @@
+" Language: D script as described in "Solaris Dynamic Tracing Guide",
+" http://docs.sun.com/app/docs/doc/817-6223
+" Last Change: 2008/03/20
+" Version: 1.2
+" Maintainer: Nicolas Weber <nicolasweber@gmx.de>
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Using line continuation here.
+let s:cpo_save = &cpo
+set cpo-=C
+
+let b:undo_ftplugin = "setl fo< com< cms< isk<"
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" Set 'comments' to format dashed lists in comments.
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/
+
+" dtrace uses /* */ comments. Set this explicitly, just in case the user
+" changed this (/*%s*/ is the default)
+setlocal commentstring=/*%s*/
+
+setlocal iskeyword+=@,$
+
+" When the matchit plugin is loaded, this makes the % command skip parens and
+" braces in comments.
+let b:match_words = &matchpairs
+let b:match_skip = 's:comment\|string\|character'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/elinks.vim b/vim73/ftplugin/elinks.vim
new file mode 100644
index 0000000..7d92575
--- /dev/null
+++ b/vim73/ftplugin/elinks.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: elinks(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/eruby.vim b/vim73/ftplugin/eruby.vim
new file mode 100644
index 0000000..7c19a09
--- /dev/null
+++ b/vim73/ftplugin/eruby.vim
@@ -0,0 +1,104 @@
+" Vim filetype plugin
+" Language: eRuby
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 Apr 15
+" URL: http://vim-ruby.rubyforge.org
+" Anon CVS: See above site
+" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "All Files (*.*)\t*.*\n"
+let s:match_words = ""
+
+if !exists("g:eruby_default_subtype")
+ let g:eruby_default_subtype = "html"
+endif
+
+if !exists("b:eruby_subtype")
+ let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
+ let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+')
+ if b:eruby_subtype == ''
+ let b:eruby_subtype = matchstr(&filetype,'^eruby\.\zs\w\+')
+ endif
+ if b:eruby_subtype == ''
+ let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+$')
+ endif
+ if b:eruby_subtype == 'rhtml'
+ let b:eruby_subtype = 'html'
+ elseif b:eruby_subtype == 'rb'
+ let b:eruby_subtype = 'ruby'
+ elseif b:eruby_subtype == 'yml'
+ let b:eruby_subtype = 'yaml'
+ elseif b:eruby_subtype == 'js'
+ let b:eruby_subtype = 'javascript'
+ elseif b:eruby_subtype == 'txt'
+ " Conventional; not a real file type
+ let b:eruby_subtype = 'text'
+ elseif b:eruby_subtype == ''
+ let b:eruby_subtype = g:eruby_default_subtype
+ endif
+endif
+
+if exists("b:eruby_subtype") && b:eruby_subtype != ''
+ exe "runtime! ftplugin/".b:eruby_subtype.".vim ftplugin/".b:eruby_subtype."_*.vim ftplugin/".b:eruby_subtype."/*.vim"
+else
+ runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+endif
+unlet! b:did_ftplugin
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+ unlet b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+ unlet b:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words
+ unlet b:match_words
+endif
+
+runtime! ftplugin/ruby.vim ftplugin/ruby_*.vim ftplugin/ruby/*.vim
+let b:did_ftplugin = 1
+
+" Combine the new set of values with those previously included.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
+endif
+if exists ("b:browsefilter")
+ let s:browsefilter = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words . ',' . s:match_words
+endif
+
+" Change the browse dialog on Win32 to show mainly eRuby-related files
+if has("gui_win32")
+ let b:browsefilter="eRuby Files (*.erb, *.rhtml)\t*.erb;*.rhtml\n" . s:browsefilter
+endif
+
+" Load the combined list of match_words for matchit.vim
+if exists("loaded_matchit")
+ let b:match_words = s:match_words
+endif
+
+" TODO: comments=
+setlocal commentstring=<%#%s%>
+
+let b:undo_ftplugin = "setl cms< "
+ \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
+
+let &cpo = s:save_cpo
+
+" vim: nowrap sw=2 sts=2 ts=8:
diff --git a/vim73/ftplugin/eterm.vim b/vim73/ftplugin/eterm.vim
new file mode 100644
index 0000000..e072c63
--- /dev/null
+++ b/vim73/ftplugin/eterm.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: eterm(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s include=^\\s*include
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/falcon.vim b/vim73/ftplugin/falcon.vim
new file mode 100644
index 0000000..45fd0a4
--- /dev/null
+++ b/vim73/ftplugin/falcon.vim
@@ -0,0 +1,43 @@
+" Vim filetype plugin file
+" Language: Falcon
+" Author: Steven Oliver <oliver.steven@gmail.com>
+" Copyright: Copyright (c) 2009, 2010 Steven Oliver
+" License: You may redistribute this under the same terms as Vim itself
+" --------------------------------------------------------------------------
+" GetLatestVimScripts: 2762 1 :AutoInstall: falcon.vim
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal tabstop=4 shiftwidth=4 expandtab fileencoding=utf-8
+setlocal suffixesadd=.fal
+
+" Matchit support
+if exists("loaded_matchit") && !exists("b:match_words")
+ let b:match_ignorecase = 0
+
+ let b:match_words =
+ \ '\<\%(if\|case\|while\|until\|for\|do\|class\)\>=\@!' .
+ \ ':' .
+ \ '\<\%(else\|elsif\|when\)\>' .
+ \ ':' .
+ \ '\<end\>' .
+ \ ',{:},\[:\],(:)'
+endif
+
+" Set comments to include dashed lines
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+
+" Windows allows you to filter the open file dialog
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "Falcon Source Files (*.fal)\t*.fal\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" vim: set sw=4 sts=4 et tw=80 :
diff --git a/vim73/ftplugin/fetchmail.vim b/vim73/ftplugin/fetchmail.vim
new file mode 100644
index 0000000..a0d4650
--- /dev/null
+++ b/vim73/ftplugin/fetchmail.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: fetchmail(1) RC File
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/flexwiki.vim b/vim73/ftplugin/flexwiki.vim
new file mode 100644
index 0000000..7513e66
--- /dev/null
+++ b/vim73/ftplugin/flexwiki.vim
@@ -0,0 +1,59 @@
+" Vim filetype plugin file
+" Language: FlexWiki, http://www.flexwiki.com/
+" Maintainer: George V. Reilly <george@reilly.org>
+" Home: http://www.georgevreilly.com/vim/flexwiki/
+" Other Home: http://www.vim.org/scripts/script.php?script_id=1529
+" Author: George V. Reilly
+" Filenames: *.wiki
+" Last Change: Wed Apr 26 11:00 PM 2006 P
+" Version: 0.3
+
+if exists("b:did_ftplugin")
+ finish
+endif
+
+let b:did_ftplugin = 1 " Don't load another plugin for this buffer
+
+" Reset the following options to undo this plugin.
+let b:undo_ftplugin = "setl tw< wrap< lbr< et< ts< fenc< bomb< ff<"
+
+" Allow lines of unlimited length. Do NOT want automatic linebreaks,
+" as a newline starts a new paragraph in FlexWiki.
+setlocal textwidth=0
+" Wrap long lines, rather than using horizontal scrolling.
+setlocal wrap
+" Wrap at a character in 'breakat' rather than at last char on screen
+setlocal linebreak
+" Don't transform <TAB> characters into spaces, as they are significant
+" at the beginning of the line for numbered and bulleted lists.
+setlocal noexpandtab
+" 4-char tabstops, per flexwiki.el
+setlocal tabstop=4
+" Save *.wiki files in UTF-8
+setlocal fileencoding=utf-8
+" Add the UTF-8 Byte Order Mark to the beginning of the file
+setlocal bomb
+" Save <EOL>s as \n, not \r\n
+setlocal fileformat=unix
+
+if exists("g:flexwiki_maps")
+ " Move up and down by display lines, to account for screen wrapping
+ " of very long lines
+ nmap <buffer> <Up> gk
+ nmap <buffer> k gk
+ vmap <buffer> <Up> gk
+ vmap <buffer> k gk
+
+ nmap <buffer> <Down> gj
+ nmap <buffer> j gj
+ vmap <buffer> <Down> gj
+ vmap <buffer> j gj
+
+ " for earlier versions - for when 'wrap' is set
+ imap <buffer> <S-Down> <C-o>gj
+ imap <buffer> <S-Up> <C-o>gk
+ if v:version >= 700
+ imap <buffer> <Down> <C-o>gj
+ imap <buffer> <Up> <C-o>gk
+ endif
+endif
diff --git a/vim73/ftplugin/fortran.vim b/vim73/ftplugin/fortran.vim
new file mode 100644
index 0000000..741465d
--- /dev/null
+++ b/vim73/ftplugin/fortran.vim
@@ -0,0 +1,118 @@
+" Vim settings file
+" Language: Fortran90 (and Fortran95, Fortran77, F and elf90)
+" Version: 0.46
+" Last Change: 2010 July 24
+" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www.unb.ca/chem/ajit/>
+" Usage: Do :help fortran-plugin from Vim
+" Credits:
+" Useful suggestions were made by Stefano Zacchiroli and Hendrik Merx.
+
+" Only do these settings when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't do other file type settings for this buffer
+let b:did_ftplugin = 1
+
+" Determine whether this is a fixed or free format source file
+" if this hasn't been done yet
+if !exists("b:fortran_fixed_source")
+ if exists("fortran_free_source")
+ " User guarantees free source form
+ let b:fortran_fixed_source = 0
+ elseif exists("fortran_fixed_source")
+ " User guarantees fixed source form
+ let b:fortran_fixed_source = 1
+ else
+ " f90 and f95 allow both fixed and free source form
+ " assume fixed source form unless signs of free source form
+ " are detected in the first five columns of the first s:lmax lines
+ " Detection becomes more accurate and time-consuming if more lines
+ " are checked. Increase the limit below if you keep lots of comments at
+ " the very top of each file and you have a fast computer
+ let s:lmax = 500
+ if ( s:lmax > line("$") )
+ let s:lmax = line("$")
+ endif
+ let b:fortran_fixed_source = 1
+ let s:ln=1
+ while s:ln <= s:lmax
+ let s:test = strpart(getline(s:ln),0,5)
+ if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t'
+ let b:fortran_fixed_source = 0
+ break
+ endif
+ let s:ln = s:ln + 1
+ endwhile
+ unlet! s:lmax s:ln s:test
+ endif
+endif
+
+" Set comments and textwidth according to source type
+if (b:fortran_fixed_source == 1)
+ setlocal comments=:!,:*,:C
+ " Fixed format requires a textwidth of 72 for code
+ setlocal tw=72
+ " If you need to add "&" on continued lines so that the code is
+ " compatible with both free and fixed format, then you should do so
+ " in column 73 and uncomment the next line
+ " setlocal tw=73
+else
+ setlocal comments=:!
+ " Free format allows a textwidth of 132 for code but 80 is more usual
+ setlocal tw=80
+endif
+
+" Set commentstring for foldmethod=marker
+setlocal cms=!%s
+
+" Tabs are not a good idea in Fortran so the default is to expand tabs
+if !exists("fortran_have_tabs")
+ setlocal expandtab
+endif
+
+" Set 'formatoptions' to break comment and text lines but allow long lines
+setlocal fo+=tcql
+
+setlocal include=^\\c#\\=\\s*include\\s\\+
+setlocal suffixesadd+=.f95,.f90,.for,.f,.F,.f77,.ftn,.fpp
+
+let s:cposet=&cpoptions
+set cpoptions-=C
+
+" Define patterns for the matchit plugin
+if !exists("b:match_words")
+ let s:notend = '\%(\<end\s\+\)\@<!'
+ let s:notselect = '\%(\<select\s\+\)\@<!'
+ let s:notelse = '\%(\<end\s\+\|\<else\s\+\)\@<!'
+ let s:notprocedure = '\%(\s\+procedure\>\)\@!'
+ let b:match_ignorecase = 1
+ let b:match_words =
+ \ '\<select\s*case\>:' . s:notselect. '\<case\>:\<end\s*select\>,' .
+ \ s:notelse . '\<if\s*(.\+)\s*then\>:' .
+ \ '\<else\s*\%(if\s*(.\+)\s*then\)\=\>:\<end\s*if\>,'.
+ \ 'do\s\+\(\d\+\):\%(^\s*\)\@<=\1\s,'.
+ \ s:notend . '\<do\>:\<end\s*do\>,'.
+ \ s:notelse . '\<where\>:\<elsewhere\>:\<end\s*where\>,'.
+ \ s:notend . '\<type\s*[^(]:\<end\s*type\>,'.
+ \ s:notend . '\<interface\>:\<end\s*interface\>,'.
+ \ s:notend . '\<subroutine\>:\<end\s*subroutine\>,'.
+ \ s:notend . '\<function\>:\<end\s*function\>,'.
+ \ s:notend . '\<module\>' . s:notprocedure . ':\<end\s*module\>,'.
+ \ s:notend . '\<program\>:\<end\s*program\>'
+endif
+
+" File filters for :browse e
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "Fortran Files (*.f;*.F;*.for;*.f77;*.f90;*.f95;*.fpp;*.ftn)\t*.f;*.F;*.for;*.f77;*.f90;*.f95;*.fpp;*.ftn\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+let b:undo_ftplugin = "setl fo< com< tw< cms< et< inc<"
+ \ . "| unlet! b:match_ignorecase b:match_words b:browsefilter"
+
+let &cpoptions=s:cposet
+unlet s:cposet
+
+" vim:sw=2
diff --git a/vim73/ftplugin/framescript.vim b/vim73/ftplugin/framescript.vim
new file mode 100644
index 0000000..805401a
--- /dev/null
+++ b/vim73/ftplugin/framescript.vim
@@ -0,0 +1,30 @@
+" Vim ftplugin file
+" Language: FrameScript
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-19
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< fo< inc< | unlet! b:matchwords"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:// commentstring=/*\ %s\ */
+setlocal formatoptions-=t formatoptions+=croql
+setlocal include=^\\s*<#Include
+
+if exists("loaded_matchit")
+ let s:not_end = '\c\%(\<End\)\@<!'
+ let b:match_words =
+ \ s:not_end . '\<If\>:\c\<ElseIf\>:\c\<Else\>:\c\<EndIf\>,' .
+ \ s:not_end . '\<Loop\>:\c\<EndLoop\>' .
+ \ s:not_end . '\<Sub\>:\c\<EndSub\>'
+ unlet s:not_end
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/fvwm.vim b/vim73/ftplugin/fvwm.vim
new file mode 100644
index 0000000..89e1a83
--- /dev/null
+++ b/vim73/ftplugin/fvwm.vim
@@ -0,0 +1,14 @@
+" Created : Tue 09 May 2006 02:07:31 PM CDT
+" Modified : Tue 09 May 2006 02:07:31 PM CDT
+" Author : Gautam Iyer <gi1242@users.sourceforge.net>
+" Description : ftplugin for fvwm config files
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
diff --git a/vim73/ftplugin/git.vim b/vim73/ftplugin/git.vim
new file mode 100644
index 0000000..e043c75
--- /dev/null
+++ b/vim73/ftplugin/git.vim
@@ -0,0 +1,37 @@
+" Vim filetype plugin
+" Language: generic git output
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 May 21
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+ finish
+endif
+let b:did_ftplugin = 1
+
+if !exists('b:git_dir')
+ if expand('%:p') =~# '\.git\>'
+ let b:git_dir = matchstr(expand('%:p'),'.*\.git\>')
+ elseif $GIT_DIR != ''
+ let b:git_dir = $GIT_DIR
+ endif
+ if (has('win32') || has('win64')) && exists('b:git_dir')
+ let b:git_dir = substitute(b:git_dir,'\\','/','g')
+ endif
+endif
+
+if exists('*shellescape') && exists('b:git_dir') && b:git_dir != ''
+ if b:git_dir =~# '/\.git$' " Not a bare repository
+ let &l:path = escape(fnamemodify(b:git_dir,':h'),'\, ').','.&l:path
+ endif
+ let &l:path = escape(b:git_dir,'\, ').','.&l:path
+ let &l:keywordprg = 'git --git-dir='.shellescape(b:git_dir).' show'
+else
+ setlocal keywordprg=git\ show
+endif
+if has('gui_running')
+ let &l:keywordprg = substitute(&l:keywordprg,'^git\>','git --no-pager','')
+endif
+
+setlocal includeexpr=substitute(v:fname,'^[^/]\\+/','','')
+let b:undo_ftplugin = "setl keywordprg< path< includeexpr<"
diff --git a/vim73/ftplugin/gitcommit.vim b/vim73/ftplugin/gitcommit.vim
new file mode 100644
index 0000000..94d635c
--- /dev/null
+++ b/vim73/ftplugin/gitcommit.vim
@@ -0,0 +1,68 @@
+" Vim filetype plugin
+" Language: git commit file
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 May 21
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+ finish
+endif
+
+runtime! ftplugin/git.vim
+let b:did_ftplugin = 1
+
+if &textwidth == 0
+ " make sure that log messages play nice with git-log on standard terminals
+ setlocal textwidth=72
+ if !exists("b:undo_ftplugin")
+ let b:undo_ftplugin = ""
+ endif
+ let b:undo_ftplugin = b:undo_ftplugin . "|setl tw<"
+endif
+
+if exists("g:no_gitcommit_commands") || v:version < 700
+ finish
+endif
+
+if !exists("b:git_dir")
+ let b:git_dir = expand("%:p:h")
+endif
+
+" Automatically diffing can be done with:
+" autocmd FileType gitcommit DiffGitCached | wincmd p
+command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
+
+function! s:diffcomplete(A,L,P)
+ let args = ""
+ if a:P <= match(a:L." -- "," -- ")+3
+ let args = args . "-p\n--stat\n--shortstat\n--summary\n--patch-with-stat\n--no-renames\n-B\n-M\n-C\n"
+ end
+ if exists("b:git_dir") && a:A !~ '^-'
+ let tree = fnamemodify(b:git_dir,':h')
+ if strpart(getcwd(),0,strlen(tree)) == tree
+ let args = args."\n".system("git diff --cached --name-only")
+ endif
+ endif
+ return args
+endfunction
+
+function! s:gitdiffcached(bang,gitdir,...)
+ let tree = fnamemodify(a:gitdir,':h')
+ let name = tempname()
+ let git = "git"
+ if strpart(getcwd(),0,strlen(tree)) != tree
+ let git .= " --git-dir=".(exists("*shellescape") ? shellescape(a:gitdir) : '"'.a:gitdir.'"')
+ endif
+ if a:0
+ let extra = join(map(copy(a:000),exists("*shellescape") ? 'shellescape(v:val)' : "'\"'.v:val.'\"'"))
+ else
+ let extra = "-p --stat=".&columns
+ endif
+ call system(git." diff --cached --no-color ".extra." > ".(exists("*shellescape") ? shellescape(name) : name))
+ exe "pedit ".(exists("*fnameescape") ? fnameescape(name) : name)
+ wincmd P
+ let b:git_dir = a:gitdir
+ command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
+ nnoremap <silent> q :q<CR>
+ setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
+endfunction
diff --git a/vim73/ftplugin/gitconfig.vim b/vim73/ftplugin/gitconfig.vim
new file mode 100644
index 0000000..833b8b1
--- /dev/null
+++ b/vim73/ftplugin/gitconfig.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin
+" Language: git config file
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2009 Dec 24
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal formatoptions-=t formatoptions+=croql
+setlocal comments=:#,:; commentstring=;\ %s
+
+let b:undo_ftplugin = "setl fo< com< cms<"
diff --git a/vim73/ftplugin/gitrebase.vim b/vim73/ftplugin/gitrebase.vim
new file mode 100644
index 0000000..0200ba1
--- /dev/null
+++ b/vim73/ftplugin/gitrebase.vim
@@ -0,0 +1,43 @@
+" Vim filetype plugin
+" Language: git rebase --interactive
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 May 21
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+ finish
+endif
+
+runtime! ftplugin/git.vim
+let b:did_ftplugin = 1
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t
+if !exists("b:undo_ftplugin")
+ let b:undo_ftplugin = ""
+endif
+let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo<"
+
+function! s:choose(word)
+ s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e
+endfunction
+
+function! s:cycle()
+ call s:choose(get({'s':'edit','p':'squash','e':'reword','r':'fixup'},getline('.')[0],'pick'))
+endfunction
+
+command! -buffer -bar Pick :call s:choose('pick')
+command! -buffer -bar Squash :call s:choose('squash')
+command! -buffer -bar Edit :call s:choose('edit')
+command! -buffer -bar Reword :call s:choose('reword')
+command! -buffer -bar Fixup :call s:choose('fixup')
+command! -buffer -bar Cycle :call s:cycle()
+" The above are more useful when they are mapped; for example:
+"nnoremap <buffer> <silent> S :Cycle<CR>
+
+if exists("g:no_plugin_maps") || exists("g:no_gitrebase_maps")
+ finish
+endif
+
+nnoremap <buffer> <expr> K col('.') < 7 && expand('<Lt>cword>') =~ '\X' && getline('.') =~ '^\w\+\s\+\x\+\>' ? 'wK' : 'K'
+
+let b:undo_ftplugin = b:undo_ftplugin . "|nunmap <buffer> K"
diff --git a/vim73/ftplugin/gitsendemail.vim b/vim73/ftplugin/gitsendemail.vim
new file mode 100644
index 0000000..8fb436e
--- /dev/null
+++ b/vim73/ftplugin/gitsendemail.vim
@@ -0,0 +1,6 @@
+" Vim filetype plugin
+" Language: git send-email message
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2009 Dec 24
+
+runtime! ftplugin/mail.vim
diff --git a/vim73/ftplugin/gpg.vim b/vim73/ftplugin/gpg.vim
new file mode 100644
index 0000000..5caa1f6
--- /dev/null
+++ b/vim73/ftplugin/gpg.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: gpg(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/group.vim b/vim73/ftplugin/group.vim
new file mode 100644
index 0000000..eef3cd6
--- /dev/null
+++ b/vim73/ftplugin/group.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: group(5) user group file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/grub.vim b/vim73/ftplugin/grub.vim
new file mode 100644
index 0000000..21c4e36
--- /dev/null
+++ b/vim73/ftplugin/grub.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: grub(8) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/haml.vim b/vim73/ftplugin/haml.vim
new file mode 100644
index 0000000..b2c1eca
--- /dev/null
+++ b/vim73/ftplugin/haml.vim
@@ -0,0 +1,67 @@
+" Vim filetype plugin
+" Language: Haml
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 May 21
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "All Files (*.*)\t*.*\n"
+let s:match_words = ""
+
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+unlet! b:did_ftplugin
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+ unlet b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+ unlet b:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words
+ unlet b:match_words
+endif
+
+runtime! ftplugin/ruby.vim ftplugin/ruby_*.vim ftplugin/ruby/*.vim
+let b:did_ftplugin = 1
+
+" Combine the new set of values with those previously included.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
+endif
+if exists ("b:browsefilter")
+ let s:browsefilter = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words . ',' . s:match_words
+endif
+
+" Change the browse dialog on Win32 to show mainly Haml-related files
+if has("gui_win32")
+ let b:browsefilter="Haml Files (*.haml)\t*.haml\nSass Files (*.sass)\t*.sass\n" . s:browsefilter
+endif
+
+" Load the combined list of match_words for matchit.vim
+if exists("loaded_matchit")
+ let b:match_words = s:match_words
+endif
+
+setlocal comments= commentstring=-#\ %s
+
+let b:undo_ftplugin = "setl cms< com< "
+ \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
+
+let &cpo = s:save_cpo
+
+" vim:set sw=2:
diff --git a/vim73/ftplugin/hamster.vim b/vim73/ftplugin/hamster.vim
new file mode 100644
index 0000000..ddb40f9
--- /dev/null
+++ b/vim73/ftplugin/hamster.vim
@@ -0,0 +1,61 @@
+" Vim filetype plugin
+" Language: Hamster Script
+" Version: 2.0.6.0
+" Maintainer: David Fishburn <fishburn@ianywhere.com>
+" Last Change: Wed Nov 08 2006 12:03:09 PM
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+let cpo_save = &cpo
+set cpo-=C
+
+let b:undo_ftplugin = "setl fo< com< tw< commentstring<"
+ \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" Use the # sign for comments
+setlocal comments=:#
+
+" Format comments to be up to 78 characters long
+if &tw == 0
+ setlocal tw=78
+endif
+
+" Comments start with a double quote
+setlocal commentstring=#%s
+
+" Move around functions.
+noremap <silent><buffer> [[ :call search('^\s*sub\>', "bW")<CR>
+noremap <silent><buffer> ]] :call search('^\s*sub\>', "W")<CR>
+noremap <silent><buffer> [] :call search('^\s*endsub\>', "bW")<CR>
+noremap <silent><buffer> ][ :call search('^\s*endsub\>', "W")<CR>
+
+" Move around comments
+noremap <silent><buffer> ]# :call search('^\s*#\@!', "W")<CR>
+noremap <silent><buffer> [# :call search('^\s*#\@!', "bW")<CR>
+
+" Let the matchit plugin know what items can be matched.
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ let b:match_words =
+ \ '\<sub\>:\<return\>:\<endsub\>,' .
+ \ '\<do\|while\|repeat\|for\>:\<break\>:\<continue\>:\<loop\|endwhile\|until\|endfor\>,' .
+ \ '\<if\>:\<else\%[if]\>:\<endif\>'
+
+ " Ignore ":syntax region" commands, the 'end' argument clobbers if-endif
+ " let b:match_skip = 'getline(".") =~ "^\\s*sy\\%[ntax]\\s\\+region" ||
+ " \ synIDattr(synID(line("."),col("."),1),"name") =~? "comment\\|string"'
+endif
+
+setlocal ignorecase
+let &cpo = cpo_save
+setlocal cpo+=M " makes \%( match \)
diff --git a/vim73/ftplugin/haskell.vim b/vim73/ftplugin/haskell.vim
new file mode 100644
index 0000000..144f9f6
--- /dev/null
+++ b/vim73/ftplugin/haskell.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: Haskell
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=s1fl:{-,mb:-,ex:-},:-- commentstring=--\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/help.vim b/vim73/ftplugin/help.vim
new file mode 100644
index 0000000..fdac410
--- /dev/null
+++ b/vim73/ftplugin/help.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: Vim help file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl fo< tw< cole< cocu<"
+
+setlocal formatoptions+=tcroql textwidth=78 cole=2 cocu=nc
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/hostconf.vim b/vim73/ftplugin/hostconf.vim
new file mode 100644
index 0000000..557fd82
--- /dev/null
+++ b/vim73/ftplugin/hostconf.vim
@@ -0,0 +1,18 @@
+" Vim filetype plugin file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-12-04
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/hostsaccess.vim b/vim73/ftplugin/hostsaccess.vim
new file mode 100644
index 0000000..a2f55ac
--- /dev/null
+++ b/vim73/ftplugin/hostsaccess.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: hosts_access(5) control file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/html.vim b/vim73/ftplugin/html.vim
new file mode 100644
index 0000000..5f1384b
--- /dev/null
+++ b/vim73/ftplugin/html.vim
@@ -0,0 +1,90 @@
+" Vim filetype plugin file
+" Language: html
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+setlocal matchpairs+=<:>
+setlocal commentstring=<!--%s-->
+setlocal comments=s:<!--,m:\ \ \ \ ,e:-->
+
+if exists("g:ft_html_autocomment") && (g:ft_html_autocomment == 1)
+ setlocal formatoptions-=t formatoptions+=croql
+endif
+
+
+if exists('&omnifunc')
+ " Distinguish between HTML versions
+ " To use with other HTML versions add another
+ " elseif condition to match proper DOCTYPE
+ setlocal omnifunc=htmlcomplete#CompleteTags
+
+ if &filetype == 'xhtml'
+ let b:html_omni_flavor = 'xhtml10s'
+ else
+ let b:html_omni_flavor = 'html401t'
+ endif
+ let i = 1
+ let line = ""
+ while i < 10 && i < line("$")
+ let line = getline(i)
+ if line =~ '<!DOCTYPE.*\<DTD '
+ break
+ endif
+ let i += 1
+ endwhile
+ if line =~ '<!DOCTYPE.*\<DTD ' " doctype line found above
+ if line =~ ' HTML 3\.2'
+ let b:html_omni_flavor = 'html32'
+ elseif line =~ ' XHTML 1\.1'
+ let b:html_omni_flavor = 'xhtml11'
+ else " two-step detection with strict/frameset/transitional
+ if line =~ ' XHTML 1\.0'
+ let b:html_omni_flavor = 'xhtml10'
+ elseif line =~ ' HTML 4\.01'
+ let b:html_omni_flavor = 'html401'
+ elseif line =~ ' HTML 4.0\>'
+ let b:html_omni_flavor = 'html40'
+ endif
+ if line =~ '\<Transitional\>'
+ let b:html_omni_flavor .= 't'
+ elseif line =~ '\<Frameset\>'
+ let b:html_omni_flavor .= 'f'
+ else
+ let b:html_omni_flavor .= 's'
+ endif
+ endif
+ endif
+endif
+
+" HTML: thanks to Johannes Zellner and Benji Fisher.
+if exists("loaded_matchit")
+ let b:match_ignorecase = 1
+ let b:match_words = '<:>,' .
+ \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
+ \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
+ \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
+endif
+
+" Change the :browse e filter to primarily show HTML-related files.
+if has("gui_win32")
+ let b:browsefilter="HTML Files (*.html,*.htm)\t*.htm;*.html\n" .
+ \ "JavaScript Files (*.js)\t*.js\n" .
+ \ "Cascading StyleSheets (*.css)\t*.css\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal commentstring< matchpairs< omnifunc< comments< formatoptions<" .
+ \ " | unlet! b:match_ignorecase b:match_skip b:match_words b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/htmldjango.vim b/vim73/ftplugin/htmldjango.vim
new file mode 100644
index 0000000..40e9429
--- /dev/null
+++ b/vim73/ftplugin/htmldjango.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Django HTML template
+" Maintainer: Dave Hodder <dmh@dmh.org.uk>
+" Last Change: 2007 Jan 25
+
+" Only use this filetype plugin when no other was loaded.
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Use HTML and Django template ftplugins.
+runtime! ftplugin/html.vim
+runtime! ftplugin/django.vim
diff --git a/vim73/ftplugin/indent.vim b/vim73/ftplugin/indent.vim
new file mode 100644
index 0000000..0e195b0
--- /dev/null
+++ b/vim73/ftplugin/indent.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: indent(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/initex.vim b/vim73/ftplugin/initex.vim
new file mode 100644
index 0000000..4f35d04
--- /dev/null
+++ b/vim73/ftplugin/initex.vim
@@ -0,0 +1,38 @@
+" filetype plugin for TeX and variants
+" Language: TeX (ft=initex)
+" Maintainer: Benji Fisher, Ph.D. <benji@member.AMS.org>
+" Version: 1.0
+" Last Change: Wed 19 Apr 2006
+
+" Only do this when not done yet for this buffer.
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer.
+let b:did_ftplugin = 1
+
+" Avoid problems if running in 'compatible' mode.
+let s:save_cpo = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< define< include< sua<"
+
+" Set 'comments' to format dashed lists in comments
+setlocal com=sO:%\ -,mO:%\ \ ,eO:%%,:%
+
+" Set 'commentstring' to recognize the % comment character:
+" (Thanks to Ajit Thakkar.)
+setlocal cms=%%s
+
+" Allow "[d" to be used to find a macro definition:
+let &l:define='\\\([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
+ \ . 'def\|\\font\|\\\(future\)\=let'
+
+" Tell Vim to recognize \input bar :
+let &l:include = '\\input'
+setlocal suffixesadd=.tex
+
+let &cpo = s:save_cpo
+
+" vim:sts=2:sw=2:
diff --git a/vim73/ftplugin/ishd.vim b/vim73/ftplugin/ishd.vim
new file mode 100644
index 0000000..dedb328
--- /dev/null
+++ b/vim73/ftplugin/ishd.vim
@@ -0,0 +1,28 @@
+" Vim filetype plugin file
+" Language: InstallShield (ft=ishd)
+" Maintainer: Johannes Zellner <johannes@zellner.org>
+" Last Change: Sat, 24 May 2003 11:55:36 CEST
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+setlocal foldmethod=syntax
+
+set cpo-=C
+
+" matchit support
+if exists("loaded_matchit")
+ let b:match_ignorecase=0
+ let b:match_words=
+ \ '\%(^\s*\)\@<=\<function\>\s\+[^()]\+\s*(:\%(^\s*\)\@<=\<begin\>\s*$:\%(^\s*\)\@<=\<return\>:\%(^\s*\)\@<=\<end\>\s*;\s*$,' .
+ \ '\%(^\s*\)\@<=\<repeat\>\s*$:\%(^\s*\)\@<=\<until\>\s\+.\{-}\s*;\s*$,' .
+ \ '\%(^\s*\)\@<=\<switch\>\s*(.\{-}):\%(^\s*\)\@<=\<\%(case\|default\)\>:\%(^\s*\)\@<=\<endswitch\>\s*;\s*$,' .
+ \ '\%(^\s*\)\@<=\<while\>\s*(.\{-}):\%(^\s*\)\@<=\<endwhile\>\s*;\s*$,' .
+ \ '\%(^\s*\)\@<=\<for\>.\{-}\<\%(to\|downto\)\>:\%(^\s*\)\@<=\<endfor\>\s*;\s*$,' .
+ \ '\%(^\s*\)\@<=\<if\>\s*(.\{-})\s*then:\%(^\s*\)\@<=\<else\s*if\>\s*([^)]*)\s*then:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<endif\>\s*;\s*$'
+endif
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "InstallShield Files (*.rul)\t*.rul\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
diff --git a/vim73/ftplugin/java.vim b/vim73/ftplugin/java.vim
new file mode 100644
index 0000000..6c7b367
--- /dev/null
+++ b/vim73/ftplugin/java.vim
@@ -0,0 +1,50 @@
+" Vim filetype plugin file
+" Language: Java
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Change: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" For filename completion, prefer the .java extension over the .class
+" extension.
+set suffixes+=.class
+
+" Enable gf on import statements. Convert . in the package
+" name to / and append .java to the name, then search the path.
+setlocal includeexpr=substitute(v:fname,'\\.','/','g')
+setlocal suffixesadd=.java
+if exists("g:ftplugin_java_source_path")
+ let &l:path=g:ftplugin_java_source_path . ',' . &l:path
+endif
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal formatoptions-=t formatoptions+=croql
+
+" Set 'comments' to format dashed lists in comments. Behaves just like C.
+setlocal comments& comments^=sO:*\ -,mO:*\ \ ,exO:*/
+
+setlocal commentstring=//%s
+
+" Change the :browse e filter to primarily show Java-related files.
+if has("gui_win32")
+ let b:browsefilter="Java Files (*.java)\t*.java\n" .
+ \ "Properties Files (*.prop*)\t*.prop*\n" .
+ \ "Manifest Files (*.mf)\t*.mf\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal suffixes< suffixesadd<" .
+ \ " formatoptions< comments< commentstring< path< includeexpr<" .
+ \ " | unlet! b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/javascript.vim b/vim73/ftplugin/javascript.vim
new file mode 100644
index 0000000..af5e4a9
--- /dev/null
+++ b/vim73/ftplugin/javascript.vim
@@ -0,0 +1,38 @@
+" Vim filetype plugin file
+" Language: Javascript
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Last Change: 2008 Jun 15
+" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/ftplugin/javascript.vim
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo-=C
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" " and insert the comment leader when hitting <CR> or using "o".
+setlocal formatoptions-=t formatoptions+=croql
+
+" Set completion with CTRL-X CTRL-O to autoloaded function.
+if exists('&ofu')
+ setlocal omnifunc=javascriptcomplete#CompleteJS
+endif
+
+" Set 'comments' to format dashed lists in comments.
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+
+setlocal commentstring=//%s
+
+" Change the :browse e filter to primarily show Java-related files.
+if has("gui_win32")
+ let b:browsefilter="Javascript Files (*.js)\t*.js\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+let b:undo_ftplugin = "setl fo< ofu< com< cms<"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/jsp.vim b/vim73/ftplugin/jsp.vim
new file mode 100644
index 0000000..9c0eb96
--- /dev/null
+++ b/vim73/ftplugin/jsp.vim
@@ -0,0 +1,66 @@
+" Vim filetype plugin file
+" Language: jsp
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "Java Files (*.java)\t*.java\n" .
+ \ "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
+ \ "All Files (*.*)\t*.*\n"
+let s:match_words = ""
+
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+unlet b:did_ftplugin
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+ unlet b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+ unlet b:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words
+ unlet b:match_words
+endif
+
+runtime! ftplugin/java.vim ftplugin/java_*.vim ftplugin/java/*.vim
+let b:did_ftplugin = 1
+
+" Combine the new set of values with those previously included.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
+endif
+if exists ("b:browsefilter")
+ let s:browsefilter = b:browsefilter . s:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words . ',' . s:match_words
+endif
+
+" Load the combined list of match_words for matchit.vim
+if exists("loaded_matchit")
+ let b:match_words = s:match_words
+endif
+
+" Change the :browse e filter to primarily show JSP-related files.
+if has("gui_win32")
+ let b:browsefilter="JSP Files (*.jsp)\t*.jsp\n" . s:browsefilter
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/kconfig.vim b/vim73/ftplugin/kconfig.vim
new file mode 100644
index 0000000..1b10c86
--- /dev/null
+++ b/vim73/ftplugin/kconfig.vim
@@ -0,0 +1,18 @@
+" Vim filetype plugin file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/kwt.vim b/vim73/ftplugin/kwt.vim
new file mode 100644
index 0000000..7be6422
--- /dev/null
+++ b/vim73/ftplugin/kwt.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: Kimwitu++
+" Maintainer: Michael Piefel <piefel@informatik.hu-berlin.de>
+" Last Change: 16 August 2001
+
+" Behaves almost like C++
+runtime! ftplugin/cpp.vim ftplugin/cpp_*.vim ftplugin/cpp/*.vim
+
+set cpo-=C
+
+" Limit the browser to related files
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "Kimwitu/Kimwitu++ Files (*.k)\t*.k\n" .
+ \ "Lex/Flex Files (*.l)\t*.l\n" .
+ \ "Yacc/Bison Files (*.y)\t*.y\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Set the errorformat for the Kimwitu++ compiler
+set efm+=kc%.%#:\ error\ at\ %f:%l:\ %m
diff --git a/vim73/ftplugin/ld.vim b/vim73/ftplugin/ld.vim
new file mode 100644
index 0000000..31ce5c9
--- /dev/null
+++ b/vim73/ftplugin/ld.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: ld(1) script
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=s1:/*,mb:*,ex:*/ commentstring=/*%s*/ include=^\\s*INCLUDE
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/lftp.vim b/vim73/ftplugin/lftp.vim
new file mode 100644
index 0000000..9e2eeb5
--- /dev/null
+++ b/vim73/ftplugin/lftp.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: lftp(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/libao.vim b/vim73/ftplugin/libao.vim
new file mode 100644
index 0000000..38bd3de
--- /dev/null
+++ b/vim73/ftplugin/libao.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: libao.conf(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/limits.vim b/vim73/ftplugin/limits.vim
new file mode 100644
index 0000000..cd5b7b5
--- /dev/null
+++ b/vim73/ftplugin/limits.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: limits(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/liquid.vim b/vim73/ftplugin/liquid.vim
new file mode 100644
index 0000000..b211a88
--- /dev/null
+++ b/vim73/ftplugin/liquid.vim
@@ -0,0 +1,61 @@
+" Vim filetype plugin
+" Language: Liquid
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 May 21
+
+if exists('b:did_ftplugin')
+ finish
+endif
+
+if !exists('g:liquid_default_subtype')
+ let g:liquid_default_subtype = 'html'
+endif
+
+if !exists('b:liquid_subtype')
+ let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
+ let b:liquid_subtype = matchstr(s:lines,'liquid_subtype=\zs\w\+')
+ if b:liquid_subtype == ''
+ let b:liquid_subtype = matchstr(&filetype,'^liquid\.\zs\w\+')
+ endif
+ if b:liquid_subtype == ''
+ let b:liquid_subtype = matchstr(substitute(expand('%:t'),'\c\%(\.liquid\)\+$','',''),'\.\zs\w\+$')
+ endif
+ if b:liquid_subtype == ''
+ let b:liquid_subtype = g:liquid_default_subtype
+ endif
+endif
+
+if exists('b:liquid_subtype') && b:liquid_subtype != ''
+ exe 'runtime! ftplugin/'.b:liquid_subtype.'.vim ftplugin/'.b:liquid_subtype.'_*.vim ftplugin/'.b:liquid_subtype.'/*.vim'
+else
+ runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+endif
+let b:did_ftplugin = 1
+
+if exists('b:undo_ftplugin')
+ let b:undo_ftplugin .= '|'
+else
+ let b:undo_ftplugin = ''
+endif
+if exists('b:browsefilter')
+ let b:browsefilter = "\n".b:browsefilter
+else
+ let b:browsefilter = ''
+endif
+if exists('b:match_words')
+ let b:match_words .= ','
+elseif exists('loaded_matchit')
+ let b:match_words = ''
+endif
+
+if has('gui_win32')
+ let b:browsefilter="Liquid Files (*.liquid)\t*.liquid" . b:browsefilter
+endif
+
+if exists('loaded_matchit')
+ let b:match_words .= '\<\%(if\w*\|unless\|case\)\>:\<\%(elsif\|else\|when\)\>:\<end\%(if\w*\|unless\|case\)\>,\<\%(for\|tablerow\)\>:\%({%\s*\)\@<=empty\>:\<end\%(for\|tablerow\)\>,<\(capture\|comment\|highlight\)\>:\<end\1\>'
+endif
+
+setlocal commentstring={%\ comment\ %}%s{%\ endcomment\ %}
+
+let b:undo_ftplugin .= 'setl cms< | unlet! b:browsefilter b:match_words'
diff --git a/vim73/ftplugin/lisp.vim b/vim73/ftplugin/lisp.vim
new file mode 100644
index 0000000..b477214
--- /dev/null
+++ b/vim73/ftplugin/lisp.vim
@@ -0,0 +1,26 @@
+" Vim filetype plugin
+" Language: Lisp
+" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
+" URL: http://iamphet.nm.ru/vim
+" Original author: Dorai Sitaram <ds26@gte.com>
+" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
+" Last Change: Nov 8, 2004
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+setl comments=:;
+setl define=^\\s*(def\\k*
+setl formatoptions-=t
+setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
+setl lisp
+
+" make comments behaviour like in c.vim
+" e.g. insertion of ;;; and ;; on normal "O" or "o" when staying in comment
+setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
+setl formatoptions+=croql
diff --git a/vim73/ftplugin/logcheck.vim b/vim73/ftplugin/logcheck.vim
new file mode 100644
index 0000000..765f6b4
--- /dev/null
+++ b/vim73/ftplugin/logcheck.vim
@@ -0,0 +1,17 @@
+" Vim filetype plugin file
+" Language: Logcheck
+" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Last Change: 2010 Jul 29
+" License: GNU GPL, version 2.0
+" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/logcheck.vim
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl fo<"
+
+" Do not hard-wrap non-comment lines since each line is a self-contained
+" regular expression
+setlocal formatoptions-=t
diff --git a/vim73/ftplugin/loginaccess.vim b/vim73/ftplugin/loginaccess.vim
new file mode 100644
index 0000000..7c44f97
--- /dev/null
+++ b/vim73/ftplugin/loginaccess.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: login.access(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/logindefs.vim b/vim73/ftplugin/logindefs.vim
new file mode 100644
index 0000000..668d08a
--- /dev/null
+++ b/vim73/ftplugin/logindefs.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: login.defs(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/logtalk.dict b/vim73/ftplugin/logtalk.dict
new file mode 100644
index 0000000..e3b9e6f
--- /dev/null
+++ b/vim73/ftplugin/logtalk.dict
@@ -0,0 +1,164 @@
+encoding
+calls
+category
+dynamic
+end_category
+end_object
+end_protocol
+info
+initialization
+object
+protocol
+synchronized
+threaded
+uses
+alias
+discontiguous
+meta_predicate
+mode
+op
+private
+protected
+public
+current_object
+current_protocol
+current_category
+object_property
+protocol_property
+category_property
+create_object
+create_protocol
+create_category
+abolish_object
+abolish_protocol
+abolish_category
+complements
+complements_object
+extends
+extends_object
+extends_protocol
+extends_category
+implements
+implements_protocol
+imports
+imports_category
+instantiates
+instantiates_class
+specializes
+specializes_class
+abolish_events
+current_event
+define_events
+logtalk_load
+logtalk_compile
+logtalk_library_path
+current_logtalk_flag
+set_logtalk_flag
+threaded_call
+threaded_once
+threaded_ignore
+threaded_exit
+threaded_peek
+threaded_wait
+threaded_notify
+self
+this
+sender
+parameter
+before
+after
+phrase
+expand_term
+goal_expansion
+term_expansion
+true
+fail
+call
+catch
+throw
+unify_with_occurs_check
+var
+atom
+integer
+float
+atomic
+compound
+nonvar
+number
+arg
+copy_term
+functor
+current_predicate
+predicate_property
+abolish
+assertz
+asserta
+clause
+retract
+retractall
+bagof
+findall
+forall
+setof
+current_input
+current_output
+set_input
+set_output
+open
+close
+flush_output
+stream_property
+at_end_of_stream
+set_stream_position
+get_char
+get_code
+peek_char
+peek_code
+put_char
+put_code
+nl
+get_byte
+peek_byte
+put_byte
+read
+read_term
+write
+writeq
+write_canonical
+atom_chars
+atom_codes
+atom_concat
+number_chars
+number_codes
+current_op
+char_conversion
+current_char_conversion
+once
+repeat
+atom_length
+atom_concat
+sub_atom
+atom_chars
+atom_codes
+char_code
+number_chars
+number_codes
+set_prolog_flag
+current_prolog_flag
+halt
+abs
+atan
+ceiling
+cos
+exp
+float_fractional_part
+float_integer_part
+floor
+log
+mod
+rem
+round
+sign
+sin
+sqrt
+truncate
diff --git a/vim73/ftplugin/logtalk.vim b/vim73/ftplugin/logtalk.vim
new file mode 100644
index 0000000..e71307a
--- /dev/null
+++ b/vim73/ftplugin/logtalk.vim
@@ -0,0 +1,18 @@
+" Logtalk filetype plugin file
+" Language: Logtalk
+" Maintainer: Paulo Moura <pmoura@logtalk.org>
+" Latest Revision: 2007-07-06
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl ts< sw< fdm< fdc< ai< dict<"
+
+"setlocal ts=4
+setlocal sw=4
+setlocal fdm=syntax
+setlocal fdc=2
+setlocal autoindent
+setlocal dict=$VIMRUNTIME/ftplugin/logtalk.dict
diff --git a/vim73/ftplugin/lprolog.vim b/vim73/ftplugin/lprolog.vim
new file mode 100644
index 0000000..a8a3c61
--- /dev/null
+++ b/vim73/ftplugin/lprolog.vim
@@ -0,0 +1,37 @@
+" Vim settings file
+" Language: LambdaProlog (Teyjus)
+" Maintainer: Markus Mottl <markus.mottl@gmail.com>
+" URL: http://www.ocaml.info/vim/ftplugin/lprolog.vim
+" Last Change: 2006 Feb 05
+" 2001 Sep 16 - fixed 'no_mail_maps'-bug (MM)
+" 2001 Sep 02 - initial release (MM)
+
+" Only do these settings when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't do other file type settings for this buffer
+let b:did_ftplugin = 1
+
+" Error format
+setlocal efm=%+A./%f:%l.%c:\ %m formatprg=fmt\ -w75\ -p\\%
+
+" Formatting of comments
+setlocal formatprg=fmt\ -w75\ -p\\%
+
+" Add mappings, unless the user didn't want this.
+if !exists("no_plugin_maps") && !exists("no_lprolog_maps")
+ " Uncommenting
+ if !hasmapto('<Plug>Comment')
+ nmap <buffer> <LocalLeader>c <Plug>LUncomOn
+ vmap <buffer> <LocalLeader>c <Plug>BUncomOn
+ nmap <buffer> <LocalLeader>C <Plug>LUncomOff
+ vmap <buffer> <LocalLeader>C <Plug>BUncomOff
+ endif
+
+ nnoremap <buffer> <Plug>LUncomOn mz0i/* <ESC>$A */<ESC>`z
+ nnoremap <buffer> <Plug>LUncomOff <ESC>:s/^\/\* \(.*\) \*\//\1/<CR>
+ vnoremap <buffer> <Plug>BUncomOn <ESC>:'<,'><CR>`<O<ESC>0i/*<ESC>`>o<ESC>0i*/<ESC>`<
+ vnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`<
+endif
diff --git a/vim73/ftplugin/lua.vim b/vim73/ftplugin/lua.vim
new file mode 100644
index 0000000..297833f
--- /dev/null
+++ b/vim73/ftplugin/lua.vim
@@ -0,0 +1,36 @@
+" Vim filetype plugin file.
+" Language: Lua 4.0+
+" Maintainer: Max Ischenko <mfi@ukr.net>
+" Last Change: 2008 Mar 25
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Set 'formatoptions' to break comment lines but not other lines, and insert
+" the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+setlocal com=:--
+setlocal cms=--%s
+setlocal suffixesadd=.lua
+
+
+" The following lines enable the macros/matchit.vim plugin for
+" extended matching with the % key.
+
+set cpo-=C
+if exists("loaded_matchit")
+
+ let b:match_ignorecase = 0
+ let b:match_words =
+ \ '\<\%(do\|function\|if\)\>:' .
+ \ '\<\%(return\|else\|elseif\)\>:' .
+ \ '\<end\>,' .
+ \ '\<repeat\>:\<until\>'
+
+endif " exists("loaded_matchit")
diff --git a/vim73/ftplugin/m4.vim b/vim73/ftplugin/m4.vim
new file mode 100644
index 0000000..0ffe0ac
--- /dev/null
+++ b/vim73/ftplugin/m4.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: m4
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:#,:dnl commentstring=dnl\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/mail.vim b/vim73/ftplugin/mail.vim
new file mode 100644
index 0000000..4a4c851
--- /dev/null
+++ b/vim73/ftplugin/mail.vim
@@ -0,0 +1,35 @@
+" Vim filetype plugin file
+" Language: Mail
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2009 Jun 03
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl modeline< tw< fo<"
+
+" Don't use modelines in e-mail messages, avoid trojan horses and nasty
+" "jokes" (e.g., setting 'textwidth' to 5).
+setlocal nomodeline
+
+" many people recommend keeping e-mail messages 72 chars wide
+if &tw == 0
+ setlocal tw=72
+endif
+
+" Set 'formatoptions' to break text lines and keep the comment leader ">".
+setlocal fo+=tcql
+
+" Add mappings, unless the user doesn't want this.
+if !exists("no_plugin_maps") && !exists("no_mail_maps")
+ " Quote text by inserting "> "
+ if !hasmapto('<Plug>MailQuote')
+ vmap <buffer> <LocalLeader>q <Plug>MailQuote
+ nmap <buffer> <LocalLeader>q <Plug>MailQuote
+ endif
+ vnoremap <buffer> <Plug>MailQuote :s/^/> /<CR>:noh<CR>``
+ nnoremap <buffer> <Plug>MailQuote :.,$s/^/> /<CR>:noh<CR>``
+endif
diff --git a/vim73/ftplugin/mailaliases.vim b/vim73/ftplugin/mailaliases.vim
new file mode 100644
index 0000000..1b10c86
--- /dev/null
+++ b/vim73/ftplugin/mailaliases.vim
@@ -0,0 +1,18 @@
+" Vim filetype plugin file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/mailcap.vim b/vim73/ftplugin/mailcap.vim
new file mode 100644
index 0000000..f4c8c23
--- /dev/null
+++ b/vim73/ftplugin/mailcap.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: Mailcap configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/make.vim b/vim73/ftplugin/make.vim
new file mode 100644
index 0000000..38ee030
--- /dev/null
+++ b/vim73/ftplugin/make.vim
@@ -0,0 +1,28 @@
+" Vim filetype plugin file
+" Language: Make
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2006 Jun 17
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl et< sts< fo< com< cms< inc<"
+
+" Make sure a hard tab is used, required for most make programs
+setlocal noexpandtab softtabstop=0
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" Set 'comments' to format dashed lists in comments
+setlocal com=sO:#\ -,mO:#\ \ ,b:#
+
+" Set 'commentstring' to put the marker after a #.
+setlocal commentstring=#\ %s
+
+" Including files.
+let &l:include = '^\s*include'
diff --git a/vim73/ftplugin/man.vim b/vim73/ftplugin/man.vim
new file mode 100644
index 0000000..3fb22a1
--- /dev/null
+++ b/vim73/ftplugin/man.vim
@@ -0,0 +1,185 @@
+" Vim filetype plugin file
+" Language: man
+" Maintainer: SungHyun Nam <goweol@gmail.com>
+" Last Change: 2010 Nov 29
+
+" To make the ":Man" command available before editing a manual page, source
+" this script from your startup vimrc file.
+
+" If 'filetype' isn't "man", we must have been called to only define ":Man".
+if &filetype == "man"
+
+ " Only do this when not done yet for this buffer
+ if exists("b:did_ftplugin")
+ finish
+ endif
+ let b:did_ftplugin = 1
+
+ " Ensure Vim is not recursively invoked (man-db does this)
+ " when doing ctrl-[ on a man page reference.
+ let $MANPAGER = ""
+
+ " allow dot and dash in manual page name.
+ setlocal iskeyword+=\.,-
+
+ " Add mappings, unless the user didn't want this.
+ if !exists("no_plugin_maps") && !exists("no_man_maps")
+ if !hasmapto('<Plug>ManBS')
+ nmap <buffer> <LocalLeader>h <Plug>ManBS
+ endif
+ nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>''
+
+ nnoremap <buffer> <c-]> :call <SID>PreGetPage(v:count)<CR>
+ nnoremap <buffer> <c-t> :call <SID>PopPage()<CR>
+ endif
+
+endif
+
+if exists(":Man") != 2
+ com -nargs=+ Man call s:GetPage(<f-args>)
+ nmap <Leader>K :call <SID>PreGetPage(0)<CR>
+endif
+
+" Define functions only once.
+if !exists("s:man_tag_depth")
+
+let s:man_tag_depth = 0
+
+let s:man_sect_arg = ""
+let s:man_find_arg = "-w"
+try
+ if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5"
+ let s:man_sect_arg = "-s"
+ let s:man_find_arg = "-l"
+ endif
+catch /E145:/
+ " Ignore the error in restricted mode
+endtry
+
+func <SID>PreGetPage(cnt)
+ if a:cnt == 0
+ let old_isk = &iskeyword
+ setl iskeyword+=(,)
+ let str = expand("<cword>")
+ let &l:iskeyword = old_isk
+ let page = substitute(str, '(*\(\k\+\).*', '\1', '')
+ let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '')
+ if match(sect, '^[0-9 ]\+$') == -1
+ let sect = ""
+ endif
+ if sect == page
+ let sect = ""
+ endif
+ else
+ let sect = a:cnt
+ let page = expand("<cword>")
+ endif
+ call s:GetPage(sect, page)
+endfunc
+
+func <SID>GetCmdArg(sect, page)
+ if a:sect == ''
+ return a:page
+ endif
+ return s:man_sect_arg.' '.a:sect.' '.a:page
+endfunc
+
+func <SID>FindPage(sect, page)
+ let where = system("/usr/bin/man ".s:man_find_arg.' '.s:GetCmdArg(a:sect, a:page))
+ if where !~ "^/"
+ if matchstr(where, " [^ ]*$") !~ "^ /"
+ return 0
+ endif
+ endif
+ return 1
+endfunc
+
+func <SID>GetPage(...)
+ if a:0 >= 2
+ let sect = a:1
+ let page = a:2
+ elseif a:0 >= 1
+ let sect = ""
+ let page = a:1
+ else
+ return
+ endif
+
+ " To support: nmap K :Man <cword>
+ if page == '<cword>'
+ let page = expand('<cword>')
+ endif
+
+ if sect != "" && s:FindPage(sect, page) == 0
+ let sect = ""
+ endif
+ if s:FindPage(sect, page) == 0
+ echo "\nCannot find a '".page."'."
+ return
+ endif
+ exec "let s:man_tag_buf_".s:man_tag_depth." = ".bufnr("%")
+ exec "let s:man_tag_lin_".s:man_tag_depth." = ".line(".")
+ exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".")
+ let s:man_tag_depth = s:man_tag_depth + 1
+
+ " Use an existing "man" window if it exists, otherwise open a new one.
+ if &filetype != "man"
+ let thiswin = winnr()
+ exe "norm! \<C-W>b"
+ if winnr() > 1
+ exe "norm! " . thiswin . "\<C-W>w"
+ while 1
+ if &filetype == "man"
+ break
+ endif
+ exe "norm! \<C-W>w"
+ if thiswin == winnr()
+ break
+ endif
+ endwhile
+ endif
+ if &filetype != "man"
+ new
+ setl nonu fdc=0
+ endif
+ endif
+ silent exec "edit $HOME/".page.".".sect."~"
+ " Avoid warning for editing the dummy file twice
+ setl buftype=nofile noswapfile
+
+ setl ma
+ silent exec "norm 1GdG"
+ let $MANWIDTH = winwidth(0)
+ silent exec "r!/usr/bin/man ".s:GetCmdArg(sect, page)." | col -b"
+ " Remove blank lines from top and bottom.
+ while getline(1) =~ '^\s*$'
+ silent norm ggdd
+ endwhile
+ while getline('$') =~ '^\s*$'
+ silent norm Gdd
+ endwhile
+ 1
+ setl ft=man nomod
+ setl bufhidden=hide
+ setl nobuflisted
+endfunc
+
+func <SID>PopPage()
+ if s:man_tag_depth > 0
+ let s:man_tag_depth = s:man_tag_depth - 1
+ exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth
+ exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth
+ exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth
+ exec s:man_tag_buf."b"
+ exec s:man_tag_lin
+ exec "norm ".s:man_tag_col."|"
+ exec "unlet s:man_tag_buf_".s:man_tag_depth
+ exec "unlet s:man_tag_lin_".s:man_tag_depth
+ exec "unlet s:man_tag_col_".s:man_tag_depth
+ unlet s:man_tag_buf s:man_tag_lin s:man_tag_col
+ endif
+endfunc
+
+endif
+
+" vim: set sw=2:
diff --git a/vim73/ftplugin/manconf.vim b/vim73/ftplugin/manconf.vim
new file mode 100644
index 0000000..a249a97
--- /dev/null
+++ b/vim73/ftplugin/manconf.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: man.conf(5) - man configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/markdown.vim b/vim73/ftplugin/markdown.vim
new file mode 100644
index 0000000..9462082
--- /dev/null
+++ b/vim73/ftplugin/markdown.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin
+" Language: Markdown
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 May 21
+
+if exists("b:did_ftplugin")
+ finish
+endif
+
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+unlet! b:did_ftplugin
+
+setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
+setlocal formatoptions+=tcqln
+setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
+
+let b:undo_ftplugin .= "|setl cms< com< fo<"
+
+" vim:set sw=2:
diff --git a/vim73/ftplugin/matlab.vim b/vim73/ftplugin/matlab.vim
new file mode 100644
index 0000000..1800dc8
--- /dev/null
+++ b/vim73/ftplugin/matlab.vim
@@ -0,0 +1,30 @@
+" Vim filetype plugin file
+" Language: matlab
+" Maintainer: Jake Wasserman <jwasserman at gmail dot com>
+" Last Changed: 2006 Jan 12
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:save_cpo = &cpo
+set cpo-=C
+
+if exists("loaded_matchit")
+ let s:conditionalEnd = '\(([^()]*\)\@!\<end\>\([^()]*)\)\@!'
+ let b:match_words = '\<if\>\|\<while\>\|\<for\>\|\<switch\>:' .
+ \ s:conditionalEnd . ',\<if\>:\<elseif\>:\<else\>:' .
+ \ s:conditionalEnd
+endif
+
+setlocal suffixesadd=.m
+setlocal suffixes+=.asv
+
+let b:undo_ftplugin = "setlocal suffixesadd< suffixes< "
+ \ . "| unlet! b:match_words"
+
+let &cpo = s:save_cpo
+
+
+
diff --git a/vim73/ftplugin/mf.vim b/vim73/ftplugin/mf.vim
new file mode 100644
index 0000000..fd1d3ce
--- /dev/null
+++ b/vim73/ftplugin/mf.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: MetaFont
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/modconf.vim b/vim73/ftplugin/modconf.vim
new file mode 100644
index 0000000..f200e9f
--- /dev/null
+++ b/vim73/ftplugin/modconf.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: modules.conf(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s include=^\\s*include
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/mp.vim b/vim73/ftplugin/mp.vim
new file mode 100644
index 0000000..316fa9b
--- /dev/null
+++ b/vim73/ftplugin/mp.vim
@@ -0,0 +1,28 @@
+" Vim filetype plugin file
+" Language: MetaPost
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
+
+if exists(":FixBeginfigs") != 2
+ command -nargs=0 FixBeginfigs call s:fix_beginfigs()
+
+ function! s:fix_beginfigs()
+ let i = 1
+ g/^beginfig(\d*);$/s//\='beginfig('.i.');'/ | let i = i + 1
+ endfunction
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/mplayerconf.vim b/vim73/ftplugin/mplayerconf.vim
new file mode 100644
index 0000000..65034a8
--- /dev/null
+++ b/vim73/ftplugin/mplayerconf.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: mplayer(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s include=^\\s*include
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/mrxvtrc.vim b/vim73/ftplugin/mrxvtrc.vim
new file mode 100644
index 0000000..15cc0db
--- /dev/null
+++ b/vim73/ftplugin/mrxvtrc.vim
@@ -0,0 +1,22 @@
+" Created : Wed 26 Apr 2006 01:20:53 AM CDT
+" Modified : Fri 28 Apr 2006 03:24:01 AM CDT
+" Author : Gautam Iyer <gi1242@users.sourceforge.net>
+" Description : ftplugin for mrxvtrc
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+" Really any line that does not match an option is a comment. But use '!' for
+" compatibility with x-defaults files, and "#" (preferred) for compatibility
+" with all other config files.
+"
+" Comments beginning with "#" are preferred because Vim will not flag the
+" first word as a spelling error if it is not capitalised. The '!' used as
+" comment leaders makes Vim think that every comment line is a new sentence.
+
+setlocal comments=:!,:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
diff --git a/vim73/ftplugin/msmessages.vim b/vim73/ftplugin/msmessages.vim
new file mode 100644
index 0000000..791eafe
--- /dev/null
+++ b/vim73/ftplugin/msmessages.vim
@@ -0,0 +1,40 @@
+" Vim filetype plugin file
+" Language: MS Message files (*.mc)
+" Maintainer: Kevin Locke <kwl7@cornell.edu>
+" Last Change: 2008 April 09
+" Location: http://kevinlocke.name/programs/vim/syntax/msmessages.vim
+
+" Based on c.vim
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Using line continuation here.
+let s:cpo_save = &cpo
+set cpo-=C
+
+let b:undo_ftplugin = "setl fo< com< cms< | unlet! b:browsefilter"
+
+" Set 'formatoptions' to format all lines, including comments
+setlocal fo-=ct fo+=roql
+
+" Comments includes both ";" which describes a "comment" which will be
+" converted to C code and variants on "; //" which will remain comments
+" in the generated C code
+setlocal comments=:;,:;//,:;\ //,s:;\ /*\ ,m:;\ \ *\ ,e:;\ \ */
+setlocal commentstring=;\ //\ %s
+
+" Win32 can filter files in the browse dialog
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "MS Message Files (*.mc)\t*.mc\n" .
+ \ "Resource Files (*.rc)\t*.rc\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/muttrc.vim b/vim73/ftplugin/muttrc.vim
new file mode 100644
index 0000000..a109e5d
--- /dev/null
+++ b/vim73/ftplugin/muttrc.vim
@@ -0,0 +1,22 @@
+" Vim filetype plugin file
+" Language: mutt RC File
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &l:include = '^\s*source\>'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/nanorc.vim b/vim73/ftplugin/nanorc.vim
new file mode 100644
index 0000000..be20d12
--- /dev/null
+++ b/vim73/ftplugin/nanorc.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: nanorc(5) - GNU nano configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/netrc.vim b/vim73/ftplugin/netrc.vim
new file mode 100644
index 0000000..105a1d3
--- /dev/null
+++ b/vim73/ftplugin/netrc.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: netrc(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/nsis.vim b/vim73/ftplugin/nsis.vim
new file mode 100644
index 0000000..acc2620
--- /dev/null
+++ b/vim73/ftplugin/nsis.vim
@@ -0,0 +1,22 @@
+" Vim ftplugin file
+" Language: NSIS script
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
+setlocal formatoptions-=t formatoptions+=croql
+setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
+setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/objc.vim b/vim73/ftplugin/objc.vim
new file mode 100644
index 0000000..e41beb5
--- /dev/null
+++ b/vim73/ftplugin/objc.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Language: Objective C
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2003 Jan 15
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Behaves just like C
+runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim
diff --git a/vim73/ftplugin/ocaml.vim b/vim73/ftplugin/ocaml.vim
new file mode 100644
index 0000000..a591411
--- /dev/null
+++ b/vim73/ftplugin/ocaml.vim
@@ -0,0 +1,584 @@
+" Language: OCaml
+" Maintainer: David Baelde <firstname.name@ens-lyon.org>
+" Mike Leary <leary@nwlink.com>
+" Markus Mottl <markus.mottl@gmail.com>
+" Stefano Zacchiroli <zack@bononia.it>
+" Vincent Aravantinos <firstname.name@imag.fr>
+" URL: http://www.ocaml.info/vim/ftplugin/ocaml.vim
+" Last Change: 2010 Jul 10 - Bugfix, thanks to Pat Rondon
+" 2008 Jul 17 - Bugfix related to fnameescape (VA)
+" 2007 Sep 09 - Added .annot support for ocamlbuild, python not
+" needed anymore (VA)
+" 2006 May 01 - Added .annot support for file.whateverext (SZ)
+" 2006 Apr 11 - Fixed an initialization bug; fixed ASS abbrev (MM)
+" 2005 Oct 13 - removed GPL; better matchit support (MM, SZ)
+"
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin=1
+
+" some macro
+if exists('*fnameescape')
+ function! s:Fnameescape(s)
+ return fnameescape(a:s)
+ endfun
+else
+ function! s:Fnameescape(s)
+ return escape(a:s," \t\n*?[{`$\\%#'\"|!<")
+ endfun
+endif
+
+" Error handling -- helps moving where the compiler wants you to go
+let s:cposet=&cpoptions
+set cpo-=C
+setlocal efm=
+ \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
+ \%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
+ \%+EReference\ to\ unbound\ regexp\ name\ %m,
+ \%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m,
+ \%Wocamlyacc:\ w\ -\ %m,
+ \%-Zmake%.%#,
+ \%C%m,
+ \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
+ \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
+ \%D%*\\a:\ Entering\ directory\ `%f',
+ \%X%*\\a:\ Leaving\ directory\ `%f',
+ \%DMaking\ %*\\a\ in\ %f
+
+" Add mappings, unless the user didn't want this.
+if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
+ " (un)commenting
+ if !hasmapto('<Plug>Comment')
+ nmap <buffer> <LocalLeader>c <Plug>LUncomOn
+ vmap <buffer> <LocalLeader>c <Plug>BUncomOn
+ nmap <buffer> <LocalLeader>C <Plug>LUncomOff
+ vmap <buffer> <LocalLeader>C <Plug>BUncomOff
+ endif
+
+ nnoremap <buffer> <Plug>LUncomOn mz0i(* <ESC>$A *)<ESC>`z
+ nnoremap <buffer> <Plug>LUncomOff :s/^(\* \(.*\) \*)/\1/<CR>:noh<CR>
+ vnoremap <buffer> <Plug>BUncomOn <ESC>:'<,'><CR>`<O<ESC>0i(*<ESC>`>o<ESC>0i*)<ESC>`<
+ vnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`<
+
+ if !hasmapto('<Plug>Abbrev')
+ iabbrev <buffer> ASS (assert (0=1) (* XXX *))
+ endif
+endif
+
+" Let % jump between structure elements (due to Issac Trotts)
+let b:mw = ''
+let b:mw = b:mw . ',\<let\>:\<and\>:\(\<in\>\|;;\)'
+let b:mw = b:mw . ',\<if\>:\<then\>:\<else\>'
+let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>,'
+let b:mw = b:mw . ',\<\(object\|sig\|struct\|begin\)\>:\<end\>'
+let b:mw = b:mw . ',\<\(match\|try\)\>:\<with\>'
+let b:match_words = b:mw
+
+let b:match_ignorecase=0
+
+" switching between interfaces (.mli) and implementations (.ml)
+if !exists("g:did_ocaml_switch")
+ let g:did_ocaml_switch = 1
+ map <LocalLeader>s :call OCaml_switch(0)<CR>
+ map <LocalLeader>S :call OCaml_switch(1)<CR>
+ fun OCaml_switch(newwin)
+ if (match(bufname(""), "\\.mli$") >= 0)
+ let fname = s:Fnameescape(substitute(bufname(""), "\\.mli$", ".ml", ""))
+ if (a:newwin == 1)
+ exec "new " . fname
+ else
+ exec "arge " . fname
+ endif
+ elseif (match(bufname(""), "\\.ml$") >= 0)
+ let fname = s:Fnameescape(bufname("")) . "i"
+ if (a:newwin == 1)
+ exec "new " . fname
+ else
+ exec "arge " . fname
+ endif
+ endif
+ endfun
+endif
+
+" Folding support
+
+" Get the modeline because folding depends on indentation
+let s:s = line2byte(line('.'))+col('.')-1
+if search('^\s*(\*:o\?caml:')
+ let s:modeline = getline(".")
+else
+ let s:modeline = ""
+endif
+if s:s > 0
+ exe 'goto' s:s
+endif
+
+" Get the indentation params
+let s:m = matchstr(s:modeline,'default\s*=\s*\d\+')
+if s:m != ""
+ let s:idef = matchstr(s:m,'\d\+')
+elseif exists("g:omlet_indent")
+ let s:idef = g:omlet_indent
+else
+ let s:idef = 2
+endif
+let s:m = matchstr(s:modeline,'struct\s*=\s*\d\+')
+if s:m != ""
+ let s:i = matchstr(s:m,'\d\+')
+elseif exists("g:omlet_indent_struct")
+ let s:i = g:omlet_indent_struct
+else
+ let s:i = s:idef
+endif
+
+" Set the folding method
+if exists("g:ocaml_folding")
+ setlocal foldmethod=expr
+ setlocal foldexpr=OMLetFoldLevel(v:lnum)
+endif
+
+" - Only definitions below, executed once -------------------------------------
+
+if exists("*OMLetFoldLevel")
+ finish
+endif
+
+function s:topindent(lnum)
+ let l = a:lnum
+ while l > 0
+ if getline(l) =~ '\s*\%(\<struct\>\|\<sig\>\|\<object\>\)'
+ return indent(l)
+ endif
+ let l = l-1
+ endwhile
+ return -s:i
+endfunction
+
+function OMLetFoldLevel(l)
+
+ " This is for not merging blank lines around folds to them
+ if getline(a:l) !~ '\S'
+ return -1
+ endif
+
+ " We start folds for modules, classes, and every toplevel definition
+ if getline(a:l) =~ '^\s*\%(\<val\>\|\<module\>\|\<class\>\|\<type\>\|\<method\>\|\<initializer\>\|\<inherit\>\|\<exception\>\|\<external\>\)'
+ exe 'return ">' (indent(a:l)/s:i)+1 '"'
+ endif
+
+ " Toplevel let are detected thanks to the indentation
+ if getline(a:l) =~ '^\s*let\>' && indent(a:l) == s:i+s:topindent(a:l)
+ exe 'return ">' (indent(a:l)/s:i)+1 '"'
+ endif
+
+ " We close fold on end which are associated to struct, sig or object.
+ " We use syntax information to do that.
+ if getline(a:l) =~ '^\s*end\>' && synIDattr(synID(a:l, indent(a:l)+1, 0), "name") != "ocamlKeyword"
+ return (indent(a:l)/s:i)+1
+ endif
+
+ " Folds end on ;;
+ if getline(a:l) =~ '^\s*;;'
+ exe 'return "<' (indent(a:l)/s:i)+1 '"'
+ endif
+
+ " Comments around folds aren't merged to them.
+ if synIDattr(synID(a:l, indent(a:l)+1, 0), "name") == "ocamlComment"
+ return -1
+ endif
+
+ return '='
+endfunction
+
+" Vim support for OCaml .annot files
+"
+" Last Change: 2007 Jul 17
+" Maintainer: Vincent Aravantinos <vincent.aravantinos@gmail.com>
+" License: public domain
+"
+" Originally inspired by 'ocaml-dtypes.vim' by Stefano Zacchiroli.
+" The source code is quite radically different for we not use python anymore.
+" However this plugin should have the exact same behaviour, that's why the
+" following lines are the quite exact copy of Stefano's original plugin :
+"
+" <<
+" Executing Ocaml_print_type(<mode>) function will display in the Vim bottom
+" line(s) the type of an ocaml value getting it from the corresponding .annot
+" file (if any). If Vim is in visual mode, <mode> should be "visual" and the
+" selected ocaml value correspond to the highlighted text, otherwise (<mode>
+" can be anything else) it corresponds to the literal found at the current
+" cursor position.
+"
+" Typing '<LocalLeader>t' (LocalLeader defaults to '\', see :h LocalLeader)
+" will cause " Ocaml_print_type function to be invoked with the right
+" argument depending on the current mode (visual or not).
+" >>
+"
+" If you find something not matching this behaviour, please signal it.
+"
+" Differences are:
+" - no need for python support
+" + plus : more portable
+" + minus: no more lazy parsing, it looks very fast however
+"
+" - ocamlbuild support, ie.
+" + the plugin finds the _build directory and looks for the
+" corresponding file inside;
+" + if the user decides to change the name of the _build directory thanks
+" to the '-build-dir' option of ocamlbuild, the plugin will manage in
+" most cases to find it out (most cases = if the source file has a unique
+" name among your whole project);
+" + if ocamlbuild is not used, the usual behaviour holds; ie. the .annot
+" file should be in the same directory as the source file;
+" + for vim plugin programmers:
+" the variable 'b:_build_dir' contains the inferred path to the build
+" directory, even if this one is not named '_build'.
+"
+" Bonus :
+" - latin1 accents are handled
+" - lists are handled, even on multiple lines, you don't need the visual mode
+" (the cursor must be on the first bracket)
+" - parenthesized expressions, arrays, and structures (ie. '(...)', '[|...|]',
+" and '{...}') are handled the same way
+
+ " Copied from Stefano's original plugin :
+ " <<
+ " .annot ocaml file representation
+ "
+ " File format (copied verbatim from caml-types.el)
+ "
+ " file ::= block *
+ " block ::= position <SP> position <LF> annotation *
+ " position ::= filename <SP> num <SP> num <SP> num
+ " annotation ::= keyword open-paren <LF> <SP> <SP> data <LF> close-paren
+ "
+ " <SP> is a space character (ASCII 0x20)
+ " <LF> is a line-feed character (ASCII 0x0A)
+ " num is a sequence of decimal digits
+ " filename is a string with the lexical conventions of O'Caml
+ " open-paren is an open parenthesis (ASCII 0x28)
+ " close-paren is a closed parenthesis (ASCII 0x29)
+ " data is any sequence of characters where <LF> is always followed by
+ " at least two space characters.
+ "
+ " - in each block, the two positions are respectively the start and the
+ " end of the range described by the block.
+ " - in a position, the filename is the name of the file, the first num
+ " is the line number, the second num is the offset of the beginning
+ " of the line, the third num is the offset of the position itself.
+ " - the char number within the line is the difference between the third
+ " and second nums.
+ "
+ " For the moment, the only possible keyword is \"type\"."
+ " >>
+
+
+" 1. Finding the annotation file even if we use ocamlbuild
+
+ " In: two strings representing paths
+ " Out: one string representing the common prefix between the two paths
+ function! s:Find_common_path (p1,p2)
+ let temp = a:p2
+ while matchstr(a:p1,temp) == ''
+ let temp = substitute(temp,'/[^/]*$','','')
+ endwhile
+ return temp
+ endfun
+
+ " After call:
+ " - b:annot_file_path :
+ " path to the .annot file corresponding to the
+ " source file (dealing with ocamlbuild stuff)
+ " - b:_build_path:
+ " path to the build directory even if this one is
+ " not named '_build'
+ function! s:Locate_annotation()
+ if !b:annotation_file_located
+
+ silent exe 'cd' s:Fnameescape(expand('%:p:h'))
+
+ let annot_file_name = s:Fnameescape(expand('%:r')).'.annot'
+
+ " 1st case : the annot file is in the same directory as the buffer (no ocamlbuild)
+ let b:annot_file_path = findfile(annot_file_name,'.')
+ if b:annot_file_path != ''
+ let b:annot_file_path = getcwd().'/'.b:annot_file_path
+ let b:_build_path = ''
+ else
+ " 2nd case : the buffer and the _build directory are in the same directory
+ " ..
+ " / \
+ " / \
+ " _build .ml
+ "
+ let b:_build_path = finddir('_build','.')
+ if b:_build_path != ''
+ let b:_build_path = getcwd().'/'.b:_build_path
+ let b:annot_file_path = findfile(annot_file_name,'_build')
+ if b:annot_file_path != ''
+ let b:annot_file_path = getcwd().'/'.b:annot_file_path
+ endif
+ else
+ " 3rd case : the _build directory is in a directory higher in the file hierarchy
+ " (it can't be deeper by ocamlbuild requirements)
+ " ..
+ " / \
+ " / \
+ " _build ...
+ " \
+ " \
+ " .ml
+ "
+ let b:_build_path = finddir('_build',';')
+ if b:_build_path != ''
+ let project_path = substitute(b:_build_path,'/_build$','','')
+ let path_relative_to_project = s:Fnameescape(substitute(expand('%:p:h'),project_path.'/','',''))
+ let b:annot_file_path = findfile(annot_file_name,project_path.'/_build/'.path_relative_to_project)
+ else
+ let b:annot_file_path = findfile(annot_file_name,'**')
+ "4th case : what if the user decided to change the name of the _build directory ?
+ " -> we relax the constraints, it should work in most cases
+ if b:annot_file_path != ''
+ " 4a. we suppose the renamed _build directory is in the current directory
+ let b:_build_path = matchstr(b:annot_file_path,'^[^/]*')
+ if b:annot_file_path != ''
+ let b:annot_file_path = getcwd().'/'.b:annot_file_path
+ let b:_build_path = getcwd().'/'.b:_build_path
+ endif
+ else
+ " 4b. anarchy : the renamed _build directory may be higher in the hierarchy
+ " this will work if the file for which we are looking annotations has a unique name in the whole project
+ " if this is not the case, it may still work, but no warranty here
+ let b:annot_file_path = findfile(annot_file_name,'**;')
+ let project_path = s:Find_common_path(b:annot_file_path,expand('%:p:h'))
+ let b:_build_path = matchstr(b:annot_file_path,project_path.'/[^/]*')
+ endif
+ endif
+ endif
+ endif
+
+ if b:annot_file_path == ''
+ throw 'E484: no annotation file found'
+ endif
+
+ silent exe 'cd' '-'
+
+ let b:annotation_file_located = 1
+ endif
+ endfun
+
+ " This in order to locate the .annot file only once
+ let b:annotation_file_located = 0
+
+" 2. Finding the type information in the annotation file
+
+ " a. The annotation file is opened in vim as a buffer that
+ " should be (almost) invisible to the user.
+
+ " After call:
+ " The current buffer is now the one containing the .annot file.
+ " We manage to keep all this hidden to the user's eye.
+ function! s:Enter_annotation_buffer()
+ let s:current_pos = getpos('.')
+ let s:current_hidden = &l:hidden
+ set hidden
+ let s:current_buf = bufname('%')
+ if bufloaded(b:annot_file_path)
+ silent exe 'keepj keepalt' 'buffer' s:Fnameescape(b:annot_file_path)
+ else
+ silent exe 'keepj keepalt' 'view' s:Fnameescape(b:annot_file_path)
+ endif
+ endfun
+
+ " After call:
+ " The original buffer has been restored in the exact same state as before.
+ function! s:Exit_annotation_buffer()
+ silent exe 'keepj keepalt' 'buffer' s:Fnameescape(s:current_buf)
+ let &l:hidden = s:current_hidden
+ call setpos('.',s:current_pos)
+ endfun
+
+ " After call:
+ " The annot file is loaded and assigned to a buffer.
+ " This also handles the modification date of the .annot file, eg. after a
+ " compilation.
+ function! s:Load_annotation()
+ if bufloaded(b:annot_file_path) && b:annot_file_last_mod < getftime(b:annot_file_path)
+ call s:Enter_annotation_buffer()
+ silent exe "bunload"
+ call s:Exit_annotation_buffer()
+ endif
+ if !bufloaded(b:annot_file_path)
+ call s:Enter_annotation_buffer()
+ setlocal nobuflisted
+ setlocal bufhidden=hide
+ setlocal noswapfile
+ setlocal buftype=nowrite
+ call s:Exit_annotation_buffer()
+ let b:annot_file_last_mod = getftime(b:annot_file_path)
+ endif
+ endfun
+
+ "b. 'search' and 'match' work to find the type information
+
+ "In: - lin1,col1: postion of expression first char
+ " - lin2,col2: postion of expression last char
+ "Out: - the pattern to be looked for to find the block
+ " Must be called in the source buffer (use of line2byte)
+ function! s:Block_pattern(lin1,lin2,col1,col2)
+ let start_num1 = a:lin1
+ let start_num2 = line2byte(a:lin1) - 1
+ let start_num3 = start_num2 + a:col1
+ let path = '"\(\\"\|[^"]\)\+"'
+ let start_pos = path.' '.start_num1.' '.start_num2.' '.start_num3
+ let end_num1 = a:lin2
+ let end_num2 = line2byte(a:lin2) - 1
+ let end_num3 = end_num2 + a:col2
+ let end_pos = path.' '.end_num1.' '.end_num2.' '.end_num3
+ return '^'.start_pos.' '.end_pos."$"
+ " rq: the '^' here is not totally correct regarding the annot file "grammar"
+ " but currently the annotation file respects this, and it's a little bit faster with the '^';
+ " can be removed safely.
+ endfun
+
+ "In: (the cursor position should be at the start of an annotation)
+ "Out: the type information
+ " Must be called in the annotation buffer (use of search)
+ function! s:Match_data()
+ " rq: idem as previously, in the following, the '^' at start of patterns is not necessary
+ keepj while search('^type($','ce',line(".")) == 0
+ keepj if search('^.\{-}($','e') == 0
+ throw "no_annotation"
+ endif
+ keepj if searchpair('(','',')') == 0
+ throw "malformed_annot_file"
+ endif
+ endwhile
+ let begin = line(".") + 1
+ keepj if searchpair('(','',')') == 0
+ throw "malformed_annot_file"
+ endif
+ let end = line(".") - 1
+ return join(getline(begin,end),"\n")
+ endfun
+
+ "In: the pattern to look for in order to match the block
+ "Out: the type information (calls s:Match_data)
+ " Should be called in the annotation buffer
+ function! s:Extract_type_data(block_pattern)
+ call s:Enter_annotation_buffer()
+ try
+ if search(a:block_pattern,'e') == 0
+ throw "no_annotation"
+ endif
+ call cursor(line(".") + 1,1)
+ let annotation = s:Match_data()
+ finally
+ call s:Exit_annotation_buffer()
+ endtry
+ return annotation
+ endfun
+
+ "c. link this stuff with what the user wants
+ " ie. get the expression selected/under the cursor
+
+ let s:ocaml_word_char = '\w|[À-ÿ]|'''
+
+ "In: the current mode (eg. "visual", "normal", etc.)
+ "Out: the borders of the expression we are looking for the type
+ function! s:Match_borders(mode)
+ if a:mode == "visual"
+ let cur = getpos(".")
+ normal `<
+ let col1 = col(".")
+ let lin1 = line(".")
+ normal `>
+ let col2 = col(".")
+ let lin2 = line(".")
+ call cursor(cur[1],cur[2])
+ return [lin1,lin2,col1-1,col2]
+ else
+ let cursor_line = line(".")
+ let cursor_col = col(".")
+ let line = getline('.')
+ if line[cursor_col-1:cursor_col] == '[|'
+ let [lin2,col2] = searchpairpos('\[|','','|\]','n')
+ return [cursor_line,lin2,cursor_col-1,col2+1]
+ elseif line[cursor_col-1] == '['
+ let [lin2,col2] = searchpairpos('\[','','\]','n')
+ return [cursor_line,lin2,cursor_col-1,col2]
+ elseif line[cursor_col-1] == '('
+ let [lin2,col2] = searchpairpos('(','',')','n')
+ return [cursor_line,lin2,cursor_col-1,col2]
+ elseif line[cursor_col-1] == '{'
+ let [lin2,col2] = searchpairpos('{','','}','n')
+ return [cursor_line,lin2,cursor_col-1,col2]
+ else
+ let [lin1,col1] = searchpos('\v%('.s:ocaml_word_char.'|\.)*','ncb')
+ let [lin2,col2] = searchpos('\v%('.s:ocaml_word_char.'|\.)*','nce')
+ if col1 == 0 || col2 == 0
+ throw "no_expression"
+ endif
+ return [cursor_line,cursor_line,col1-1,col2]
+ endif
+ endif
+ endfun
+
+ "In: the current mode (eg. "visual", "normal", etc.)
+ "Out: the type information (calls s:Extract_type_data)
+ function! s:Get_type(mode)
+ let [lin1,lin2,col1,col2] = s:Match_borders(a:mode)
+ return s:Extract_type_data(s:Block_pattern(lin1,lin2,col1,col2))
+ endfun
+
+ "d. main
+ "In: the current mode (eg. "visual", "normal", etc.)
+ "After call: the type information is displayed
+ if !exists("*Ocaml_get_type")
+ function Ocaml_get_type(mode)
+ call s:Locate_annotation()
+ call s:Load_annotation()
+ return s:Get_type(a:mode)
+ endfun
+ endif
+
+ if !exists("*Ocaml_get_type_or_not")
+ function Ocaml_get_type_or_not(mode)
+ let t=reltime()
+ try
+ return Ocaml_get_type(a:mode)
+ catch
+ return ""
+ endtry
+ endfun
+ endif
+
+ if !exists("*Ocaml_print_type")
+ function Ocaml_print_type(mode)
+ if expand("%:e") == "mli"
+ echohl ErrorMsg | echo "No annotations for interface (.mli) files" | echohl None
+ return
+ endif
+ try
+ echo Ocaml_get_type(a:mode)
+ catch /E484:/
+ echohl ErrorMsg | echo "No type annotations (.annot) file found" | echohl None
+ catch /no_expression/
+ echohl ErrorMsg | echo "No expression found under the cursor" | echohl None
+ catch /no_annotation/
+ echohl ErrorMsg | echo "No type annotation found for the given text" | echohl None
+ catch /malformed_annot_file/
+ echohl ErrorMsg | echo "Malformed .annot file" | echohl None
+ endtry
+ endfun
+ endif
+
+" Maps
+ map <silent> <LocalLeader>t :call Ocaml_print_type("normal")<CR>
+ vmap <silent> <LocalLeader>t :<C-U>call Ocaml_print_type("visual")<CR>`<
+
+let &cpoptions=s:cposet
+unlet s:cposet
+
+" vim:sw=2 fdm=indent
diff --git a/vim73/ftplugin/occam.vim b/vim73/ftplugin/occam.vim
new file mode 100644
index 0000000..ed2c4f4
--- /dev/null
+++ b/vim73/ftplugin/occam.vim
@@ -0,0 +1,39 @@
+" Vim filetype plugin file
+" Language: occam
+" Copyright: Christian Jacobsen <clj3@kent.ac.uk>, Mario Schweigler <ms44@kent.ac.uk>
+" Maintainer: Mario Schweigler <ms44@kent.ac.uk>
+" Last Change: 23 April 2003
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+"{{{ Indent settings
+" Set shift width for indent
+setlocal shiftwidth=2
+" Set the tab key size to two spaces
+setlocal softtabstop=2
+" Let tab keys always be expanded to spaces
+setlocal expandtab
+"}}}
+
+"{{{ Formatting
+" Break comment lines and insert comment leader in this case
+setlocal formatoptions-=t formatoptions+=cql
+setlocal comments+=:--
+" Maximum length of comments is 78
+setlocal textwidth=78
+"}}}
+
+"{{{ File browsing filters
+" Win32 can filter files in the browse dialog
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "All Occam Files (*.occ *.inc)\t*.occ;*.inc\n" .
+ \ "Occam Include Files (*.inc)\t*.inc\n" .
+ \ "Occam Source Files (*.occ)\t*.occ\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+"}}}
+
diff --git a/vim73/ftplugin/pamconf.vim b/vim73/ftplugin/pamconf.vim
new file mode 100644
index 0000000..96d9646
--- /dev/null
+++ b/vim73/ftplugin/pamconf.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: pam(8) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/pascal.vim b/vim73/ftplugin/pascal.vim
new file mode 100644
index 0000000..3b1db4a
--- /dev/null
+++ b/vim73/ftplugin/pascal.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin file
+" Language: pascal
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+if exists("loaded_matchit")
+ let b:match_words='\<\%(begin\|case\|try\)\>:\<end\>'
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "unlet! b:match_words"
diff --git a/vim73/ftplugin/passwd.vim b/vim73/ftplugin/passwd.vim
new file mode 100644
index 0000000..5088c43
--- /dev/null
+++ b/vim73/ftplugin/passwd.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: passwd(5) password file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/pdf.vim b/vim73/ftplugin/pdf.vim
new file mode 100644
index 0000000..1ed9911
--- /dev/null
+++ b/vim73/ftplugin/pdf.vim
@@ -0,0 +1,89 @@
+" Vim filetype plugin file
+" Language: PDF
+" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
+" Last Change: 2007 Dec 16
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal commentstring=%%s
+setlocal comments=:%
+let b:undo_ftplugin = "setlocal cms< com< | unlet! b:match_words"
+
+if exists("g:loaded_matchit")
+ let b:match_words = '\<\%(\d\+\s\+\d\+\s\+\)obj\>:\<endobj\>,\<stream$:\<endstream\>,\<xref\>:\<trailer\>,<<:>>'
+endif
+
+if exists("g:no_plugin_maps") || exists("g:no_pdf_maps") || v:version < 700
+ finish
+endif
+
+if !exists("b:pdf_tagstack")
+ let b:pdf_tagstack = []
+endif
+
+let b:undo_ftplugin .= " | silent! nunmap <buffer> <C-]> | silent! nunmap <buffer> <C-T>"
+nnoremap <silent><buffer> <C-]> :call <SID>Tag()<CR>
+" Inline, so the error from an empty tag stack will be simple.
+nnoremap <silent><buffer> <C-T> :if len(b:pdf_tagstack) > 0 <Bar> call setpos('.',remove(b:pdf_tagstack, -1)) <Bar> else <Bar> exe "norm! \<Lt>C-T>" <Bar> endif<CR>
+
+function! s:Tag()
+ call add(b:pdf_tagstack,getpos('.'))
+ if getline('.') =~ '^\d\+$' && getline(line('.')-1) == 'startxref'
+ return s:dodigits(getline('.'))
+ elseif getline('.') =~ '/Prev\s\+\d\+\>\%(\s\+\d\)\@!' && expand("<cword>") =~ '^\d\+$'
+ return s:dodigits(expand("<cword>"))
+ elseif getline('.') =~ '^\d\{10\} \d\{5\} '
+ return s:dodigits(matchstr(getline('.'),'^\d\+'))
+ else
+ let line = getline(".")
+ let lastend = 0
+ let pat = '\<\d\+\s\+\d\+\s\+R\>'
+ while lastend >= 0
+ let beg = match(line,'\C'.pat,lastend)
+ let end = matchend(line,'\C'.pat,lastend)
+ if beg < col(".") && end >= col(".")
+ return s:doobject(matchstr(line,'\C'.pat,lastend))
+ endif
+ let lastend = end
+ endwhile
+ return s:notag()
+ endif
+endfunction
+
+function! s:doobject(string)
+ let first = matchstr(a:string,'^\s*\zs\d\+')
+ let second = matchstr(a:string,'^\s*\d\+\s\+\zs\d\+')
+ norm! m'
+ if first != '' && second != ''
+ let oldline = line('.')
+ let oldcol = col('.')
+ 1
+ if !search('^\s*'.first.'\s\+'.second.'\s\+obj\>')
+ exe oldline
+ exe 'norm! '.oldcol.'|'
+ return s:notag()
+ endif
+ endif
+endfunction
+
+function! s:dodigits(digits)
+ let digits = 0 + substitute(a:digits,'^0*','','')
+ norm! m'
+ if digits <= 0
+ norm! 1go
+ else
+ " Go one character before the destination and advance. This method
+ " lands us after a newline rather than before, if that is our target.
+ exe "goto ".(digits)."|norm! 1 "
+ endif
+endfunction
+
+function! s:notag()
+ silent! call remove(b:pdf_tagstack,-1)
+ echohl ErrorMsg
+ echo "E426: tag not found"
+ echohl NONE
+endfunction
diff --git a/vim73/ftplugin/perl.vim b/vim73/ftplugin/perl.vim
new file mode 100644
index 0000000..1d94853
--- /dev/null
+++ b/vim73/ftplugin/perl.vim
@@ -0,0 +1,71 @@
+" Vim filetype plugin file
+" Language: Perl
+" Maintainer: Andy Lester <andy@petdance.com>
+" URL: http://github.com/petdance/vim-perl
+" Last Change: 2009-08-14
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+setlocal formatoptions+=crq
+setlocal keywordprg=perldoc\ -f
+
+setlocal comments=:#
+setlocal commentstring=#%s
+
+" Change the browse dialog on Win32 to show mainly Perl-related files
+if has("gui_win32")
+ let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
+ \ "Perl Modules (*.pm)\t*.pm\n" .
+ \ "Perl Documentation Files (*.pod)\t*.pod\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Provided by Ned Konz <ned at bike-nomad dot com>
+"---------------------------------------------
+setlocal include=\\<\\(use\\\|require\\)\\>
+setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.pm','')
+setlocal define=[^A-Za-z_]
+
+" The following line changes a global variable but is necessary to make
+" gf and similar commands work. The change to iskeyword was incorrect.
+" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
+" problem for you, add an after/ftplugin/perl.vim file that contains
+" set isfname-=:
+set isfname+=:
+"setlocal iskeyword=48-57,_,A-Z,a-z,:
+
+" Set this once, globally.
+if !exists("perlpath")
+ if executable("perl")
+ try
+ if &shellxquote != '"'
+ let perlpath = system('perl -e "print join(q/,/,@INC)"')
+ else
+ let perlpath = system("perl -e 'print join(q/,/,@INC)'")
+ endif
+ let perlpath = substitute(perlpath,',.$',',,','')
+ catch /E145:/
+ let perlpath = ".,,"
+ endtry
+ else
+ " If we can't call perl to get its path, just default to using the
+ " current directory and the directory of the current file.
+ let perlpath = ".,,"
+ endif
+endif
+
+let &l:path=perlpath
+"---------------------------------------------
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" .
+ \ " | unlet! b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/perl6.vim b/vim73/ftplugin/perl6.vim
new file mode 100644
index 0000000..14ab1e9
--- /dev/null
+++ b/vim73/ftplugin/perl6.vim
@@ -0,0 +1,48 @@
+" Vim filetype plugin file
+" Language: Perl 6
+" Maintainer: Andy Lester <andy@petdance.com>
+" URL: http://github.com/petdance/vim-perl/tree/master
+" Last Change: 2010-08-10
+" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
+"
+" Based on ftplugin/perl.vim by Dan Sharp <dwsharp at hotmail dot com>
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+setlocal formatoptions+=crq
+setlocal comments=:#
+setlocal commentstring=#%s
+
+" Change the browse dialog on Win32 to show mainly Perl-related files
+if has("gui_win32")
+ let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
+ \ "Perl Modules (*.pm)\t*.pm\n" .
+ \ "Perl Documentation Files (*.pod)\t*.pod\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Provided by Ned Konz <ned at bike-nomad dot com>
+"---------------------------------------------
+setlocal include=\\<\\(use\\\|require\\)\\>
+setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.pm','')
+setlocal define=[^A-Za-z_]
+
+" The following line changes a global variable but is necessary to make
+" gf and similar commands work. Thanks to Andrew Pimlott for pointing out
+" the problem. If this causes a " problem for you, add an
+" after/ftplugin/perl6.vim file that contains
+" set isfname-=:
+set isfname+=:
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk<" .
+ \ " | unlet! b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/php.vim b/vim73/ftplugin/php.vim
new file mode 100644
index 0000000..f59cf12
--- /dev/null
+++ b/vim73/ftplugin/php.vim
@@ -0,0 +1,82 @@
+" Vim filetype plugin file
+" Language: php
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
+ \ "All Files (*.*)\t*.*\n"
+let s:match_words = ""
+
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+let b:did_ftplugin = 1
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words
+endif
+if exists("b:match_skip")
+ unlet b:match_skip
+endif
+
+" Change the :browse e filter to primarily show PHP-related files.
+if has("gui_win32")
+ let b:browsefilter="PHP Files (*.php)\t*.php\n" . s:browsefilter
+endif
+
+" ###
+" Provided by Mikolaj Machowski <mikmach at wp dot pl>
+setlocal include=\\\(require\\\|include\\\)\\\(_once\\\)\\\?
+" Disabled changing 'iskeyword', it breaks a command such as "*"
+" setlocal iskeyword+=$
+
+if exists("loaded_matchit")
+ let b:match_words = '<?php:?>,\<switch\>:\<endswitch\>,' .
+ \ '\<if\>:\<elseif\>:\<else\>:\<endif\>,' .
+ \ '\<while\>:\<endwhile\>,' .
+ \ '\<do\>:\<while\>,' .
+ \ '\<for\>:\<endfor\>,' .
+ \ '\<foreach\>:\<endforeach\>,' .
+ \ '(:),[:],{:},' .
+ \ s:match_words
+endif
+" ###
+
+if exists('&omnifunc')
+ setlocal omnifunc=phpcomplete#CompletePHP
+endif
+
+" Section jumping: [[ and ]] provided by Antony Scriven <adscriven at gmail dot com>
+let s:function = '\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function'
+let s:class = '\(abstract\s\+\|final\s\+\)*class'
+let s:interface = 'interface'
+let s:section = '\(.*\%#\)\@!\_^\s*\zs\('.s:function.'\|'.s:class.'\|'.s:interface.'\)'
+exe 'nno <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>'
+exe 'nno <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'
+exe 'ono <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>'
+exe 'ono <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'
+
+setlocal commentstring=/*%s*/
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal commentstring< include< omnifunc<" .
+ \ " | unlet! b:browsefilter b:match_words | " .
+ \ s:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/pinfo.vim b/vim73/ftplugin/pinfo.vim
new file mode 100644
index 0000000..6ec1f87
--- /dev/null
+++ b/vim73/ftplugin/pinfo.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: pinfo(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/plaintex.vim b/vim73/ftplugin/plaintex.vim
new file mode 100644
index 0000000..5862d00
--- /dev/null
+++ b/vim73/ftplugin/plaintex.vim
@@ -0,0 +1,36 @@
+" plain TeX filetype plugin
+" Language: plain TeX (ft=plaintex)
+" Maintainer: Benji Fisher, Ph.D. <benji@member.AMS.org>
+" Version: 1.1
+" Last Change: Wed 19 Apr 2006
+
+" Only do this when not done yet for this buffer.
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Start with initex. This will also define b:did_ftplugin and b:undo_ftplugin .
+source $VIMRUNTIME/ftplugin/initex.vim
+
+" Avoid problems if running in 'compatible' mode.
+let s:save_cpo = &cpo
+set cpo&vim
+
+let b:undo_ftplugin .= "| unlet! b:match_ignorecase b:match_skip b:match_words"
+
+" Allow "[d" to be used to find a macro definition:
+let &l:define .= '\|\\new\(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
+ \ . '\|fam\|insert\)'
+
+" The following lines enable the macros/matchit.vim plugin for
+" extended matching with the % key.
+" There is no default meaning for \(...\) etc., but many users define one.
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ \ | let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
+ \ | let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],\\{:\\}'
+endif " exists("loaded_matchit")
+
+let &cpo = s:save_cpo
+
+" vim:sts=2:sw=2:
diff --git a/vim73/ftplugin/postscr.vim b/vim73/ftplugin/postscr.vim
new file mode 100644
index 0000000..56f4e24
--- /dev/null
+++ b/vim73/ftplugin/postscr.vim
@@ -0,0 +1,31 @@
+" Vim filetype plugin file
+" Language: PostScript
+" Maintainer: Mike Williams <mrw@eandem.co.uk>
+" Last Change: 27th June 2002
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" PS comment formatting
+setlocal comments=b:%
+setlocal formatoptions-=t formatoptions+=rol
+
+" Define patterns for the matchit macro
+if !exists("b:match_words")
+ let b:match_ignorecase = 0
+ let b:match_words = '<<:>>,\<begin\>:\<end\>,\<save\>:\<restore\>,\<gsave\>:\<grestore\>'
+endif
+
+set cpo-=C
+
+" Define patterns for the browse file filter
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "PostScript Files (*.ps)\t*.ps\n" .
+ \ "EPS Files (*.eps)\t*.eps\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
diff --git a/vim73/ftplugin/procmail.vim b/vim73/ftplugin/procmail.vim
new file mode 100644
index 0000000..cc2ceed
--- /dev/null
+++ b/vim73/ftplugin/procmail.vim
@@ -0,0 +1,21 @@
+" Vim filetype plugin file
+" Language: procmail(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &l:include = '^\s*INCLUDERC\>'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/prolog.vim b/vim73/ftplugin/prolog.vim
new file mode 100644
index 0000000..caeb574
--- /dev/null
+++ b/vim73/ftplugin/prolog.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: Prolog
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:% commentstring=%\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/protocols.vim b/vim73/ftplugin/protocols.vim
new file mode 100644
index 0000000..2486ff9
--- /dev/null
+++ b/vim73/ftplugin/protocols.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: protocols(5) - Internet protocols definition file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/pyrex.vim b/vim73/ftplugin/pyrex.vim
new file mode 100644
index 0000000..69bd93d
--- /dev/null
+++ b/vim73/ftplugin/pyrex.vim
@@ -0,0 +1,22 @@
+" Vim filetype plugin file
+" Language: Pyrex
+" Maintainer: Marco Barisione <marco.bari@people.it>
+" URL: http://marcobari.altervista.org/pyrex_vim.html
+" Last Change: 2004 May 16
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Behaves just like Python
+runtime! ftplugin/python.vim ftplugin/python_*.vim ftplugin/python/*.vim
+
+if has("gui_win32") && exists("b:browsefilter")
+ let b:browsefilter = "Pyrex files (*.pyx,*.pxd)\t*.pyx;*.pxd\n" .
+ \ "Python Files (*.py)\t*.py\n" .
+ \ "C Source Files (*.c)\t*.c\n" .
+ \ "C Header Files (*.h)\t*.h\n" .
+ \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
diff --git a/vim73/ftplugin/python.vim b/vim73/ftplugin/python.vim
new file mode 100644
index 0000000..0e0bb12
--- /dev/null
+++ b/vim73/ftplugin/python.vim
@@ -0,0 +1,374 @@
+" Vim syntax file
+" Language: Python
+" Maintainer: Dmitry Vasiliev <dima@hlabs.spb.ru>
+" URL: http://www.hlabs.spb.ru/vim/python.vim
+" Last Change: 2010-04-09
+" Filenames: *.py
+" Version: 2.6.6
+"
+" Based on python.vim (from Vim 6.1 distribution)
+" by Neil Schemenauer <nas@python.ca>
+"
+" Thanks:
+"
+" Jeroen Ruigrok van der Werven
+" for the idea to highlight erroneous operators
+" Pedro Algarvio
+" for the patch to enable spell checking only for the right spots
+" (strings and comments)
+" John Eikenberry
+" for the patch fixing small typo
+" Caleb Adamantine
+" for the patch fixing highlighting for decorators
+" Andrea Riciputi
+" for the patch with new configuration options
+
+"
+" Options:
+"
+" For set option do: let OPTION_NAME = 1
+" For clear option do: let OPTION_NAME = 0
+"
+" Option names:
+"
+" For highlight builtin functions and objects:
+" python_highlight_builtins
+"
+" For highlight builtin objects:
+" python_highlight_builtin_objs
+"
+" For highlight builtin funtions:
+" python_highlight_builtin_funcs
+"
+" For highlight standard exceptions:
+" python_highlight_exceptions
+"
+" For highlight string formatting:
+" python_highlight_string_formatting
+"
+" For highlight str.format syntax:
+" python_highlight_string_format
+"
+" For highlight string.Template syntax:
+" python_highlight_string_templates
+"
+" For highlight indentation errors:
+" python_highlight_indent_errors
+"
+" For highlight trailing spaces:
+" python_highlight_space_errors
+"
+" For highlight doc-tests:
+" python_highlight_doctests
+"
+" If you want all Python highlightings above:
+" python_highlight_all
+" (This option not override previously set options)
+"
+" For fast machines:
+" python_slow_sync
+"
+" For "print" builtin as function:
+" python_print_as_function
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+if exists("python_highlight_all") && python_highlight_all != 0
+ " Not override previously set options
+ if !exists("python_highlight_builtins")
+ if !exists("python_highlight_builtin_objs")
+ let python_highlight_builtin_objs = 1
+ endif
+ if !exists("python_highlight_builtin_funcs")
+ let python_highlight_builtin_funcs = 1
+ endif
+ endif
+ if !exists("python_highlight_exceptions")
+ let python_highlight_exceptions = 1
+ endif
+ if !exists("python_highlight_string_formatting")
+ let python_highlight_string_formatting = 1
+ endif
+ if !exists("python_highlight_string_format")
+ let python_highlight_string_format = 1
+ endif
+ if !exists("python_highlight_string_templates")
+ let python_highlight_string_templates = 1
+ endif
+ if !exists("python_highlight_indent_errors")
+ let python_highlight_indent_errors = 1
+ endif
+ if !exists("python_highlight_space_errors")
+ let python_highlight_space_errors = 1
+ endif
+ if !exists("python_highlight_doctests")
+ let python_highlight_doctests = 1
+ endif
+endif
+
+" Keywords
+syn keyword pythonStatement break continue del
+syn keyword pythonStatement exec return
+syn keyword pythonStatement pass raise
+syn keyword pythonStatement global assert
+syn keyword pythonStatement lambda yield
+syn keyword pythonStatement with
+syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
+syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" display contained
+syn keyword pythonRepeat for while
+syn keyword pythonConditional if elif else
+syn keyword pythonPreCondit import from as
+syn keyword pythonException try except finally
+syn keyword pythonOperator and in is not or
+
+if !exists("python_print_as_function") || python_print_as_function == 0
+ syn keyword pythonStatement print
+endif
+
+" Decorators (new in Python 2.4)
+syn match pythonDecorator "@" display nextgroup=pythonDottedName skipwhite
+syn match pythonDottedName "[a-zA-Z_][a-zA-Z0-9_]*\(\.[a-zA-Z_][a-zA-Z0-9_]*\)*" display contained
+syn match pythonDot "\." display containedin=pythonDottedName
+
+" Comments
+syn match pythonComment "#.*$" display contains=pythonTodo,@Spell
+syn match pythonRun "\%^#!.*$"
+syn match pythonCoding "\%^.*\(\n.*\)\?#.*coding[:=]\s*[0-9A-Za-z-_.]\+.*$"
+syn keyword pythonTodo TODO FIXME XXX contained
+
+" Errors
+syn match pythonError "\<\d\+\D\+\>" display
+syn match pythonError "[$?]" display
+syn match pythonError "[&|]\{2,}" display
+syn match pythonError "[=]\{3,}" display
+
+" TODO: Mixing spaces and tabs also may be used for pretty formatting multiline
+" statements. For now I don't know how to work around this.
+if exists("python_highlight_indent_errors") && python_highlight_indent_errors != 0
+ syn match pythonIndentError "^\s*\( \t\|\t \)\s*\S"me=e-1 display
+endif
+
+" Trailing space errors
+if exists("python_highlight_space_errors") && python_highlight_space_errors != 0
+ syn match pythonSpaceError "\s\+$" display
+endif
+
+" Strings
+syn region pythonString start=+[bB]\='+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell
+syn region pythonString start=+[bB]\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell
+syn region pythonString start=+[bB]\="""+ end=+"""+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest2,pythonSpaceError,@Spell
+syn region pythonString start=+[bB]\='''+ end=+'''+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest,pythonSpaceError,@Spell
+
+syn match pythonEscape +\\[abfnrtv'"\\]+ display contained
+syn match pythonEscape "\\\o\o\=\o\=" display contained
+syn match pythonEscapeError "\\\o\{,2}[89]" display contained
+syn match pythonEscape "\\x\x\{2}" display contained
+syn match pythonEscapeError "\\x\x\=\X" display contained
+syn match pythonEscape "\\$"
+
+" Unicode strings
+syn region pythonUniString start=+[uU]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell
+syn region pythonUniString start=+[uU]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell
+syn region pythonUniString start=+[uU]"""+ end=+"""+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
+syn region pythonUniString start=+[uU]'''+ end=+'''+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
+
+syn match pythonUniEscape "\\u\x\{4}" display contained
+syn match pythonUniEscapeError "\\u\x\{,3}\X" display contained
+syn match pythonUniEscape "\\U\x\{8}" display contained
+syn match pythonUniEscapeError "\\U\x\{,7}\X" display contained
+syn match pythonUniEscape "\\N{[A-Z ]\+}" display contained
+syn match pythonUniEscapeError "\\N{[^A-Z ]\+}" display contained
+
+" Raw strings
+syn region pythonRawString start=+[rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
+syn region pythonRawString start=+[rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
+syn region pythonRawString start=+[rR]"""+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
+syn region pythonRawString start=+[rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
+
+syn match pythonRawEscape +\\['"]+ display transparent contained
+
+" Unicode raw strings
+syn region pythonUniRawString start=+[uU][rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell
+syn region pythonUniRawString start=+[uU][rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell
+syn region pythonUniRawString start=+[uU][rR]"""+ end=+"""+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest2,pythonSpaceError,@Spell
+syn region pythonUniRawString start=+[uU][rR]'''+ end=+'''+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest,pythonSpaceError,@Spell
+
+syn match pythonUniRawEscape "\([^\\]\(\\\\\)*\)\@<=\\u\x\{4}" display contained
+syn match pythonUniRawEscapeError "\([^\\]\(\\\\\)*\)\@<=\\u\x\{,3}\X" display contained
+
+if exists("python_highlight_string_formatting") && python_highlight_string_formatting != 0
+ " String formatting
+ syn match pythonStrFormatting "%\(([^)]\+)\)\=[-#0 +]*\d*\(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
+ syn match pythonStrFormatting "%[-#0 +]*\(\*\|\d\+\)\=\(\.\(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
+endif
+
+if exists("python_highlight_string_format") && python_highlight_string_format != 0
+ " str.format syntax
+ syn match pythonStrFormat "{{\|}}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
+ syn match pythonStrFormat "{\([a-zA-Z_][a-zA-Z0-9_]*\|\d\+\)\(\.[a-zA-Z_][a-zA-Z0-9_]*\|\[\(\d\+\|[^!:\}]\+\)\]\)*\(![rs]\)\=\(:\({\([a-zA-Z_][a-zA-Z0-9_]*\|\d\+\)}\|\([^}]\=[<>=^]\)\=[ +-]\=#\=0\=\d*\(\.\d\+\)\=[bcdeEfFgGnoxX%]\=\)\=\)\=}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
+endif
+
+if exists("python_highlight_string_templates") && python_highlight_string_templates != 0
+ " String templates
+ syn match pythonStrTemplate "\$\$" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
+ syn match pythonStrTemplate "\${[a-zA-Z_][a-zA-Z0-9_]*}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
+ syn match pythonStrTemplate "\$[a-zA-Z_][a-zA-Z0-9_]*" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
+endif
+
+if exists("python_highlight_doctests") && python_highlight_doctests != 0
+ " DocTests
+ syn region pythonDocTest start="^\s*>>>" end=+'''+he=s-1 end="^\s*$" contained
+ syn region pythonDocTest2 start="^\s*>>>" end=+"""+he=s-1 end="^\s*$" contained
+endif
+
+" Numbers (ints, longs, floats, complex)
+syn match pythonHexError "\<0[xX]\x*[g-zG-Z]\x*[lL]\=\>" display
+
+syn match pythonHexNumber "\<0[xX]\x\+[lL]\=\>" display
+syn match pythonOctNumber "\<0[oO]\o\+[lL]\=\>" display
+syn match pythonBinNumber "\<0[bB][01]\+[lL]\=\>" display
+
+syn match pythonNumber "\<\d\+[lLjJ]\=\>" display
+
+syn match pythonFloat "\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" display
+syn match pythonFloat "\<\d\+[eE][+-]\=\d\+[jJ]\=\>" display
+syn match pythonFloat "\<\d\+\.\d*\([eE][+-]\=\d\+\)\=[jJ]\=" display
+
+syn match pythonOctError "\<0[oO]\=\o*[8-9]\d*[lL]\=\>" display
+syn match pythonBinError "\<0[bB][01]*[2-9]\d*[lL]\=\>" display
+
+if exists("python_highlight_builtin_objs") && python_highlight_builtin_objs != 0
+ " Builtin objects and types
+ syn keyword pythonBuiltinObj True False Ellipsis None NotImplemented
+ syn keyword pythonBuiltinObj __debug__ __doc__ __file__ __name__ __package__
+endif
+
+if exists("python_highlight_builtin_funcs") && python_highlight_builtin_funcs != 0
+ " Builtin functions
+ syn keyword pythonBuiltinFunc __import__ abs all any apply
+ syn keyword pythonBuiltinFunc basestring bin bool buffer bytearray bytes callable
+ syn keyword pythonBuiltinFunc chr classmethod cmp coerce compile complex
+ syn keyword pythonBuiltinFunc delattr dict dir divmod enumerate eval
+ syn keyword pythonBuiltinFunc execfile file filter float format frozenset getattr
+ syn keyword pythonBuiltinFunc globals hasattr hash help hex id
+ syn keyword pythonBuiltinFunc input int intern isinstance
+ syn keyword pythonBuiltinFunc issubclass iter len list locals long map max
+ syn keyword pythonBuiltinFunc min next object oct open ord
+ syn keyword pythonBuiltinFunc pow property range
+ syn keyword pythonBuiltinFunc raw_input reduce reload repr
+ syn keyword pythonBuiltinFunc reversed round set setattr
+ syn keyword pythonBuiltinFunc slice sorted staticmethod str sum super tuple
+ syn keyword pythonBuiltinFunc type unichr unicode vars xrange zip
+
+ if exists("python_print_as_function") && python_print_as_function != 0
+ syn keyword pythonBuiltinFunc print
+ endif
+endif
+
+if exists("python_highlight_exceptions") && python_highlight_exceptions != 0
+ " Builtin exceptions and warnings
+ syn keyword pythonExClass BaseException
+ syn keyword pythonExClass Exception StandardError ArithmeticError
+ syn keyword pythonExClass LookupError EnvironmentError
+
+ syn keyword pythonExClass AssertionError AttributeError BufferError EOFError
+ syn keyword pythonExClass FloatingPointError GeneratorExit IOError
+ syn keyword pythonExClass ImportError IndexError KeyError
+ syn keyword pythonExClass KeyboardInterrupt MemoryError NameError
+ syn keyword pythonExClass NotImplementedError OSError OverflowError
+ syn keyword pythonExClass ReferenceError RuntimeError StopIteration
+ syn keyword pythonExClass SyntaxError IndentationError TabError
+ syn keyword pythonExClass SystemError SystemExit TypeError
+ syn keyword pythonExClass UnboundLocalError UnicodeError
+ syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError
+ syn keyword pythonExClass UnicodeTranslateError ValueError VMSError
+ syn keyword pythonExClass WindowsError ZeroDivisionError
+
+ syn keyword pythonExClass Warning UserWarning BytesWarning DeprecationWarning
+ syn keyword pythonExClass PendingDepricationWarning SyntaxWarning
+ syn keyword pythonExClass RuntimeWarning FutureWarning
+ syn keyword pythonExClass ImportWarning UnicodeWarning
+endif
+
+if exists("python_slow_sync") && python_slow_sync != 0
+ syn sync minlines=2000
+else
+ " This is fast but code inside triple quoted strings screws it up. It
+ " is impossible to fix because the only way to know if you are inside a
+ " triple quoted string is to start from the beginning of the file.
+ syn sync match pythonSync grouphere NONE "):$"
+ syn sync maxlines=200
+endif
+
+if version >= 508 || !exists("did_python_syn_inits")
+ if version <= 508
+ let did_python_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ HiLink pythonStatement Statement
+ HiLink pythonPreCondit Statement
+ HiLink pythonFunction Function
+ HiLink pythonConditional Conditional
+ HiLink pythonRepeat Repeat
+ HiLink pythonException Exception
+ HiLink pythonOperator Operator
+
+ HiLink pythonDecorator Define
+ HiLink pythonDottedName Function
+ HiLink pythonDot Normal
+
+ HiLink pythonComment Comment
+ HiLink pythonCoding Special
+ HiLink pythonRun Special
+ HiLink pythonTodo Todo
+
+ HiLink pythonError Error
+ HiLink pythonIndentError Error
+ HiLink pythonSpaceError Error
+
+ HiLink pythonString String
+ HiLink pythonUniString String
+ HiLink pythonRawString String
+ HiLink pythonUniRawString String
+
+ HiLink pythonEscape Special
+ HiLink pythonEscapeError Error
+ HiLink pythonUniEscape Special
+ HiLink pythonUniEscapeError Error
+ HiLink pythonUniRawEscape Special
+ HiLink pythonUniRawEscapeError Error
+
+ HiLink pythonStrFormatting Special
+ HiLink pythonStrFormat Special
+ HiLink pythonStrTemplate Special
+
+ HiLink pythonDocTest Special
+ HiLink pythonDocTest2 Special
+
+ HiLink pythonNumber Number
+ HiLink pythonHexNumber Number
+ HiLink pythonOctNumber Number
+ HiLink pythonBinNumber Number
+ HiLink pythonFloat Float
+ HiLink pythonOctError Error
+ HiLink pythonHexError Error
+ HiLink pythonBinError Error
+
+ HiLink pythonBuiltinObj Structure
+ HiLink pythonBuiltinFunc Function
+
+ HiLink pythonExClass Structure
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "python"
diff --git a/vim73/ftplugin/python.vim.gh b/vim73/ftplugin/python.vim.gh
new file mode 100644
index 0000000..e7c6d6b
--- /dev/null
+++ b/vim73/ftplugin/python.vim.gh
@@ -0,0 +1,43 @@
+" Vim filetype plugin file
+" Language: python
+" Maintainer: Johannes Zellner <johannes@zellner.org>
+" Last Change: Wed, 21 Apr 2004 13:13:08 CEST
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+setlocal cinkeys-=0#
+setlocal indentkeys-=0#
+setlocal include=\s*\\(from\\\|import\\)
+setlocal includeexpr=substitute(v:fname,'\\.','/','g')
+setlocal suffixesadd=.py
+setlocal comments-=:%
+setlocal commentstring=#%s
+
+setlocal omnifunc=pythoncomplete#Complete
+
+set wildignore+=*.pyc
+
+nnoremap <silent> <buffer> ]] :call <SID>Python_jump('/^\(class\\|def\)')<cr>
+nnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)')<cr>
+nnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)')<cr>
+nnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)')<cr>
+
+if exists('*<SID>Python_jump') | finish | endif
+
+fun! <SID>Python_jump(motion) range
+ let cnt = v:count1
+ let save = @/ " save last search pattern
+ mark '
+ while cnt > 0
+ silent! exe a:motion
+ let cnt = cnt - 1
+ endwhile
+ call histdel('/', -1)
+ let @/ = save " restore last search pattern
+endfun
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "Python Files (*.py)\t*.py\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
diff --git a/vim73/ftplugin/qf.vim b/vim73/ftplugin/qf.vim
new file mode 100644
index 0000000..f1d0922
--- /dev/null
+++ b/vim73/ftplugin/qf.vim
@@ -0,0 +1,16 @@
+" Vim filetype plugin file
+" Language: Vim's quickfix window
+" Maintainer: Lech Lorens <Lech.Lorens@gmail.com>
+" Last Changed: 22 Jul 2010
+
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl stl<"
+
+" Display the command that produced the list in the quickfix window:
+setlocal stl=%q%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}
diff --git a/vim73/ftplugin/quake.vim b/vim73/ftplugin/quake.vim
new file mode 100644
index 0000000..f62693b
--- /dev/null
+++ b/vim73/ftplugin/quake.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: Quake[1-3] configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:// commentstring=//\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/racc.vim b/vim73/ftplugin/racc.vim
new file mode 100644
index 0000000..7ff22f8
--- /dev/null
+++ b/vim73/ftplugin/racc.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: Racc input file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/readline.vim b/vim73/ftplugin/readline.vim
new file mode 100644
index 0000000..0a4dbb5
--- /dev/null
+++ b/vim73/ftplugin/readline.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: readline(3) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/reva.vim b/vim73/ftplugin/reva.vim
new file mode 100644
index 0000000..05c8bc3
--- /dev/null
+++ b/vim73/ftplugin/reva.vim
@@ -0,0 +1,25 @@
+" Vim ftplugin file
+" Language: Reva Forth
+" Version: 7.1
+" Last Change: 2008/01/11
+" Maintainer: Ron Aaron <ron@ronware.org>
+" URL: http://ronware.org/reva/
+" Filetypes: *.rf *.frt
+" NOTE: Forth allows any non-whitespace in a name, so you need to do:
+" setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
+"
+" This goes with the syntax/reva.vim file.
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+setlocal sts=4 sw=4
+setlocal com=s1:/*,mb:*,ex:*/,:\|,:\\
+setlocal fo=tcrqol
+setlocal matchpairs+=\::;
+setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
diff --git a/vim73/ftplugin/rnc.vim b/vim73/ftplugin/rnc.vim
new file mode 100644
index 0000000..2b8fd50
--- /dev/null
+++ b/vim73/ftplugin/rnc.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: Relax NG compact syntax
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/rpl.vim b/vim73/ftplugin/rpl.vim
new file mode 100644
index 0000000..5ddf2c1
--- /dev/null
+++ b/vim73/ftplugin/rpl.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: RPL/2
+" Maintainer: Joël BERTRAND <rpl2@free.fr>
+" Last Change: 2005 Mar 28
+" Version: 0.1
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" Set 'comments' to format dashed lists in comments.
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
diff --git a/vim73/ftplugin/rst.vim b/vim73/ftplugin/rst.vim
new file mode 100644
index 0000000..b871cf1
--- /dev/null
+++ b/vim73/ftplugin/rst.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: reStructuredText documentation format
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< et< fo<"
+
+setlocal comments=fb:.. commentstring=..\ %s expandtab
+setlocal formatoptions+=tcroql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/ruby.vim b/vim73/ftplugin/ruby.vim
new file mode 100644
index 0000000..6b9363e
--- /dev/null
+++ b/vim73/ftplugin/ruby.vim
@@ -0,0 +1,274 @@
+" Vim filetype plugin
+" Language: Ruby
+" Maintainer: Gavin Sinclair <gsinclair at gmail.com>
+" Last Change: 2010 Mar 15
+" URL: http://vim-ruby.rubyforge.org
+" Anon CVS: See above site
+" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
+" ----------------------------------------------------------------------------
+"
+" Original matchit support thanks to Ned Konz. See his ftplugin/ruby.vim at
+" http://bike-nomad.com/vim/ruby.vim.
+" ----------------------------------------------------------------------------
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+if has("gui_running") && !has("gui_win32")
+ setlocal keywordprg=ri\ -T
+else
+ setlocal keywordprg=ri
+endif
+
+" Matchit support
+if exists("loaded_matchit") && !exists("b:match_words")
+ let b:match_ignorecase = 0
+
+ let b:match_words =
+ \ '\<\%(if\|unless\|case\|while\|until\|for\|do\|class\|module\|def\|begin\)\>=\@!' .
+ \ ':' .
+ \ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' .
+ \ ':' .
+ \ '\<end\>' .
+ \ ',{:},\[:\],(:)'
+
+ let b:match_skip =
+ \ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
+ \ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
+ \ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
+ \ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
+ \ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
+ \ "InstanceVariable\\|GlobalVariable\\|Symbol\\)\\>'"
+endif
+
+setlocal formatoptions-=t formatoptions+=croql
+
+setlocal include=^\\s*\\<\\(load\\\|\w*require\\)\\>
+setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.rb','')
+setlocal suffixesadd=.rb
+
+if exists("&ofu") && has("ruby")
+ setlocal omnifunc=rubycomplete#Complete
+endif
+
+" To activate, :set ballooneval
+if has('balloon_eval') && exists('+balloonexpr')
+ setlocal balloonexpr=RubyBalloonexpr()
+endif
+
+
+" TODO:
+"setlocal define=^\\s*def
+
+setlocal comments=:#
+setlocal commentstring=#\ %s
+
+if !exists("s:ruby_path")
+ if exists("g:ruby_path")
+ let s:ruby_path = g:ruby_path
+ elseif has("ruby") && has("win32")
+ ruby VIM::command( 'let s:ruby_path = "%s"' % ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,}) )
+ let s:ruby_path = '.,' . substitute(s:ruby_path, '\%(^\|,\)\.\%(,\|$\)', ',,', '')
+ elseif executable("ruby")
+ let s:code = "print ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,})"
+ if &shellxquote == "'"
+ let s:ruby_path = system('ruby -e "' . s:code . '"')
+ else
+ let s:ruby_path = system("ruby -e '" . s:code . "'")
+ endif
+ let s:ruby_path = '.,' . substitute(s:ruby_path, '\%(^\|,\)\.\%(,\|$\)', ',,', '')
+ else
+ " If we can't call ruby to get its path, just default to using the
+ " current directory and the directory of the current file.
+ let s:ruby_path = ".,,"
+ endif
+endif
+
+let &l:path = s:ruby_path
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "Ruby Source Files (*.rb)\t*.rb\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+let b:undo_ftplugin = "setl fo< inc< inex< sua< def< com< cms< path< kp<"
+ \."| unlet! b:browsefilter b:match_ignorecase b:match_words b:match_skip"
+ \."| if exists('&ofu') && has('ruby') | setl ofu< | endif"
+ \."| if has('balloon_eval') && exists('+bexpr') | setl bexpr< | endif"
+
+if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
+
+ nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b','n')<CR>
+ nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','','n')<CR>
+ nnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b','n')<CR>
+ nnoremap <silent> <buffer> ]M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','','n')<CR>
+ xnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b','v')<CR>
+ xnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','','v')<CR>
+ xnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b','v')<CR>
+ xnoremap <silent> <buffer> ]M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','','v')<CR>
+
+ nnoremap <silent> <buffer> [[ :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','b','n')<CR>
+ nnoremap <silent> <buffer> ]] :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','','n')<CR>
+ nnoremap <silent> <buffer> [] :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','b','n')<CR>
+ nnoremap <silent> <buffer> ][ :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','','n')<CR>
+ xnoremap <silent> <buffer> [[ :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','b','v')<CR>
+ xnoremap <silent> <buffer> ]] :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','','v')<CR>
+ xnoremap <silent> <buffer> [] :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','b','v')<CR>
+ xnoremap <silent> <buffer> ][ :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','','v')<CR>
+
+ let b:undo_ftplugin = b:undo_ftplugin
+ \."| sil! exe 'unmap <buffer> [[' | sil! exe 'unmap <buffer> ]]' | sil! exe 'unmap <buffer> []' | sil! exe 'unmap <buffer> ]['"
+ \."| sil! exe 'unmap <buffer> [m' | sil! exe 'unmap <buffer> ]m' | sil! exe 'unmap <buffer> [M' | sil! exe 'unmap <buffer> ]M'"
+
+ if maparg("\<C-]>",'n') == ''
+ nnoremap <silent> <buffer> <C-]> :<C-U>exe v:count1."tag <C-R>=RubyCursorIdentifier()<CR>"<CR>
+ nnoremap <silent> <buffer> g<C-]> :<C-U>exe "tjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
+ nnoremap <silent> <buffer> g] :<C-U>exe "tselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
+ nnoremap <silent> <buffer> <C-W>] :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
+ nnoremap <silent> <buffer> <C-W><C-]> :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
+ nnoremap <silent> <buffer> <C-W>g<C-]> :<C-U>exe "stjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
+ nnoremap <silent> <buffer> <C-W>g] :<C-U>exe "stselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
+ nnoremap <silent> <buffer> <C-W>} :<C-U>exe "ptag <C-R>=RubyCursorIdentifier()<CR>"<CR>
+ nnoremap <silent> <buffer> <C-W>g} :<C-U>exe "ptjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
+ let b:undo_ftplugin = b:undo_ftplugin
+ \."| sil! exe 'nunmap <buffer> <C-]>'| sil! exe 'nunmap <buffer> g<C-]>'| sil! exe 'nunmap <buffer> g]'"
+ \."| sil! exe 'nunmap <buffer> <C-W>]'| sil! exe 'nunmap <buffer> <C-W><C-]>'"
+ \."| sil! exe 'nunmap <buffer> <C-W>g<C-]>'| sil! exe 'nunmap <buffer> <C-W>g]'"
+ \."| sil! exe 'nunmap <buffer> <C-W>}'| sil! exe 'nunmap <buffer> <C-W>g}'"
+ endif
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+if exists("g:did_ruby_ftplugin_functions")
+ finish
+endif
+let g:did_ruby_ftplugin_functions = 1
+
+function! RubyBalloonexpr()
+ if !exists('s:ri_found')
+ let s:ri_found = executable('ri')
+ endif
+ if s:ri_found
+ let line = getline(v:beval_lnum)
+ let b = matchstr(strpart(line,0,v:beval_col),'\%(\w\|[:.]\)*$')
+ let a = substitute(matchstr(strpart(line,v:beval_col),'^\w*\%([?!]\|\s*=\)\?'),'\s\+','','g')
+ let str = b.a
+ let before = strpart(line,0,v:beval_col-strlen(b))
+ let after = strpart(line,v:beval_col+strlen(a))
+ if str =~ '^\.'
+ let str = substitute(str,'^\.','#','g')
+ if before =~ '\]\s*$'
+ let str = 'Array'.str
+ elseif before =~ '}\s*$'
+ " False positives from blocks here
+ let str = 'Hash'.str
+ elseif before =~ "[\"'`]\\s*$" || before =~ '\$\d\+\s*$'
+ let str = 'String'.str
+ elseif before =~ '\$\d\+\.\d\+\s*$'
+ let str = 'Float'.str
+ elseif before =~ '\$\d\+\s*$'
+ let str = 'Integer'.str
+ elseif before =~ '/\s*$'
+ let str = 'Regexp'.str
+ else
+ let str = substitute(str,'^#','.','')
+ endif
+ endif
+ let str = substitute(str,'.*\.\s*to_f\s*\.\s*','Float#','')
+ let str = substitute(str,'.*\.\s*to_i\%(nt\)\=\s*\.\s*','Integer#','')
+ let str = substitute(str,'.*\.\s*to_s\%(tr\)\=\s*\.\s*','String#','')
+ let str = substitute(str,'.*\.\s*to_sym\s*\.\s*','Symbol#','')
+ let str = substitute(str,'.*\.\s*to_a\%(ry\)\=\s*\.\s*','Array#','')
+ let str = substitute(str,'.*\.\s*to_proc\s*\.\s*','Proc#','')
+ if str !~ '^\w'
+ return ''
+ endif
+ silent! let res = substitute(system("ri -f simple -T \"".str.'"'),'\n$','','')
+ if res =~ '^Nothing known about' || res =~ '^Bad argument:' || res =~ '^More than one method'
+ return ''
+ endif
+ return res
+ else
+ return ""
+ endif
+endfunction
+
+function! s:searchsyn(pattern,syn,flags,mode)
+ norm! m'
+ if a:mode ==# 'v'
+ norm! gv
+ endif
+ let i = 0
+ let cnt = v:count ? v:count : 1
+ while i < cnt
+ let i = i + 1
+ let line = line('.')
+ let col = col('.')
+ let pos = search(a:pattern,'W'.a:flags)
+ while pos != 0 && s:synname() !~# a:syn
+ let pos = search(a:pattern,'W'.a:flags)
+ endwhile
+ if pos == 0
+ call cursor(line,col)
+ return
+ endif
+ endwhile
+endfunction
+
+function! s:synname()
+ return synIDattr(synID(line('.'),col('.'),0),'name')
+endfunction
+
+function! RubyCursorIdentifier()
+ let asciicode = '\%(\w\|[]})\"'."'".']\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)'
+ let number = '\%(\%(\w\|[]})\"'."'".']\s*\)\@<!-\)\=\%(\<[[:digit:]_]\+\%(\.[[:digit:]_]\+\)\=\%([Ee][[:digit:]_]\+\)\=\>\|\<0[xXbBoOdD][[:xdigit:]_]\+\>\)\|'.asciicode
+ let operator = '\%(\[\]\|<<\|<=>\|[!<>]=\=\|===\=\|[!=]\~\|>>\|\*\*\|\.\.\.\=\|=>\|[~^&|*/%+-]\)'
+ let method = '\%(\<[_a-zA-Z]\w*\>\%([?!]\|\s*=>\@!\)\=\)'
+ let global = '$\%([!$&"'."'".'*+,./:;<=>?@\`~]\|-\=\w\+\>\)'
+ let symbolizable = '\%(\%(@@\=\)\w\+\>\|'.global.'\|'.method.'\|'.operator.'\)'
+ let pattern = '\C\s*\%('.number.'\|\%(:\@<!:\)\='.symbolizable.'\)'
+ let [lnum, col] = searchpos(pattern,'bcn',line('.'))
+ let raw = matchstr(getline('.')[col-1 : ],pattern)
+ let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*:\=','','')
+ return stripped == '' ? expand("<cword>") : stripped
+endfunction
+
+"
+" Instructions for enabling "matchit" support:
+"
+" 1. Look for the latest "matchit" plugin at
+"
+" http://www.vim.org/scripts/script.php?script_id=39
+"
+" It is also packaged with Vim, in the $VIMRUNTIME/macros directory.
+"
+" 2. Copy "matchit.txt" into a "doc" directory (e.g. $HOME/.vim/doc).
+"
+" 3. Copy "matchit.vim" into a "plugin" directory (e.g. $HOME/.vim/plugin).
+"
+" 4. Ensure this file (ftplugin/ruby.vim) is installed.
+"
+" 5. Ensure you have this line in your $HOME/.vimrc:
+" filetype plugin on
+"
+" 6. Restart Vim and create the matchit documentation:
+"
+" :helptags ~/.vim/doc
+"
+" Now you can do ":help matchit", and you should be able to use "%" on Ruby
+" keywords. Try ":echo b:match_words" to be sure.
+"
+" Thanks to Mark J. Reed for the instructions. See ":help vimrc" for the
+" locations of plugin directories, etc., as there are several options, and it
+" differs on Windows. Email gsinclair@soyabean.com.au if you need help.
+"
+
+" vim: nowrap sw=2 sts=2 ts=8:
diff --git a/vim73/ftplugin/sass.vim b/vim73/ftplugin/sass.vim
new file mode 100644
index 0000000..64232a0
--- /dev/null
+++ b/vim73/ftplugin/sass.vim
@@ -0,0 +1,22 @@
+" Vim filetype plugin
+" Language: Sass
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 Jul 26
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"
+
+setlocal commentstring=//\ %s
+setlocal define=^\\s*\\%(@mixin\\\|=\\)
+setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
+setlocal omnifunc=csscomplete#CompleteCSS
+setlocal suffixesadd=.sass,.scss,.css
+
+let &l:include = '^\s*@import\s\+\%(url(\)\=["'']\='
+
+" vim:set sw=2:
diff --git a/vim73/ftplugin/scheme.vim b/vim73/ftplugin/scheme.vim
new file mode 100644
index 0000000..f4cee0c
--- /dev/null
+++ b/vim73/ftplugin/scheme.vim
@@ -0,0 +1,26 @@
+" Vim filetype plugin
+" Language: Scheme
+" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
+" URL: http://iamphet.nm.ru/vim
+" Original author: Dorai Sitaram <ds26@gte.com>
+" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
+" Last Change: Nov 22, 2004
+
+runtime! ftplugin/lisp.vim ftplugin/lisp_*.vim ftplugin/lisp/*.vim
+
+if exists("b:is_mzscheme") || exists("is_mzscheme")
+ " improve indenting
+ setl iskeyword+=#,%,^
+ setl lispwords+=module,parameterize,let-values,let*-values,letrec-values
+ setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
+ setl lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig
+endif
+
+if exists("b:is_chicken") || exists("is_chicken")
+ " improve indenting
+ setl iskeyword+=#,%,^
+ setl lispwords+=let-optionals,let-optionals*,declare
+ setl lispwords+=let-values,let*-values,letrec-values
+ setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
+ setl lispwords+=cond-expand,and-let*,foreign-lambda,foreign-lambda*
+endif
diff --git a/vim73/ftplugin/screen.vim b/vim73/ftplugin/screen.vim
new file mode 100644
index 0000000..95c3849
--- /dev/null
+++ b/vim73/ftplugin/screen.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: screen(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/scss.vim b/vim73/ftplugin/scss.vim
new file mode 100644
index 0000000..981fb1b
--- /dev/null
+++ b/vim73/ftplugin/scss.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin
+" Language: SCSS
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2010 Jul 26
+
+if exists("b:did_ftplugin")
+ finish
+endif
+
+runtime! ftplugin/sass.vim
+
+" vim:set sw=2:
diff --git a/vim73/ftplugin/sensors.vim b/vim73/ftplugin/sensors.vim
new file mode 100644
index 0000000..813d14c
--- /dev/null
+++ b/vim73/ftplugin/sensors.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: sensors.conf(5) - libsensors configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/services.vim b/vim73/ftplugin/services.vim
new file mode 100644
index 0000000..d34349e
--- /dev/null
+++ b/vim73/ftplugin/services.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: services(5) - Internet network services list
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/setserial.vim b/vim73/ftplugin/setserial.vim
new file mode 100644
index 0000000..f9d5945
--- /dev/null
+++ b/vim73/ftplugin/setserial.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: setserial(8) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/sgml.vim b/vim73/ftplugin/sgml.vim
new file mode 100644
index 0000000..a07d31f
--- /dev/null
+++ b/vim73/ftplugin/sgml.vim
@@ -0,0 +1,39 @@
+" Vim filetype plugin file
+" Language: sgml
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "XML Files (*.xml)\t*.xml\n" .
+ \ "All Files (*.*)\t*.*\n"
+
+runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
+let b:did_ftplugin = 1
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+endif
+
+" Change the :browse e filter to primarily show xml-related files.
+if has("gui_win32")
+ let b:browsefilter="SGML Files (*.sgml,*.sgm)\t*.sgm*\n" . s:browsefilter
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/sh.vim b/vim73/ftplugin/sh.vim
new file mode 100644
index 0000000..076b5ef
--- /dev/null
+++ b/vim73/ftplugin/sh.vim
@@ -0,0 +1,38 @@
+" Vim filetype plugin file
+" Language: sh
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+setlocal commentstring=#%s
+
+" Shell: thanks to Johannes Zellner
+if exists("loaded_matchit")
+ let s:sol = '\%(;\s*\|^\s*\)\@<=' " start of line
+ let b:match_words =
+ \ s:sol.'if\>:' . s:sol.'elif\>:' . s:sol.'else\>:' . s:sol. 'fi\>,' .
+ \ s:sol.'\%(for\|while\)\>:' . s:sol. 'done\>,' .
+ \ s:sol.'case\>:' . s:sol. 'esac\>'
+endif
+
+" Change the :browse e filter to primarily show shell-related files.
+if has("gui_win32")
+ let b:browsefilter="Bourne Shell Scripts (*.sh)\t*.sh\n" .
+ \ "Korn Shell Scripts (*.ksh)\t*.ksh\n" .
+ \ "Bash Shell Scripts (*.bash)\t*.bash\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal cms< | unlet! b:browsefilter b:match_words"
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/sieve.vim b/vim73/ftplugin/sieve.vim
new file mode 100644
index 0000000..9a8759c
--- /dev/null
+++ b/vim73/ftplugin/sieve.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: Sieve filtering language input file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/slpconf.vim b/vim73/ftplugin/slpconf.vim
new file mode 100644
index 0000000..0c45689
--- /dev/null
+++ b/vim73/ftplugin/slpconf.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: RFC 2614 - An API for Service Location configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:#,:; commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/slpreg.vim b/vim73/ftplugin/slpreg.vim
new file mode 100644
index 0000000..e9d533e
--- /dev/null
+++ b/vim73/ftplugin/slpreg.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: RFC 2614 - An API for Service Location registration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:#,:; commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/slpspi.vim b/vim73/ftplugin/slpspi.vim
new file mode 100644
index 0000000..8d64d47
--- /dev/null
+++ b/vim73/ftplugin/slpspi.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: RFC 2614 - An API for Service Location SPI file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:#,:; commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/spec.vim b/vim73/ftplugin/spec.vim
new file mode 100644
index 0000000..3b1d70a
--- /dev/null
+++ b/vim73/ftplugin/spec.vim
@@ -0,0 +1,168 @@
+" Plugin to update the %changelog section of RPM spec files
+" Filename: spec.vim
+" Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com>
+" Last Change: Wed, 10 Apr 2002 16:28:52 -0300
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+if !exists("no_plugin_maps") && !exists("no_spec_maps")
+ if !hasmapto("<Plug>SpecChangelog")
+ map <buffer> <LocalLeader>c <Plug>SpecChangelog
+ endif
+endif
+
+noremap <buffer> <unique> <script> <Plug>SpecChangelog :call <SID>SpecChangelog("")<CR>
+
+if !exists("*s:SpecChangelog")
+ function s:SpecChangelog(format)
+ if strlen(a:format) == 0
+ if !exists("g:spec_chglog_format")
+ let email = input("Email address: ")
+ let g:spec_chglog_format = "%a %b %d %Y " . l:email
+ echo "\r"
+ endif
+ let format = g:spec_chglog_format
+ else
+ if !exists("g:spec_chglog_format")
+ let g:spec_chglog_format = a:format
+ endif
+ let format = a:format
+ endif
+ let line = 0
+ let name = ""
+ let ver = ""
+ let rel = ""
+ let nameline = -1
+ let verline = -1
+ let relline = -1
+ let chgline = -1
+ while (line <= line("$"))
+ let linestr = getline(line)
+ if (name == "" && linestr =~? '^Name:')
+ let nameline = line
+ let name = substitute(strpart(linestr,5), '^[ ]*\([^ ]\+\)[ ]*$','\1','')
+ elseif (ver == "" && linestr =~? '^Version:')
+ let verline = line
+ let ver = substitute(strpart(linestr,8), '^[ ]*\([^ ]\+\)[ ]*$','\1','')
+ elseif (rel == "" && linestr =~? '^Release:')
+ let relline = line
+ let rel = substitute(strpart(linestr,8), '^[ ]*\([^ ]\+\)[ ]*$','\1','')
+ elseif (linestr =~? '^%changelog')
+ let chgline = line
+ execute line
+ break
+ endif
+ let line = line+1
+ endwhile
+ if (nameline != -1 && verline != -1 && relline != -1)
+ let include_release_info = exists("g:spec_chglog_release_info")
+ let name = s:ParseRpmVars(name, nameline)
+ let ver = s:ParseRpmVars(ver, verline)
+ let rel = s:ParseRpmVars(rel, relline)
+ else
+ let include_release_info = 0
+ endif
+ if (chgline == -1)
+ let option = confirm("Can't find %changelog. Create one? ","&End of file\n&Here\n&Cancel",3)
+ if (option == 1)
+ call append(line("$"),"")
+ call append(line("$"),"%changelog")
+ execute line("$")
+ let chgline = line(".")
+ elseif (option == 2)
+ call append(line("."),"%changelog")
+ normal j
+ chgline = line(".")
+ endif
+ endif
+ if (chgline != -1)
+ let parsed_format = "* ".strftime(format)
+ let release_info = "+ ".name."-".ver."-".rel
+ let wrong_format = 0
+ let wrong_release = 0
+ let insert_line = 0
+ if (getline(chgline+1) != parsed_format)
+ let wrong_format = 1
+ endif
+ if (include_release_info && getline(chgline+2) != release_info)
+ let wrong_release = 1
+ endif
+ if (wrong_format || wrong_release)
+ if (include_release_info && !wrong_release && !exists("g:spec_chglog_never_increase_release"))
+ let option = confirm("Increase release? ","&Yes\n&No",1)
+ if (option == 1)
+ execute relline
+ normal 
+ let rel = substitute(strpart(getline(relline),8), '^[ ]*\([^ ]\+\)[ ]*$','\1','')
+ let release_info = "+ ".name."-".ver."-".rel
+ endif
+ endif
+ let n = 0
+ call append(chgline+n, parsed_format)
+ if include_release_info
+ let n = n + 1
+ call append(chgline+n, release_info)
+ endif
+ let n = n + 1
+ call append(chgline+n,"- ")
+ let n = n + 1
+ call append(chgline+n,"")
+ let insert_line = chgline+n
+ else
+ let line = chgline
+ if !exists("g:spec_chglog_prepend")
+ while !(getline(line+2) =~ '^\( *\|\*.*\)$')
+ let line = line+1
+ endwhile
+ endif
+ call append(line+1,"- ")
+ let insert_line = line+2
+ endif
+ execute insert_line
+ startinsert!
+ endif
+ endfunction
+endif
+
+if !exists("*s:ParseRpmVars")
+ function s:ParseRpmVars(str, strline)
+ let end = -1
+ let ret = ""
+ while (1)
+ let start = match(a:str, "\%{", end+1)
+ if (start == -1)
+ let ret = ret . strpart(a:str, end+1)
+ break
+ endif
+ let ret = ret . strpart(a:str, end+1, start-(end+1))
+ let end = match(a:str, "}", start)
+ if (end == -1)
+ let ret = ret . strpart(a:str, start)
+ break
+ endif
+ let varname = strpart(a:str, start+2, end-(start+2))
+ execute a:strline
+ let definestr = "^[ \t]*%define[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
+ let linenum = search(definestr, "bW")
+ if (linenum != -1)
+ let ret = ret . substitute(getline(linenum), definestr, "\\1", "")
+ else
+ let ret = ret . strpart(str, start, end+1-start)
+ endif
+ endwhile
+ return ret
+ endfunction
+endif
+
+" The following lines, along with the macros/matchit.vim plugin,
+" make it easy to navigate the different sections of a spec file
+" with the % key (thanks to Max Ischenko).
+
+let b:match_ignorecase = 0
+let b:match_words =
+ \ '^Name:^%description:^%clean:^%setup:^%build:^%install:^%files:' .
+ \ '^%package:^%preun:^%postun:^%changelog'
+
diff --git a/vim73/ftplugin/sql.vim b/vim73/ftplugin/sql.vim
new file mode 100644
index 0000000..cbc8dcc
--- /dev/null
+++ b/vim73/ftplugin/sql.vim
@@ -0,0 +1,493 @@
+" SQL filetype plugin file
+" Language: SQL (Common for Oracle, Microsoft SQL Server, Sybase)
+" Version: 7.0
+" Maintainer: David Fishburn <fishburn at ianywhere dot com>
+" Last Change: 2010 Jun 11
+" Download: http://vim.sourceforge.net/script.php?script_id=454
+
+" For more details please use:
+" :h sql.txt
+"
+" This file should only contain values that are common to all SQL languages
+" Oracle, Microsoft SQL Server, Sybase ASA/ASE, MySQL, and so on
+" If additional features are required create:
+" vimfiles/after/ftplugin/sql.vim (Windows)
+" .vim/after/ftplugin/sql.vim (Unix)
+" to override and add any of your own settings.
+
+
+" This file also creates a command, SQLSetType, which allows you to change
+" SQL dialects on the fly. For example, if I open an Oracle SQL file, it
+" is color highlighted appropriately. If I open an Informix SQL file, it
+" will still be highlighted according to Oracles settings. By running:
+" :SQLSetType sqlinformix
+"
+" All files called sqlinformix.vim will be loaded from the indent and syntax
+" directories. This allows you to easily flip SQL dialects on a per file
+" basis. NOTE: you can also use completion:
+" :SQLSetType <tab>
+"
+" To change the default dialect, add the following to your vimrc:
+" let g:sql_type_default = 'sqlanywhere'
+"
+" This file also creates a command, SQLGetType, which allows you to
+" determine what the current dialect is in use.
+" :SQLGetType
+"
+" History
+"
+" Version 7.0
+"
+" NF: Calls the sqlcomplete#ResetCacheSyntax() function when calling
+" SQLSetType.
+"
+" Version 6.0
+"
+" NF: Adds the command SQLGetType
+"
+" Version 5.0
+"
+" NF: Adds the ability to choose the keys to control SQL completion, just add
+" the following to your .vimrc:
+" let g:ftplugin_sql_omni_key = '<C-C>'
+" let g:ftplugin_sql_omni_key_right = '<Right>'
+" let g:ftplugin_sql_omni_key_left = '<Left>'
+"
+" BF: format-options - Auto-wrap comments using textwidth was turned off
+" by mistake.
+
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+let s:save_cpo = &cpo
+set cpo=
+
+" Disable autowrapping for code, but enable for comments
+" t Auto-wrap text using textwidth
+" c Auto-wrap comments using textwidth, inserting the current comment
+" leader automatically.
+setlocal formatoptions-=t
+setlocal formatoptions+=c
+
+" Functions/Commands to allow the user to change SQL syntax dialects
+" through the use of :SQLSetType <tab> for completion.
+" This works with both Vim 6 and 7.
+
+if !exists("*SQL_SetType")
+ " NOTE: You cannot use function! since this file can be
+ " sourced from within this function. That will result in
+ " an error reported by Vim.
+ function SQL_GetList(ArgLead, CmdLine, CursorPos)
+
+ if !exists('s:sql_list')
+ " Grab a list of files that contain "sql" in their names
+ let list_indent = globpath(&runtimepath, 'indent/*sql*')
+ let list_syntax = globpath(&runtimepath, 'syntax/*sql*')
+ let list_ftplugin = globpath(&runtimepath, 'ftplugin/*sql*')
+
+ let sqls = "\n".list_indent."\n".list_syntax."\n".list_ftplugin."\n"
+
+ " Strip out everything (path info) but the filename
+ " Regex
+ " From between two newline characters
+ " Non-greedily grab all characters
+ " Followed by a valid filename \w\+\.\w\+ (sql.vim)
+ " Followed by a newline, but do not include the newline
+ "
+ " Replace it with just the filename (get rid of PATH)
+ "
+ " Recursively, since there are many filenames that contain
+ " the word SQL in the indent, syntax and ftplugin directory
+ let sqls = substitute( sqls,
+ \ '[\n]\%(.\{-}\)\(\w\+\.\w\+\)\n\@=',
+ \ '\1\n',
+ \ 'g'
+ \ )
+
+ " Remove duplicates, since sqlanywhere.vim can exist in the
+ " sytax, indent and ftplugin directory, yet we only want
+ " to display the option once
+ let index = match(sqls, '.\{-}\ze\n')
+ while index > -1
+ " Get the first filename
+ let file = matchstr(sqls, '.\{-}\ze\n', index)
+ " Recursively replace any *other* occurrence of that
+ " filename with nothing (ie remove it)
+ let sqls = substitute(sqls, '\%>'.(index+strlen(file)).'c\<'.file.'\>\n', '', 'g')
+ " Move on to the next filename
+ let index = match(sqls, '.\{-}\ze\n', (index+strlen(file)+1))
+ endwhile
+
+ " Sort the list if using version 7
+ if v:version >= 700
+ let mylist = split(sqls, "\n")
+ let mylist = sort(mylist)
+ let sqls = join(mylist, "\n")
+ endif
+
+ let s:sql_list = sqls
+ endif
+
+ return s:sql_list
+
+ endfunction
+
+ function SQL_SetType(name)
+
+ " User has decided to override default SQL scripts and
+ " specify a vendor specific version
+ " (ie Oracle, Informix, SQL Anywhere, ...)
+ " So check for an remove any settings that prevent the
+ " scripts from being executed, and then source the
+ " appropriate Vim scripts.
+ if exists("b:did_ftplugin")
+ unlet b:did_ftplugin
+ endif
+ if exists("b:current_syntax")
+ " echomsg 'SQLSetType - clearing syntax'
+ syntax clear
+ endif
+ if exists("b:did_indent")
+ " echomsg 'SQLSetType - clearing indent'
+ unlet b:did_indent
+ " Set these values to their defaults
+ setlocal indentkeys&
+ setlocal indentexpr&
+ endif
+
+ " Ensure the name is in the correct format
+ let new_sql_type = substitute(a:name,
+ \ '\s*\([^\.]\+\)\(\.\w\+\)\?', '\L\1', '')
+
+ " Do not specify a buffer local variable if it is
+ " the default value
+ if new_sql_type == 'sql'
+ let new_sql_type = 'sqloracle'
+ endif
+ let b:sql_type_override = new_sql_type
+
+ " Remove any cached SQL since a new sytax will have different
+ " items and groups
+ if !exists('g:loaded_sql_completion') || 100 == g:loaded_sql_completion
+ call sqlcomplete#ResetCacheSyntax()
+ endif
+
+ " Vim will automatically source the correct files if we
+ " change the filetype. You cannot do this with setfiletype
+ " since that command will only execute if a filetype has
+ " not already been set. In this case we want to override
+ " the existing filetype.
+ let &filetype = 'sql'
+
+ if b:sql_compl_savefunc != ""
+ " We are changing the filetype to SQL from some other filetype
+ " which had OMNI completion defined. We need to activate the
+ " SQL completion plugin in order to cache some of the syntax items
+ " while the syntax rules for SQL are active.
+ call sqlcomplete#PreCacheSyntax()
+ endif
+ endfunction
+ command! -nargs=* -complete=custom,SQL_GetList SQLSetType :call SQL_SetType(<q-args>)
+
+endif
+
+" Functions/Commands to allow the user determine current SQL syntax dialect
+" This works with both Vim 6 and 7.
+
+if !exists("*SQL_GetType")
+ function SQL_GetType()
+ if exists('b:sql_type_override')
+ echomsg "Current SQL dialect in use:".b:sql_type_override
+ else
+ echomsg "Current SQL dialect in use:".g:sql_type_default
+ endif
+ endfunction
+ command! -nargs=0 SQLGetType :call SQL_GetType()
+endif
+
+if exists("b:sql_type_override")
+ " echo 'sourcing buffer ftplugin/'.b:sql_type_override.'.vim'
+ if globpath(&runtimepath, 'ftplugin/'.b:sql_type_override.'.vim') != ''
+ exec 'runtime ftplugin/'.b:sql_type_override.'.vim'
+ " else
+ " echomsg 'ftplugin/'.b:sql_type_override.' not exist, using default'
+ endif
+elseif exists("g:sql_type_default")
+ " echo 'sourcing global ftplugin/'.g:sql_type_default.'.vim'
+ if globpath(&runtimepath, 'ftplugin/'.g:sql_type_default.'.vim') != ''
+ exec 'runtime ftplugin/'.g:sql_type_default.'.vim'
+ " else
+ " echomsg 'ftplugin/'.g:sql_type_default.'.vim not exist, using default'
+ endif
+endif
+
+" If the above runtime command succeeded, do not load the default settings
+if exists("b:did_ftplugin")
+ finish
+endif
+
+let b:undo_ftplugin = "setl comments<"
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+let b:current_ftplugin = 'sql'
+
+" Win32 can filter files in the browse dialog
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "SQL Files (*.sql)\t*.sql\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Some standard expressions for use with the matchit strings
+let s:notend = '\%(\<end\s\+\)\@<!'
+let s:when_no_matched_or_others = '\%(\<when\>\%(\s\+\%(\%(\<not\>\s\+\)\?<matched\>\)\|\<others\>\)\@!\)'
+let s:or_replace = '\%(or\s\+replace\s\+\)\?'
+
+" Define patterns for the matchit macro
+if !exists("b:match_words")
+ " SQL is generally case insensitive
+ let b:match_ignorecase = 1
+
+ " Handle the following:
+ " if
+ " elseif | elsif
+ " else [if]
+ " end if
+ "
+ " [while condition] loop
+ " leave
+ " break
+ " continue
+ " exit
+ " end loop
+ "
+ " for
+ " leave
+ " break
+ " continue
+ " exit
+ " end loop
+ "
+ " do
+ " statements
+ " doend
+ "
+ " case
+ " when
+ " when
+ " default
+ " end case
+ "
+ " merge
+ " when not matched
+ " when matched
+ "
+ " EXCEPTION
+ " WHEN column_not_found THEN
+ " WHEN OTHERS THEN
+ "
+ " create[ or replace] procedure|function|event
+
+ let b:match_words =
+ \ '\<begin\>:\<end\>\W*$,'.
+ \
+ \ s:notend . '\<if\>:'.
+ \ '\<elsif\>\|\<elseif\>\|\<else\>:'.
+ \ '\<end\s\+if\>,'.
+ \
+ \ '\<do\>\|'.
+ \ '\<while\>\|'.
+ \ '\%(' . s:notend . '\<loop\>\)\|'.
+ \ '\%(' . s:notend . '\<for\>\):'.
+ \ '\<exit\>\|\<leave\>\|\<break\>\|\<continue\>:'.
+ \ '\%(\<end\s\+\%(for\|loop\>\)\)\|\<doend\>,'.
+ \
+ \ '\%('. s:notend . '\<case\>\):'.
+ \ '\%('.s:when_no_matched_or_others.'\):'.
+ \ '\%(\<when\s\+others\>\|\<end\s\+case\>\),' .
+ \
+ \ '\<merge\>:' .
+ \ '\<when\s\+not\s\+matched\>:' .
+ \ '\<when\s\+matched\>,' .
+ \
+ \ '\%(\<create\s\+' . s:or_replace . '\)\?'.
+ \ '\%(function\|procedure\|event\):'.
+ \ '\<returns\?\>'
+ " \ '\<begin\>\|\<returns\?\>:'.
+ " \ '\<end\>\(;\)\?\s*$'
+ " \ '\<exception\>:'.s:when_no_matched_or_others.
+ " \ ':\<when\s\+others\>,'.
+ "
+ " \ '\%(\<exception\>\|\%('. s:notend . '\<case\>\)\):'.
+ " \ '\%(\<default\>\|'.s:when_no_matched_or_others.'\):'.
+ " \ '\%(\%(\<when\s\+others\>\)\|\<end\s\+case\>\),' .
+endif
+
+" Define how to find the macro definition of a variable using the various
+" [d, [D, [_CTRL_D and so on features
+" Match these values ignoring case
+" ie DECLARE varname INTEGER
+let &l:define = '\c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\>'
+
+
+" Mappings to move to the next BEGIN ... END block
+" \W - no characters or digits
+nmap <buffer> <silent> ]] :call search('\\c^\\s*begin\\>', 'W' )<CR>
+nmap <buffer> <silent> [[ :call search('\\c^\\s*begin\\>', 'bW' )<CR>
+nmap <buffer> <silent> ][ :call search('\\c^\\s*end\\W*$', 'W' )<CR>
+nmap <buffer> <silent> [] :call search('\\c^\\s*end\\W*$', 'bW' )<CR>
+vmap <buffer> <silent> ]] :<C-U>exec "normal! gv"<Bar>call search('\\c^\\s*begin\\>', 'W' )<CR>
+vmap <buffer> <silent> [[ :<C-U>exec "normal! gv"<Bar>call search('\\c^\\s*begin\\>', 'bW' )<CR>
+vmap <buffer> <silent> ][ :<C-U>exec "normal! gv"<Bar>call search('\\c^\\s*end\\W*$', 'W' )<CR>
+vmap <buffer> <silent> [] :<C-U>exec "normal! gv"<Bar>call search('\\c^\\s*end\\W*$', 'bW' )<CR>
+
+
+" By default only look for CREATE statements, but allow
+" the user to override
+if !exists('g:ftplugin_sql_statements')
+ let g:ftplugin_sql_statements = 'create'
+endif
+
+" Predefined SQL objects what are used by the below mappings using
+" the ]} style maps.
+" This global variable allows the users to override it's value
+" from within their vimrc.
+" Note, you cannot use \?, since these patterns can be used to search
+" backwards, you must use \{,1}
+if !exists('g:ftplugin_sql_objects')
+ let g:ftplugin_sql_objects = 'function,procedure,event,' .
+ \ '\\(existing\\\\|global\\s\\+temporary\\s\\+\\)\\\{,1}' .
+ \ 'table,trigger' .
+ \ ',schema,service,publication,database,datatype,domain' .
+ \ ',index,subscription,synchronization,view,variable'
+endif
+
+" Key to trigger SQL completion
+if !exists('g:ftplugin_sql_omni_key')
+ let g:ftplugin_sql_omni_key = '<C-C>'
+endif
+" Key to trigger drill into column list
+if !exists('g:ftplugin_sql_omni_key_right')
+ let g:ftplugin_sql_omni_key_right = '<Right>'
+endif
+" Key to trigger drill out of column list
+if !exists('g:ftplugin_sql_omni_key_left')
+ let g:ftplugin_sql_omni_key_left = '<Left>'
+endif
+
+" Replace all ,'s with bars, except ones with numbers after them.
+" This will most likely be a \{,1} string.
+let s:ftplugin_sql_objects =
+ \ '\\c^\\s*' .
+ \ '\\(\\(' .
+ \ substitute(g:ftplugin_sql_statements, ',\d\@!', '\\\\\\|', 'g') .
+ \ '\\)\\s\\+\\(or\\s\\+replace\\\s\+\\)\\{,1}\\)\\{,1}' .
+ \ '\\<\\(' .
+ \ substitute(g:ftplugin_sql_objects, ',\d\@!', '\\\\\\|', 'g') .
+ \ '\\)\\>'
+
+" Mappings to move to the next CREATE ... block
+exec "nmap <buffer> <silent> ]} :call search('".s:ftplugin_sql_objects."', 'W')<CR>"
+exec "nmap <buffer> <silent> [{ :call search('".s:ftplugin_sql_objects."', 'bW')<CR>"
+" Could not figure out how to use a :call search() string in visual mode
+" without it ending visual mode
+" Unfortunately, this will add a entry to the search history
+exec 'vmap <buffer> <silent> ]} /'.s:ftplugin_sql_objects.'<CR>'
+exec 'vmap <buffer> <silent> [{ ?'.s:ftplugin_sql_objects.'<CR>'
+
+" Mappings to move to the next COMMENT
+"
+" Had to double the \ for the \| separator since this has a special
+" meaning on maps
+let b:comment_leader = '\\(--\\\|\\/\\/\\\|\\*\\\|\\/\\*\\\|\\*\\/\\)'
+" Find the start of the next comment
+let b:comment_start = '^\\(\\s*'.b:comment_leader.'.*\\n\\)\\@<!'.
+ \ '\\(\\s*'.b:comment_leader.'\\)'
+" Find the end of the previous comment
+let b:comment_end = '\\(^\\s*'.b:comment_leader.'.*\\n\\)'.
+ \ '\\(^\\s*'.b:comment_leader.'\\)\\@!'
+" Skip over the comment
+let b:comment_jump_over = "call search('".
+ \ '^\\(\\s*'.b:comment_leader.'.*\\n\\)\\@<!'.
+ \ "', 'W')"
+let b:comment_skip_back = "call search('".
+ \ '^\\(\\s*'.b:comment_leader.'.*\\n\\)\\@<!'.
+ \ "', 'bW')"
+" Move to the start and end of comments
+exec 'nnoremap <silent><buffer> ]" :call search('."'".b:comment_start."'".', "W" )<CR>'
+exec 'nnoremap <silent><buffer> [" :call search('."'".b:comment_end."'".', "W" )<CR>'
+exec 'vnoremap <silent><buffer> ]" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_start."'".', "W" )<CR>'
+exec 'vnoremap <silent><buffer> [" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_end."'".', "W" )<CR>'
+
+" Comments can be of the form:
+" /*
+" *
+" */
+" or
+" --
+" or
+" //
+setlocal comments=s1:/*,mb:*,ex:*/,:--,://
+
+" Set completion with CTRL-X CTRL-O to autoloaded function.
+if exists('&omnifunc')
+ " Since the SQL completion plugin can be used in conjunction
+ " with other completion filetypes it must record the previous
+ " OMNI function prior to setting up the SQL OMNI function
+ let b:sql_compl_savefunc = &omnifunc
+
+ " This is used by the sqlcomplete.vim plugin
+ " Source it for it's global functions
+ runtime autoload/syntaxcomplete.vim
+
+ setlocal omnifunc=sqlcomplete#Complete
+ " Prevent the intellisense plugin from loading
+ let b:sql_vis = 1
+ if !exists('g:omni_sql_no_default_maps')
+ " Static maps which use populate the completion list
+ " using Vim's syntax highlighting rules
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'a <C-\><C-O>:call sqlcomplete#Map("syntax")<CR><C-X><C-O>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'k <C-\><C-O>:call sqlcomplete#Map("sqlKeyword")<CR><C-X><C-O>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'f <C-\><C-O>:call sqlcomplete#Map("sqlFunction")<CR><C-X><C-O>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'o <C-\><C-O>:call sqlcomplete#Map("sqlOption")<CR><C-X><C-O>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'T <C-\><C-O>:call sqlcomplete#Map("sqlType")<CR><C-X><C-O>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'s <C-\><C-O>:call sqlcomplete#Map("sqlStatement")<CR><C-X><C-O>'
+ " Dynamic maps which use populate the completion list
+ " using the dbext.vim plugin
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'t <C-\><C-O>:call sqlcomplete#Map("table")<CR><C-X><C-O>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'p <C-\><C-O>:call sqlcomplete#Map("procedure")<CR><C-X><C-O>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'v <C-\><C-O>:call sqlcomplete#Map("view")<CR><C-X><C-O>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'c <C-\><C-O>:call sqlcomplete#Map("column")<CR><C-X><C-O>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'l <C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
+ " The next 3 maps are only to be used while the completion window is
+ " active due to the <CR> at the beginning of the map
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'L <C-Y><C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
+ " <C-Right> is not recognized on most Unix systems, so only create
+ " these additional maps on the Windows platform.
+ " If you would like to use these maps, choose a different key and make
+ " the same map in your vimrc.
+ " if has('win32')
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key_right.' <C-R>=sqlcomplete#DrillIntoTable()<CR>'
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key_left.' <C-R>=sqlcomplete#DrillOutOfColumns()<CR>'
+ " endif
+ " Remove any cached items useful for schema changes
+ exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'R <C-\><C-O>:call sqlcomplete#Map("resetCache")<CR><C-X><C-O>'
+ endif
+
+ if b:sql_compl_savefunc != ""
+ " We are changing the filetype to SQL from some other filetype
+ " which had OMNI completion defined. We need to activate the
+ " SQL completion plugin in order to cache some of the syntax items
+ " while the syntax rules for SQL are active.
+ call sqlcomplete#ResetCacheSyntax()
+ call sqlcomplete#PreCacheSyntax()
+ endif
+endif
+
+let &cpo = s:save_cpo
+
+" vim:sw=4:
+
diff --git a/vim73/ftplugin/sshconfig.vim b/vim73/ftplugin/sshconfig.vim
new file mode 100644
index 0000000..f940af9
--- /dev/null
+++ b/vim73/ftplugin/sshconfig.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: OpenSSH client configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/sudoers.vim b/vim73/ftplugin/sudoers.vim
new file mode 100644
index 0000000..5756302
--- /dev/null
+++ b/vim73/ftplugin/sudoers.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: sudoers(5) configuration files
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/svg.vim b/vim73/ftplugin/svg.vim
new file mode 100644
index 0000000..f8a0d62
--- /dev/null
+++ b/vim73/ftplugin/svg.vim
@@ -0,0 +1,39 @@
+" Vim filetype plugin file
+" Language: svg
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "XML Files (*.xml)\t*.xml\n" .
+ \ "All Files (*.*)\t*.*\n"
+
+runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
+let b:did_ftplugin = 1
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+endif
+
+" Change the :browse e filter to primarily show xml-related files.
+if has("gui_win32")
+ let b:browsefilter="SVG Files (*.svg)\t*.svg\n" . s:browsefilter
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/sysctl.vim b/vim73/ftplugin/sysctl.vim
new file mode 100644
index 0000000..fb1098d
--- /dev/null
+++ b/vim73/ftplugin/sysctl.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: sysctl.conf(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:;,:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/tcl.vim b/vim73/ftplugin/tcl.vim
new file mode 100644
index 0000000..c5bc303
--- /dev/null
+++ b/vim73/ftplugin/tcl.vim
@@ -0,0 +1,36 @@
+" Vim filetype plugin file
+" Language: Tcl
+" Maintainer: Robert L Hicks <sigzero@gmail.com>
+" Latest Revision: 2009-05-01
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:cpo_save = &cpo
+set cpo-=C
+
+setlocal comments=:#
+setlocal commentstring=#%s
+setlocal formatoptions+=croql
+
+" Change the browse dialog on Windows to show mainly Tcl-related files
+if has("gui_win32")
+ let b:browsefilter = "Tcl Source Files (.tcl)\t*.tcl\n" .
+ \ "Tcl Test Files (.test)\t*.test\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+"-----------------------------------------------------------------------------
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" .
+ \ " | unlet! b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:cpo_save
+
+" vim: set et ts=4 sw=4 tw=78:
diff --git a/vim73/ftplugin/tcsh.vim b/vim73/ftplugin/tcsh.vim
new file mode 100644
index 0000000..dacb44e
--- /dev/null
+++ b/vim73/ftplugin/tcsh.vim
@@ -0,0 +1,39 @@
+" Vim filetype plugin file
+" Language: tcsh
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "csh Files (*.csh)\t*.csh\n" .
+ \ "All Files (*.*)\t*.*\n"
+
+runtime! ftplugin/csh.vim ftplugin/csh_*.vim ftplugin/csh/*.vim
+let b:did_ftplugin = 1
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+endif
+
+" Change the :browse e filter to primarily show tcsh-related files.
+if has("gui_win32")
+ let b:browsefilter="tcsh Scripts (*.tcsh)\t*.tcsh\n" . s:browsefilter
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/terminfo.vim b/vim73/ftplugin/terminfo.vim
new file mode 100644
index 0000000..7ce31d1
--- /dev/null
+++ b/vim73/ftplugin/terminfo.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: terminfo(5) definition
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/tex.vim b/vim73/ftplugin/tex.vim
new file mode 100644
index 0000000..4089927
--- /dev/null
+++ b/vim73/ftplugin/tex.vim
@@ -0,0 +1,45 @@
+" LaTeX filetype plugin
+" Language: LaTeX (ft=tex)
+" Maintainer: Benji Fisher, Ph.D. <benji@member.AMS.org>
+" Version: 1.4
+" Last Change: Wed 19 Apr 2006
+" URL: http://www.vim.org/script.php?script_id=411
+
+" Only do this when not done yet for this buffer.
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Start with plain TeX. This will also define b:did_ftplugin .
+source $VIMRUNTIME/ftplugin/plaintex.vim
+
+" Avoid problems if running in 'compatible' mode.
+let s:save_cpo = &cpo
+set cpo&vim
+
+let b:undo_ftplugin .= "| setl inex<"
+
+" Allow "[d" to be used to find a macro definition:
+" Recognize plain TeX \def as well as LaTeX \newcommand and \renewcommand .
+" I may as well add the AMS-LaTeX DeclareMathOperator as well.
+let &l:define .= '\|\\\(re\)\=new\(boolean\|command\|counter\|environment\|font'
+ \ . '\|if\|length\|savebox\|theorem\(style\)\=\)\s*\*\=\s*{\='
+ \ . '\|DeclareMathOperator\s*{\=\s*'
+
+" Tell Vim how to recognize LaTeX \include{foo} and plain \input bar :
+let &l:include .= '\|\\include{'
+" On some file systems, "{" and "}" are inluded in 'isfname'. In case the
+" TeX file has \include{fname} (LaTeX only), strip everything except "fname".
+let &l:includeexpr = "substitute(v:fname, '^.\\{-}{\\|}.*', '', 'g')"
+
+" The following lines enable the macros/matchit.vim plugin for
+" extended matching with the % key.
+" ftplugin/plaintex.vim already defines b:match_skip and b:match_ignorecase
+" and matches \(, \), \[, \], \{, and \} .
+if exists("loaded_matchit")
+ let b:match_words .= ',\\begin\s*\({\a\+\*\=}\):\\end\s*\1'
+endif " exists("loaded_matchit")
+
+let &cpo = s:save_cpo
+
+" vim:sts=2:sw=2:
diff --git a/vim73/ftplugin/udevconf.vim b/vim73/ftplugin/udevconf.vim
new file mode 100644
index 0000000..6042e14
--- /dev/null
+++ b/vim73/ftplugin/udevconf.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: udev(8) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/udevperm.vim b/vim73/ftplugin/udevperm.vim
new file mode 100644
index 0000000..e7ad31d
--- /dev/null
+++ b/vim73/ftplugin/udevperm.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: udev(8) permissions file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/udevrules.vim b/vim73/ftplugin/udevrules.vim
new file mode 100644
index 0000000..be8d646
--- /dev/null
+++ b/vim73/ftplugin/udevrules.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: udev(8) rules file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/updatedb.vim b/vim73/ftplugin/updatedb.vim
new file mode 100644
index 0000000..f4e7bce
--- /dev/null
+++ b/vim73/ftplugin/updatedb.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: updatedb.conf(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/vb.vim b/vim73/ftplugin/vb.vim
new file mode 100644
index 0000000..d70db89
--- /dev/null
+++ b/vim73/ftplugin/vb.vim
@@ -0,0 +1,45 @@
+" Vim filetype plugin file
+" Language: VisualBasic (ft=vb)
+" Maintainer: Johannes Zellner <johannes@zellner.org>
+" Last Change: Thu, 22 Nov 2001 12:56:14 W. Europe Standard Time
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+setlocal com=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
+
+" we need this wrapper, as call doesn't allow a count
+fun! <SID>VbSearch(pattern, flags)
+ let cnt = v:count1
+ while cnt > 0
+ call search(a:pattern, a:flags)
+ let cnt = cnt - 1
+ endwhile
+endfun
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" NOTE the double escaping \\|
+nnoremap <buffer> <silent> [[ :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'bW')<cr>
+nnoremap <buffer> <silent> ]] :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'W')<cr>
+nnoremap <buffer> <silent> [] :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'bW')<cr>
+nnoremap <buffer> <silent> ][ :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'W')<cr>
+
+" matchit support
+if exists("loaded_matchit")
+ let b:match_ignorecase=1
+ let b:match_words=
+ \ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*$:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
+ \ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
+ \ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
+ \ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
+ \ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
+ \ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
+ \ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
+ \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
+ \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/verilog.vim b/vim73/ftplugin/verilog.vim
new file mode 100644
index 0000000..6594f2e
--- /dev/null
+++ b/vim73/ftplugin/verilog.vim
@@ -0,0 +1,57 @@
+" Vim filetype plugin file
+" Language: Verilog HDL
+" Maintainer: Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
+" Last Change: Wed Sep 3 15:24:49 CST 2008
+" URL: http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Set 'cpoptions' to allow line continuations
+let s:cpo_save = &cpo
+set cpo&vim
+
+" Undo the plugin effect
+let b:undo_ftplugin = "setlocal fo< com< tw<"
+ \ . "| unlet! b:browsefilter b:match_ignorecase b:match_words"
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croqlm1
+
+" Set 'comments' to format dashed lists in comments.
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+
+" Format comments to be up to 78 characters long
+if &textwidth == 0
+ setlocal tw=78
+endif
+
+" Win32 can filter files in the browse dialog
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Let the matchit plugin know what items can be matched.
+if exists("loaded_matchit")
+ let b:match_ignorecase=0
+ let b:match_words=
+ \ '\<begin\>:\<end\>,' .
+ \ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
+ \ '\<module\>:\<endmodule\>,' .
+ \ '\<if\>:\<else\>,' .
+ \ '\<function\>:\<endfunction\>,' .
+ \ '`ifdef\>:`else\>:`endif\>,' .
+ \ '\<task\>:\<endtask\>,' .
+ \ '\<specify\>:\<endspecify\>'
+endif
+
+" Reset 'cpoptions' back to the user's setting
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/vhdl.vim b/vim73/ftplugin/vhdl.vim
new file mode 100644
index 0000000..08a2de3
--- /dev/null
+++ b/vim73/ftplugin/vhdl.vim
@@ -0,0 +1,84 @@
+" VHDL filetype plugin
+" Language: VHDL
+" Maintainer: R.Shankar <shankar.r?freescale.com>
+" Modified By: Gerald Lai <laigera+vim?gmail.com>
+" Last Change: 2006 Feb 16
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+"setlocal fo-=t fo+=croqlm1
+
+" Set 'comments' to format dashed lists in comments.
+"setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+
+" Format comments to be up to 78 characters long
+"setlocal tw=75
+
+set cpo-=C
+
+" Win32 can filter files in the browse dialog
+"if has("gui_win32") && !exists("b:browsefilter")
+" let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n" .
+" \ "All Files (*.*)\t*.*\n"
+"endif
+
+" Let the matchit plugin know what items can be matched.
+if ! exists("b:match_words") && exists("loaded_matchit")
+ let b:match_ignorecase=1
+ let s:notend = '\%(\<end\s\+\)\@<!'
+ let b:match_words =
+ \ s:notend.'\<if\>:\<elsif\>:\<else\>:\<end\s\+if\>,'.
+ \ s:notend.'\<case\>:\<when\>:\<end\s\+case\>,'.
+ \ s:notend.'\<loop\>:\<end\s\+loop\>,'.
+ \ s:notend.'\<for\>:\<end\s\+for\>,'.
+ \ s:notend.'\<generate\>:\<end\s\+generate\>,'.
+ \ s:notend.'\<record\>:\<end\s\+record\>,'.
+ \ s:notend.'\<units\>:\<end\s\+units\>,'.
+ \ s:notend.'\<process\>:\<end\s\+process\>,'.
+ \ s:notend.'\<block\>:\<end\s\+block\>,'.
+ \ s:notend.'\<function\>:\<end\s\+function\>,'.
+ \ s:notend.'\<entity\>:\<end\s\+entity\>,'.
+ \ s:notend.'\<component\>:\<end\s\+component\>,'.
+ \ s:notend.'\<architecture\>:\<end\s\+architecture\>,'.
+ \ s:notend.'\<package\>:\<end\s\+package\>,'.
+ \ s:notend.'\<procedure\>:\<end\s\+procedure\>,'.
+ \ s:notend.'\<configuration\>:\<end\s\+configuration\>'
+endif
+
+" count repeat
+function! <SID>CountWrapper(cmd)
+ let i = v:count1
+ if a:cmd[0] == ":"
+ while i > 0
+ execute a:cmd
+ let i = i - 1
+ endwhile
+ else
+ execute "normal! gv\<Esc>"
+ execute "normal ".i.a:cmd
+ let curcol = col(".")
+ let curline = line(".")
+ normal! gv
+ call cursor(curline, curcol)
+ endif
+endfunction
+
+" explore motion
+" keywords: "architecture", "block", "configuration", "component", "entity", "function", "package", "procedure", "process", "record", "units"
+let b:vhdl_explore = '\%(architecture\|block\|configuration\|component\|entity\|function\|package\|procedure\|process\|record\|units\)'
+noremap <buffer><silent>[[ :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\%(\\<end\\s\\+\\)\\@<!\\<".b:vhdl_explore."\\>\\c\\<Bar>\\%^","bW")')<CR>
+noremap <buffer><silent>]] :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\%(\\<end\\s\\+\\)\\@<!\\<".b:vhdl_explore."\\>\\c\\<Bar>\\%$","W")')<CR>
+noremap <buffer><silent>[] :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\<end\\s\\+".b:vhdl_explore."\\>\\c\\<Bar>\\%^","bW")')<CR>
+noremap <buffer><silent>][ :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\<end\\s\\+".b:vhdl_explore."\\>\\c\\<Bar>\\%$","W")')<CR>
+vnoremap <buffer><silent>[[ :<C-u>cal <SID>CountWrapper('[[')<CR>
+vnoremap <buffer><silent>]] :<C-u>cal <SID>CountWrapper(']]')<CR>
+vnoremap <buffer><silent>[] :<C-u>cal <SID>CountWrapper('[]')<CR>
+vnoremap <buffer><silent>][ :<C-u>cal <SID>CountWrapper('][')<CR>
diff --git a/vim73/ftplugin/vim.vim b/vim73/ftplugin/vim.vim
new file mode 100644
index 0000000..de8a047
--- /dev/null
+++ b/vim73/ftplugin/vim.vim
@@ -0,0 +1,74 @@
+" Vim filetype plugin
+" Language: Vim
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2009 Jan 22
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo-=C
+
+let b:undo_ftplugin = "setl fo< isk< com< tw< commentstring<"
+ \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" To allow tag lookup via CTRL-] for autoload functions, '#' must be a
+" keyword character. E.g., for netrw#Nread().
+setlocal isk+=#
+
+" Set 'comments' to format dashed lists in comments
+setlocal com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"
+
+" Format comments to be up to 78 characters long
+if &tw == 0
+ setlocal tw=78
+endif
+
+" Comments start with a double quote
+setlocal commentstring=\"%s
+
+" Move around functions.
+nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
+vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
+nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
+vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
+nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
+vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR>
+nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
+vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR>
+
+" Move around comments
+nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
+vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
+nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
+vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
+
+" Let the matchit plugin know what items can be matched.
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ let b:match_words =
+ \ '\<fu\%[nction]\>:\<retu\%[rn]\>:\<endf\%[unction]\>,' .
+ \ '\<\(wh\%[ile]\|for\)\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<end\(w\%[hile]\|fo\%[r]\)\>,' .
+ \ '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>,' .
+ \ '\<try\>:\<cat\%[ch]\>:\<fina\%[lly]\>:\<endt\%[ry]\>,' .
+ \ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' .
+ \ '(:)'
+ " Ignore ":syntax region" commands, the 'end' argument clobbers if-endif
+ let b:match_skip = 'getline(".") =~ "^\\s*sy\\%[ntax]\\s\\+region" ||
+ \ synIDattr(synID(line("."),col("."),1),"name") =~? "comment\\|string"'
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" removed this, because 'cpoptions' is a global option.
+" setlocal cpo+=M " makes \%( match \)
diff --git a/vim73/ftplugin/xdefaults.vim b/vim73/ftplugin/xdefaults.vim
new file mode 100644
index 0000000..cd85182
--- /dev/null
+++ b/vim73/ftplugin/xdefaults.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: X resources files like ~/.Xdefaults (xrdb)
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:! commentstring& inc&
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/xf86conf.vim b/vim73/ftplugin/xf86conf.vim
new file mode 100644
index 0000000..ab7569a
--- /dev/null
+++ b/vim73/ftplugin/xf86conf.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: XFree86 Configuration File
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/xhtml.vim b/vim73/ftplugin/xhtml.vim
new file mode 100644
index 0000000..a50ed92
--- /dev/null
+++ b/vim73/ftplugin/xhtml.vim
@@ -0,0 +1,66 @@
+" Vim filetype plugin file
+" Language: xhtml
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
+ \ "XML Files (*.xml)\t*.xml\n" .
+ \ "All Files (*.*)\t*.*\n"
+let s:match_words = ""
+
+runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
+unlet b:did_ftplugin
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+ unlet b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+ unlet b:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words
+ unlet b:match_words
+endif
+
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+let b:did_ftplugin = 1
+
+" Combine the new set of values with those previously included.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter . s:browsefilter
+endif
+if exists("b:match_words")
+ let s:match_words = b:match_words . "," . s:match_words
+endif
+
+" Load the combined list of match_words for matchit.vim
+if exists("loaded_matchit")
+ let b:match_words = s:match_words
+endif
+
+" Change the :browse e filter to primarily show tcsh-related files.
+if has("gui_win32")
+ let b:browsefilter="XHTML files (*.xhtml, *.xhtm)\t*.xhtml;*.xhtm\n" . s:browsefilter
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/xinetd.vim b/vim73/ftplugin/xinetd.vim
new file mode 100644
index 0000000..f209af1
--- /dev/null
+++ b/vim73/ftplugin/xinetd.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: xinetd.conf(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s include=^\\s*include
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/xml.vim b/vim73/ftplugin/xml.vim
new file mode 100644
index 0000000..74cd064
--- /dev/null
+++ b/vim73/ftplugin/xml.vim
@@ -0,0 +1,63 @@
+" Vim filetype plugin file
+" Language: xml
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+setlocal commentstring=<!--%s-->
+setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->
+
+setlocal formatoptions-=t
+if !exists("g:ft_xml_autocomment") || (g:ft_xml_autocomment == 1)
+ setlocal formatoptions+=croql
+endif
+
+
+" XML: thanks to Johannes Zellner and Akbar Ibrahim
+" - case sensitive
+" - don't match empty tags <fred/>
+" - match <!--, --> style comments (but not --, --)
+" - match <!, > inlined dtd's. This is not perfect, as it
+" gets confused for example by
+" <!ENTITY gt ">">
+if exists("loaded_matchit")
+ let b:match_ignorecase=0
+ let b:match_words =
+ \ '<:>,' .
+ \ '<\@<=!\[CDATA\[:]]>,'.
+ \ '<\@<=!--:-->,'.
+ \ '<\@<=?\k\+:?>,'.
+ \ '<\@<=\([^ \t>/]\+\)\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\):<\@<=/\1>,'.
+ \ '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>'
+endif
+
+"
+" For Omni completion, by Mikolaj Machowski.
+if exists('&ofu')
+ setlocal ofu=xmlcomplete#CompleteTags
+endif
+command! -nargs=+ XMLns call xmlcomplete#CreateConnection(<f-args>)
+command! -nargs=? XMLent call xmlcomplete#CreateEntConnection(<f-args>)
+
+
+" Change the :browse e filter to primarily show xml-related files.
+if has("gui_win32")
+ let b:browsefilter="XML Files (*.xml)\t*.xml\n" .
+ \ "DTD Files (*.dtd)\t*.dtd\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
+ \ " | unlet! b:match_ignorecase b:match_words b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/xmodmap.vim b/vim73/ftplugin/xmodmap.vim
new file mode 100644
index 0000000..027ae09
--- /dev/null
+++ b/vim73/ftplugin/xmodmap.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: xmodmap(1) definition file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:! commentstring=!\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/xs.vim b/vim73/ftplugin/xs.vim
new file mode 100644
index 0000000..24df05d
--- /dev/null
+++ b/vim73/ftplugin/xs.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: XS (Perl extension interface language)
+" Maintainer: Andy Lester <andy@petdance.com>
+" URL: http://github.com/petdance/vim-perl
+" Last Change: 2009-08-14
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Just use the C plugin for now.
+runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim
diff --git a/vim73/ftplugin/xsd.vim b/vim73/ftplugin/xsd.vim
new file mode 100644
index 0000000..b033760
--- /dev/null
+++ b/vim73/ftplugin/xsd.vim
@@ -0,0 +1,38 @@
+" Vim filetype plugin file
+" Language: xsd
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "XML Files (*.xml)\t*.xml\n" .
+ \ "All Files (*.*)\t*.*\n"
+
+runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
+let b:did_ftplugin = 1
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+endif
+
+" Change the :browse e filter to primarily show xsd-related files.
+if has("gui_win32")
+ let b:browsefilter="XSD Files (*.xsd)\t*.xsd\n" . s:browsefilter
+endif
+
+let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin
+
+" Restore the saved compatibility options.
+let &cpo = s:save_cpo
diff --git a/vim73/ftplugin/xslt.vim b/vim73/ftplugin/xslt.vim
new file mode 100644
index 0000000..1a5ee62
--- /dev/null
+++ b/vim73/ftplugin/xslt.vim
@@ -0,0 +1,16 @@
+" Vim filetype plugin file
+" Language: xslt
+" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+
+if exists("b:did_ftplugin") | finish | endif
+
+runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim
+
+let b:did_ftplugin = 1
+
+" Change the :browse e filter to primarily show xsd-related files.
+if has("gui_win32") && exists("b:browsefilter")
+ let b:browsefilter="XSLT Files (*.xsl,*.xslt)\t*.xsl;*.xslt\n" . b:browsefilter
+endif
diff --git a/vim73/ftplugin/yaml.vim b/vim73/ftplugin/yaml.vim
new file mode 100644
index 0000000..b88803a
--- /dev/null
+++ b/vim73/ftplugin/yaml.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin file
+" Language: YAML (YAML Ain't Markup Language)
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< et< fo<"
+
+setlocal comments=:# commentstring=#\ %s expandtab
+setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/vim73/ftplugin/zsh.vim b/vim73/ftplugin/zsh.vim
new file mode 100644
index 0000000..c6db781
--- /dev/null
+++ b/vim73/ftplugin/zsh.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: Zsh shell script
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save