diff options
author | Geroge Hunt <georgejhunt@gmail.com> | 2011-02-26 20:19:01 (GMT) |
---|---|---|
committer | Geroge Hunt <georgejhunt@gmail.com> | 2011-02-26 20:19:01 (GMT) |
commit | fb6211451e0aa64e36ba309934746c12f9ebd869 (patch) | |
tree | 2c8f7cbb26f97654a9d7b6b6b26a82a53bc64f07 /vim73/ftplugin |
Diffstat (limited to 'vim73/ftplugin')
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 |