From 15369edeee02085fd0c3865e94382592edac791a Mon Sep 17 00:00:00 2001 From: gryf Date: Sun, 27 Jul 2014 18:50:47 +0200 Subject: [PATCH] Moving from pathogen to NeoBundle --- .hgignore | 1 + .hgsub | 29 - .hgsubstate | 28 - .vimrc | 78 +- GetLatest/GetLatestVimScripts.dat | 29 - autoload/pathogen.vim | 230 -- bundle/compiler_javascript/compiler/jsl.vim | 14 - .../compiler_pylint/bin/pylint_parseable.py | 88 - bundle/compiler_pylint/compiler/pylint.vim | 12 - bundle/compiler_pylint/readme.txt | 5 - bundle/dirdiff/plugin/DirDiff.vim | 1115 -------- .../ftplugin/python/jpythonfold.vim | 231 -- bundle/ft_matchtag/ftplugin/html.vim | 87 - bundle/ft_matchtag/ftplugin/xml.vim | 2 - .../ftplugin/python/python_fn.vim | 447 ---- .../ftplugin/python/pythonhelper.vim | 763 ------ bundle/grep/plugin/grep.vim | 854 ------ bundle/indent_javascript/indent/html.vim | 288 -- .../indent_javascript/indent/javascript.vim | 407 --- bundle/indent_javascript/test.html | 399 --- bundle/indent_mako/indent/mako.vim | 353 --- bundle/indent_python/indent/python.vim | 262 -- bundle/jsbeautify/plugin/jsbeautify.vim | 624 ----- .../autoload/kickasscomplete.vim | 161 -- bundle/languageTool/doc/LanguageTool.txt | 318 --- bundle/languageTool/plugin/LanguageTool.vim | 459 ---- bundle/loremipsum/autoload/loremipsum.txt | 127 - bundle/loremipsum/autoload/loremipsum.vim | 157 -- bundle/loremipsum/doc/loremipsum.txt | 97 - bundle/loremipsum/plugin/loremipsum.vim | 85 - bundle/mark/autoload/mark.vim | 1039 -------- bundle/mark/autoload/mark/palettes.vim | 136 - bundle/mark/doc/mark.txt | 591 ----- bundle/mark/plugin/mark.vim | 420 --- bundle/occur/plugin/occur.vim | 86 - bundle/showmarks/doc/showmarks.txt | 264 -- bundle/showmarks/plugin/showmarks.vim | 507 ---- bundle/syntax_fitnesse/README.fitnesse | 67 - .../syntax_fitnesse/scripts.vim.fitnesse_add | 4 - bundle/syntax_fitnesse/syntax/fitnesse.vim | 62 - bundle/vimwiki/autoload/vimwiki/base.vim | 1573 ----------- bundle/vimwiki/autoload/vimwiki/default.tpl | 11 - bundle/vimwiki/autoload/vimwiki/diary.vim | 358 --- bundle/vimwiki/autoload/vimwiki/html.vim | 1586 ----------- bundle/vimwiki/autoload/vimwiki/lst.vim | 555 ---- .../autoload/vimwiki/markdown_base.vim | 302 --- bundle/vimwiki/autoload/vimwiki/style.css | 79 - bundle/vimwiki/autoload/vimwiki/tbl.vim | 656 ----- bundle/vimwiki/autoload/vimwiki/u.vim | 77 - bundle/vimwiki/doc/vimwiki.txt | 2331 ----------------- bundle/vimwiki/ftplugin/vimwiki.vim | 475 ---- bundle/vimwiki/plugin/vimwiki.vim | 556 ---- bundle/vimwiki/syntax/vimwiki.vim | 601 ----- bundle/vimwiki/syntax/vimwiki_default.vim | 89 - bundle/vimwiki/syntax/vimwiki_markdown.vim | 89 - .../syntax/vimwiki_markdown_custom.vim | 392 --- bundle/vimwiki/syntax/vimwiki_media.vim | 71 - .../compiler => compiler}/rubber.vim | 0 .../javascript/common.vim | 0 ftplugin/markdown/commons.vim | 9 + .../ftplugin => ftplugin}/python/common.vim | 2 - .../ftplugin => ftplugin}/python/pep8_fn.vim | 0 .../python/pylint_fn.vim | 1 + .../ftplugin => ftplugin}/rst/commons.vim | 0 .../ftplugin => ftplugin}/rst/word_utils.vim | 0 .../ftplugin => ftplugin}/snippet/common.vim | 0 .../ftplugin => ftplugin}/sql/common.vim | 0 .../ftplugin => ftplugin}/tex/common.vim | 0 .../ftplugin => ftplugin}/vim/common.vim | 0 syntax/kickass.vim | 348 --- syntax/mako.vim | 86 - 71 files changed, 83 insertions(+), 21090 deletions(-) delete mode 100644 .hgsub delete mode 100644 .hgsubstate delete mode 100644 GetLatest/GetLatestVimScripts.dat delete mode 100644 autoload/pathogen.vim delete mode 100644 bundle/compiler_javascript/compiler/jsl.vim delete mode 100755 bundle/compiler_pylint/bin/pylint_parseable.py delete mode 100644 bundle/compiler_pylint/compiler/pylint.vim delete mode 100644 bundle/compiler_pylint/readme.txt delete mode 100644 bundle/dirdiff/plugin/DirDiff.vim delete mode 100644 bundle/ft_jpythonfold/ftplugin/python/jpythonfold.vim delete mode 100644 bundle/ft_matchtag/ftplugin/html.vim delete mode 100644 bundle/ft_matchtag/ftplugin/xml.vim delete mode 100644 bundle/ft_python_fn/ftplugin/python/python_fn.vim delete mode 100644 bundle/ft_pythonhelper/ftplugin/python/pythonhelper.vim delete mode 100644 bundle/grep/plugin/grep.vim delete mode 100644 bundle/indent_javascript/indent/html.vim delete mode 100644 bundle/indent_javascript/indent/javascript.vim delete mode 100644 bundle/indent_javascript/test.html delete mode 100644 bundle/indent_mako/indent/mako.vim delete mode 100644 bundle/indent_python/indent/python.vim delete mode 100644 bundle/jsbeautify/plugin/jsbeautify.vim delete mode 100755 bundle/kickAssembler/autoload/kickasscomplete.vim delete mode 100644 bundle/languageTool/doc/LanguageTool.txt delete mode 100644 bundle/languageTool/plugin/LanguageTool.vim delete mode 100644 bundle/loremipsum/autoload/loremipsum.txt delete mode 100644 bundle/loremipsum/autoload/loremipsum.vim delete mode 100644 bundle/loremipsum/doc/loremipsum.txt delete mode 100644 bundle/loremipsum/plugin/loremipsum.vim delete mode 100644 bundle/mark/autoload/mark.vim delete mode 100644 bundle/mark/autoload/mark/palettes.vim delete mode 100644 bundle/mark/doc/mark.txt delete mode 100644 bundle/mark/plugin/mark.vim delete mode 100644 bundle/occur/plugin/occur.vim delete mode 100644 bundle/showmarks/doc/showmarks.txt delete mode 100644 bundle/showmarks/plugin/showmarks.vim delete mode 100644 bundle/syntax_fitnesse/README.fitnesse delete mode 100644 bundle/syntax_fitnesse/scripts.vim.fitnesse_add delete mode 100644 bundle/syntax_fitnesse/syntax/fitnesse.vim delete mode 100644 bundle/vimwiki/autoload/vimwiki/base.vim delete mode 100644 bundle/vimwiki/autoload/vimwiki/default.tpl delete mode 100644 bundle/vimwiki/autoload/vimwiki/diary.vim delete mode 100644 bundle/vimwiki/autoload/vimwiki/html.vim delete mode 100644 bundle/vimwiki/autoload/vimwiki/lst.vim delete mode 100644 bundle/vimwiki/autoload/vimwiki/markdown_base.vim delete mode 100644 bundle/vimwiki/autoload/vimwiki/style.css delete mode 100644 bundle/vimwiki/autoload/vimwiki/tbl.vim delete mode 100644 bundle/vimwiki/autoload/vimwiki/u.vim delete mode 100644 bundle/vimwiki/doc/vimwiki.txt delete mode 100644 bundle/vimwiki/ftplugin/vimwiki.vim delete mode 100644 bundle/vimwiki/plugin/vimwiki.vim delete mode 100644 bundle/vimwiki/syntax/vimwiki.vim delete mode 100644 bundle/vimwiki/syntax/vimwiki_default.vim delete mode 100644 bundle/vimwiki/syntax/vimwiki_markdown.vim delete mode 100644 bundle/vimwiki/syntax/vimwiki_markdown_custom.vim delete mode 100644 bundle/vimwiki/syntax/vimwiki_media.vim rename {bundle/compiler_rubber/compiler => compiler}/rubber.vim (100%) rename {bundle/ft_javascript/ftplugin => ftplugin}/javascript/common.vim (100%) create mode 100644 ftplugin/markdown/commons.vim rename {bundle/ft_python/ftplugin => ftplugin}/python/common.vim (98%) rename {bundle/ft_python/ftplugin => ftplugin}/python/pep8_fn.vim (100%) rename {bundle/ft_python/ftplugin => ftplugin}/python/pylint_fn.vim (99%) rename {bundle/ft_rst/ftplugin => ftplugin}/rst/commons.vim (100%) rename {bundle/ft_rst/ftplugin => ftplugin}/rst/word_utils.vim (100%) rename {bundle/ft_snippets/ftplugin => ftplugin}/snippet/common.vim (100%) rename {bundle/ft_sql/ftplugin => ftplugin}/sql/common.vim (100%) rename {bundle/ft_tex/ftplugin => ftplugin}/tex/common.vim (100%) rename {bundle/ft_vim/ftplugin => ftplugin}/vim/common.vim (100%) delete mode 100644 syntax/kickass.vim delete mode 100644 syntax/mako.vim diff --git a/.hgignore b/.hgignore index b1641d7..3b9b66e 100644 --- a/.hgignore +++ b/.hgignore @@ -3,6 +3,7 @@ syntax: glob *.pyc *.pyo +bundle/* view/* **/doc/tags diff --git a/.hgsub b/.hgsub deleted file mode 100644 index 557bf15..0000000 --- a/.hgsub +++ /dev/null @@ -1,29 +0,0 @@ -bundle/git_ack = [git]https://github.com/mileszs/ack.vim.git -bundle/git_calendar = [git]https://github.com/mattn/calendar-vim.git -bundle/git_gundo = [git]https://github.com/sjl/gundo.vim.git -bundle/doc_git_py2stdlib = [git]https://github.com/vim-scripts/Python-2.x-Standard-Library-Reference.git -bundle/ft_git_pyflakes-vim = [git]https://github.com/kevinw/pyflakes-vim.git -bundle/ft_git_pydoc = [git]https://github.com/fs111/pydoc.vim.git -bundle/git_vcscommand = [git]http://repo.or.cz/r/vcscommand.git -bundle/git_tagbar = [git]https://github.com/majutsushi/tagbar.git -bundle/git_surround = [git]https://github.com/tpope/vim-surround.git -#bundle/git_snipmate = [git]https://github.com/msanders/snipmate.vim.git -bundle/git_ultisnips = [git]https://github.com/SirVer/ultisnips.git -bundle/git_repeat = [git]https://github.com/tpope/vim-repeat.git -bundle/git_nerdcommenter = [git]https://github.com/scrooloose/nerdcommenter.git -bundle/git_ctrlp = [git]https://github.com/kien/ctrlp.vim.git -bundle/git_syntastic = [git]https://github.com/scrooloose/syntastic.git -bundle/git_taglisttoo = [git]https://github.com/ervandew/taglisttoo.git -bundle/git_vim-javascript = [git]https://github.com/pangloss/vim-javascript.git -bundle/git_vim-nodejs-complete = [git]https://github.com/myhere/vim-nodejs-complete.git -bundle/git_fugitive = [git]https://github.com/tpope/vim-fugitive.git -bundle/git_markdown = [git]https://github.com/hallison/vim-markdown.git -bundle/git_riv = [git]https://github.com/Rykka/riv.vim.git -bundle/git_zoom = [git]https://github.com/gryf/zoom.vim.git -bundle/git_nerdtree = [git]https://github.com/scrooloose/nerdtree.git -bundle/git_css = [git]https://github.com/skammer/vim-css-color.git -bundle/ft_git_matchtagalways = [git]https://github.com/Valloric/MatchTagAlways.git -bundle/git_vim-snippets = [git]https://github.com/honza/vim-snippets.git -bundle/git_jedi = [git]https://github.com/davidhalter/jedi-vim.git -bundle/git_multiple-cursors = [git]https://github.com/terryma/vim-multiple-cursors.git -bundle/git_html5 = [git]https://github.com/othree/html5.vim.git diff --git a/.hgsubstate b/.hgsubstate deleted file mode 100644 index a62cdb1..0000000 --- a/.hgsubstate +++ /dev/null @@ -1,28 +0,0 @@ -305b08a99a6e3e3c4df6f6936869ba69a6b21fcf bundle/doc_git_py2stdlib -8cf9444704091f4babedd757617f03c390bb0f92 bundle/ft_git_matchtagalways -6adcfcd402d34eacb7e6a1dd85c8757bb71e3618 bundle/ft_git_pydoc -92ab1d390d0dbf0d949aba27c9eb1e4ed0abde0e bundle/ft_git_pyflakes-vim -303bceff1c8ab1145d114083582b1aeac9de7a85 bundle/git_ack -186ae21ab46bb1c2830434160a77cc1352646f77 bundle/git_calendar -417eaf8a20a6208e34ff167f5636b20f8f812ed8 bundle/git_css -b5d3fe66a58a13d2ff8b6391f4387608496a030f bundle/git_ctrlp -188692556a025db6ad4c7324961253469979b348 bundle/git_fugitive -3975ac871565115e3769dc69c06bc88ddc1369af bundle/git_gundo -10dca03366fca80a2b9ec7aed49d2864bcadb8ef bundle/git_html5 -c32844dfec93569e9e10228703ea535dc70d8b8b bundle/git_jedi -10073c3a3c363c34681c2e37ae29e9675e2cde90 bundle/git_markdown -35028be1f71953da9f2c28509bf6c5ebd1d31c28 bundle/git_multiple-cursors -0b3d928dce8262dedfc2f83b9aeb59a94e4f0ae4 bundle/git_nerdcommenter -55a8954c48d94c207facb1a0ba109a427b15bcbf bundle/git_nerdtree -2a3c5f8e3c26a57b8eb4cfc4be79615a1c508ef6 bundle/git_repeat -43b1d37479af91cac00d01d4e20b7b7e1b94adfb bundle/git_riv -f85cb4e788356f664d033e8519abdd8e1bc26762 bundle/git_surround -0bef7ef3f608f162eba0daee63acd13b3456efcb bundle/git_syntastic -59c9b7ce1cc70ac2c7bd3c858e80c89f17b42cc9 bundle/git_tagbar -7b84e352ed1e395fc54f5a3f60faf4aef9da9f41 bundle/git_taglisttoo -7b8641e1fd49ca9a048b636d9838b5fea6da9536 bundle/git_ultisnips -c0d27010dd0c96884cfd34c3af621ae009109c69 bundle/git_vcscommand -f8122fd1caca68b2592553e43dad45b3dc445a06 bundle/git_vim-javascript -1e2f98f4366c6dec27fa8df72971fa9fa33e9f07 bundle/git_vim-nodejs-complete -368acf7e2752d6c5914d3f45f938dee6525788a2 bundle/git_vim-snippets -757f513c621a48cf34d5b343ddb405ae731b3e38 bundle/git_zoom diff --git a/.vimrc b/.vimrc index 3d0d780..508be5c 100644 --- a/.vimrc +++ b/.vimrc @@ -1,7 +1,68 @@ "Basic setup for all files {{{ -call pathogen#infect() "infect path for boundles set nocompatible "VIM over VI +" NeoBundle conf {{{ +if has('vim_starting') + set runtimepath+=~/.vim/bundle/neobundle.vim/ +endif + +call neobundle#begin(expand('~/.vim/bundle/')) + +NeoBundleFetch 'Shougo/neobundle.vim' + +NeoBundle "Finkregh/pythonhelper" +NeoBundle "Rykka/riv.vim" +NeoBundle "SirVer/ultisnips" +NeoBundle "Valloric/MatchTagAlways" +NeoBundle "davidhalter/jedi-vim" +NeoBundle "ervandew/taglisttoo" +NeoBundle "fs111/pydoc.vim" +NeoBundle "gryf/mark" +NeoBundle "gryf/zoom.vim" +NeoBundle "hallison/vim-markdown" +NeoBundle "honza/vim-snippets" +NeoBundle "http://repo.or.cz/r/vcscommand.git" +NeoBundle "https://code.google.com/p/vimwiki/" +NeoBundle "kazuyukitanimura/jsbeautify" +NeoBundle "kevinw/pyflakes-vim" +NeoBundle "kien/ctrlp.vim" +NeoBundle "majutsushi/tagbar" +NeoBundle "mattn/calendar-vim" +NeoBundle "mduan/python.vim" +NeoBundle "mikeage/occur.vim" +NeoBundle "mileszs/ack.vim" +NeoBundle "myhere/vim-nodejs-complete" +NeoBundle "othree/html5.vim" +NeoBundle "pangloss/vim-javascript" +NeoBundle "pcaro90/jpythonfold.vim" +NeoBundle "scrooloose/nerdcommenter" +NeoBundle "scrooloose/nerdtree" +NeoBundle "scrooloose/syntastic" +NeoBundle "sjl/gundo.vim" +NeoBundle "skammer/vim-css-color" +NeoBundle "taylor/ctags.vim" +NeoBundle "terryma/vim-multiple-cursors" +NeoBundle "tpope/vim-fugitive" +NeoBundle "tpope/vim-repeat" +NeoBundle "tpope/vim-surround" +NeoBundle "vim-scripts/LanguageTool" +NeoBundle "vim-scripts/MatchTag" +NeoBundle "vim-scripts/Python-2.x-Standard-Library-Reference" +NeoBundle "vim-scripts/ShowMarks" +NeoBundle "vim-scripts/indentpython" +NeoBundle "vim-scripts/loremipsum" +NeoBundle "vim-scripts/mako.vim" +NeoBundle "vim-scripts/mako.vim--Torborg" +NeoBundle "yegappan/grep" +NeoBundle "zhaocai/DirDiff.vim" +NeoBundle "vim-scripts/JavaScript-Indent" + +let g:ctags_statusline=1 +let generate_tags=1 + +call neobundle#end() +" }}} + filetype plugin indent on "turn plugins/indent on syntax on "Turn syntax highlighting on @@ -204,11 +265,16 @@ let g:jedi#show_call_signatures = "0" map :NERDTreeToggle "}}} "Riv {{{ -" Don't fold the file; it's annoying +" Don't fold the file; it's annoying let g:riv_fold_level = -1 " formatting tables, doesn't work so good with complex grid tables let g:riv_auto_format_table = 0 "}}} +" Occur {{{ +nnoremap oc :Occur +nnoremap om :Moccur +nnoremap 8 *:Moccur +" }}} "}}} "KEYS: User defined keyboard shortcuts {{{ @@ -416,13 +482,13 @@ endfunction " GUI: detect graphics mode, set colorscheme {{{ if has('gui_running') " I like this font, but it looks like crap on linux - "set guifont=Consolas\ 12 + "set guifont=Consolas\ 12 " at least, some ttf font that looks good set guifont=DejaVu\ Sans\ Mono\ 12 - " Unfortunately there is a problem with TTF fonts in my gvim instance. + " Unfortunately there is a problem with TTF fonts in my gvim instance. " After editing a while there are some leaving trash appearing on the - " buffer. Refreshing the screen helps, but is kinda annoying. It is - " probably my X11 setup, because on other similar workstations and setup I + " buffer. Refreshing the screen helps, but is kinda annoying. It is + " probably my X11 setup, because on other similar workstations and setup I " didn't noticed such behavior. Fallback to fixed-misc for a while. "set guifont=Fixed\ 13 set mouse=a "Enable mouse support diff --git a/GetLatest/GetLatestVimScripts.dat b/GetLatest/GetLatestVimScripts.dat deleted file mode 100644 index da0751f..0000000 --- a/GetLatest/GetLatestVimScripts.dat +++ /dev/null @@ -1,29 +0,0 @@ -ScriptID SourceID Filename --------------------------- -### plugins -102 16171 DirDiff.vim -311 7645 grep.vim -2727 11120 jsbeautify.vim -2289 8922 loremipsum -3223 1 LanguageTool -2666 18811 Mark -2262 8944 occur.vim -152 3342 showmarks.vim -2226 18232 vimwiki.vim -1334 6377 vst.vim -2321 9055 zoom.vim -### ftplugin -3818 19533 MatchTag -30 9196 python_fn.vim -435 12010 pythonhelper.vim -2527 10034 jpythonfold.vim -### indent -2663 12560 mako.vim -3081 15645 JavaScript indent -# there is also python.vim, which is close to PEP8, but author of -# changes doesn't put it on vim.org scripts. it can be (still) found on -# http://monkey.org/~caz/python.vim -### syntax -790 19619 python.vim -1858 9244 mako.vim -2539 9949 css.vim diff --git a/autoload/pathogen.vim b/autoload/pathogen.vim deleted file mode 100644 index be68389..0000000 --- a/autoload/pathogen.vim +++ /dev/null @@ -1,230 +0,0 @@ -" pathogen.vim - path option manipulation -" Maintainer: Tim Pope -" Version: 2.0 - -" Install in ~/.vim/autoload (or ~\vimfiles\autoload). -" -" For management of individually installed plugins in ~/.vim/bundle (or -" ~\vimfiles\bundle), adding `call pathogen#infect()` to your .vimrc -" prior to `fileype plugin indent on` is the only other setup necessary. -" -" The API is documented inline below. For maximum ease of reading, -" :set foldmethod=marker - -if exists("g:loaded_pathogen") || &cp - finish -endif -let g:loaded_pathogen = 1 - -" Point of entry for basic default usage. Give a directory name to invoke -" pathogen#runtime_append_all_bundles() (defaults to "bundle"), or a full path -" to invoke pathogen#runtime_prepend_subdirectories(). Afterwards, -" pathogen#cycle_filetype() is invoked. -function! pathogen#infect(...) abort " {{{1 - let source_path = a:0 ? a:1 : 'bundle' - if source_path =~# '[\\/]' - call pathogen#runtime_prepend_subdirectories(source_path) - else - call pathogen#runtime_append_all_bundles(source_path) - endif - call pathogen#cycle_filetype() -endfunction " }}}1 - -" Split a path into a list. -function! pathogen#split(path) abort " {{{1 - if type(a:path) == type([]) | return a:path | endif - let split = split(a:path,'\\\@,'edit',) -command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(,'edit',) -command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(,'split',) -command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(,'vsplit',) -command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(,'tabedit',) -command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(,'pedit',) -command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(,'read',) -command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(,'edit',,'lcd') - -" vim:set ft=vim ts=8 sw=2 sts=2: diff --git a/bundle/compiler_javascript/compiler/jsl.vim b/bundle/compiler_javascript/compiler/jsl.vim deleted file mode 100644 index 5f94fa2..0000000 --- a/bundle/compiler_javascript/compiler/jsl.vim +++ /dev/null @@ -1,14 +0,0 @@ -" Vim compiler file -" Compiler: Javascript Lint -if exists("current_compiler") - finish -endif - -let current_compiler = "jsl" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - -CompilerSet makeprg=jsl\ -nologo\ -nofilelisting\ -nosummary\ -nocontext\ -process\ % -CompilerSet errorformat=%f(%l):\ %m - diff --git a/bundle/compiler_pylint/bin/pylint_parseable.py b/bundle/compiler_pylint/bin/pylint_parseable.py deleted file mode 100755 index d16865a..0000000 --- a/bundle/compiler_pylint/bin/pylint_parseable.py +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env python -""" -This script can be used as a pylint command replacement, especially useful as -a "make" command for VIm -""" -import sys -import re -from cStringIO import StringIO -from optparse import OptionParser - -from pylint import lint -from pylint.reporters.text import TextReporter - - -SYS_STDERR = sys.stderr -DUMMY_STDERR = StringIO() -CONF_MSG = 'No config file found, using default configuration\n' - -def parsable_pylint(filename): - """ - Simple wrapper for pylint checker. Provides nice, parseable output. - filename - python fileneame to check - - Returns list of dicts of errors, i.e.: - [{'lnum': 5, 'col': 10, 'type': 'C0324', - 'text': 'Comma not followed by a space'}, - {'lnum': 12, 'type': 'C0111', 'text': 'Missing docstring'}, - .... - ] - - """ - # module args - margs = ['-rn', # display only the messages instead of full report - '-iy', # Include message's id in output - filename] - - buf = StringIO() # file-like buffer, instead of stdout - reporter = TextReporter(buf) - - sys.stderr = DUMMY_STDERR - lint.Run(margs, reporter=reporter, exit=False) - sys.stderr = SYS_STDERR - - # see, if we have other errors than 'No config found...' message - DUMMY_STDERR.seek(0) - error_list = DUMMY_STDERR.readlines() - DUMMY_STDERR.truncate(0) - if error_list and CONF_MSG in error_list: - error_list.remove(CONF_MSG) - if error_list: - raise Exception(''.join(error_list)) - - buf.seek(0) - - code_line = {} - error_list = [] - - carriage_re = re.compile(r'\s*\^+$') - error_re = re.compile(r'^([C,R,W,E,F].+):(\s+)?([0-9]+):?.*:\s(.*)$') - - for bufline in buf: - bufline = bufline.rstrip() # remove trailing newline character - - if error_re.match(bufline): - if code_line: - error_list.append(code_line) - code_line = {} - - (code_line['type'], _unused, code_line['lnum'], - code_line['text']) = error_re.match(bufline).groups() - - if carriage_re.match(bufline) and code_line: - code_line['col'] = carriage_re.match(bufline).group().find('^') + 1 - - return error_list - -if __name__ == "__main__": - PARSER = OptionParser("usage: %prog python_file") - (OPTIONS, args) = PARSER.parse_args() - if len(args) == 1: - for line in parsable_pylint(args[0]): - line['short'] = line['type'][0] - line['fname'] = args[0] - out = "%(fname)s: %(short)s: %(lnum)s: %(col)s: %(type)s %(text)s" - if 'col' not in line: - out = "%(fname)s: %(short)s: %(lnum)s: 0: %(type)s %(text)s" - - print out % line diff --git a/bundle/compiler_pylint/compiler/pylint.vim b/bundle/compiler_pylint/compiler/pylint.vim deleted file mode 100644 index b71754f..0000000 --- a/bundle/compiler_pylint/compiler/pylint.vim +++ /dev/null @@ -1,12 +0,0 @@ -" Vim compiler file for Python -" Compiler: Static code checking tool for Python -" Maintainer: Roman 'gryf' Dobosz -" Last Change: 2010-09-12 -" Version: 1.0 -if exists("current_compiler") - finish -endif - -let current_compiler = "pylint" -CompilerSet makeprg=pylint_parseable.py\ % -CompilerSet efm=%f:\ %t:\ %l:\ %c:\ %m,%f:\ %t:\ %l:\ %m diff --git a/bundle/compiler_pylint/readme.txt b/bundle/compiler_pylint/readme.txt deleted file mode 100644 index 0ce4757..0000000 --- a/bundle/compiler_pylint/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ -Simple pylint compiler for Vim. - -Installation: -Place bin/pylint_parseable.py into your path (/usr/local/bin or whenever) and -compiler/pylint.vim under ~/.vim/compiler. diff --git a/bundle/dirdiff/plugin/DirDiff.vim b/bundle/dirdiff/plugin/DirDiff.vim deleted file mode 100644 index 9312255..0000000 --- a/bundle/dirdiff/plugin/DirDiff.vim +++ /dev/null @@ -1,1115 +0,0 @@ -" -*- vim -*- -" FILE: "/home/wlee/.vim/plugin/DirDiff.vim" {{{ -" LAST MODIFICATION: "Fri, 29 Jul 2011 08:30:07 -0500 (wlee)" -" HEADER MAINTAINED BY: N/A -" VERSION: 1.1.4 -" (C) 2001-2011 by William Lee, -" }}} - - -" PURPOSE: {{{ -" - Diffing a directory recursively and enable easy merging, copying and -" deleting of files and directories. -" -" REQUIREMENTS: -" - Make sure you have GNU diff in your path on Unix and Windows. I only -" tested this on cygwin's version on Windows. If you have a diff that -" doesn't support -x or -I flag, do not set variable g:DirDiffExcludes and -" g:DirDiffIgnore to "". It should still work. -" - On Windows, you need to have "xcopy", "copy", "del", and "rd" in your -" path. -" - On Unix, you need to have "rm" and "cp" in your path. -" -" USAGE: -" Put this file in your ~/.vim/plugin -" -" Doing the following will generate a diff window. -" -" :DirDiff -" e.g. -" :DirDiff ../something/dir1 /usr/bin/somethingelse/dir2 -" -" The following commands can be used inside the diff window: -" 'Enter','o' - Diff open: open the diff file(s) where your cursor is at -" 's' - Synchronize the current diff. You can also select -" a range (through visual) and press 's' to synchronize differences -" across a range. -" -" - There are 6 Options you can choose when you hit 's': -" 1. A -> B -" Copy A to overwrite B -" If A's file actually points to a directory, it'll copy it to B -" recursively. -" 2. B -> A -" Copy B to overwrite A -" If B's file actually points to a directory, it'll copy it to A -" recursively. -" 3. Always A -" For the rest of the items that you've selected, -" synchronize like (1). -" 4. Always B -" For the rest of the items that you've selected, -" synchronize like (2). -" 5. Skip -" Skip this diff entry. -" 6. Cancel -" Quit the loop and exit. -" -" 'u' - Diff update: update the diff window -" 'x' - Sets the exclude pattern, separated by ',' -" 'i' - Sets the ignore pattern, separated by ',' -" 'a' - Sets additional arguments for diff, eg. -w to ignore white space, -" etc. -" 'q' - Quit DirDiff -" -" The following comamnds can be used in the Vim diff mode -" \dg - Diff get: maps to :diffget -" \dp - Diff put: maps to :diffput -" \dj - Diff next: (think j for down) -" \dk - Diff previous: (think k for up) -" -" You can set the following DirDiff variables. You can add the following -" "let" lines in your .vimrc file. -" -" Sets default exclude pattern: -" let g:DirDiffExcludes = "CVS,*.class,*.exe,.*.swp" -" -" Sets default ignore pattern: -" let g:DirDiffIgnore = "Id:,Revision:,Date:" -" -" If DirDiffSort is set to 1, sorts the diff lines. -" let g:DirDiffSort = 1 -" -" Sets the diff window (bottom window) height (rows) -" let g:DirDiffWindowSize = 14 -" -" Ignore case during diff -" let g:DirDiffIgnoreCase = 0 -" -" Dynamically figure out the diff text. If you are using and i18n version -" of diff, this will try to get the specific diff text during runtime. It's -" turned off by default. If you are always targetting a specific version of -" diff, you can turn this off and set the DirDiffText* variables -" accordingly. -" let g:DirDiffDynamicDiffText = 0 -" -" String used for the English equivalent "Files " -" let g:DirDiffTextFiles = "Files " - -" String used for the English equivalent " and " -" let g:DirDiffTextAnd = " and " -" -" String used for the English equivalent " differ") -" let g:DirDiffTextDiffer = " differ" -" -" String used for the English equivalent "Only in ") -" let g:DirDiffTextOnlyIn = "Only in " -" -" NOTES: -" This script can copy and remove your files. This can be powerful (or too -" powerful) at times. Please do not blame me if you use this and -" disintegrate your hard work. Be warned! -" -" CREDITS: -" -" Please mail any comment/suggestion/patch to -" William Lee -" -" LICENSE: -" Copyright (c) 2001-2011 William Lee -" All rights reserved. -" -" Redistribution and use in source and binary forms, with or without -" modification, are permitted provided that the following conditions are -" met: -" -" * Redistributions of source code must retain the above copyright -" notice, this list of conditions and the following disclaimer. -" * Redistributions in binary form must reproduce the above copyright -" notice, this list of conditions and the following disclaimer in the -" documentation and/or other materials provided with the distribution. -" * Neither the name William Lee nor the names of its contributors may be -" used to endorse or promote products derived from this software without -" specific prior written permission. -" -" THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -" WILLIAM LEE AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -" -" THANKS: -" -" Florian Delizy for the i18n diff patch -" Robert Webb for his sorting function -" Wu WeiWei for his Chinese diff patch -" Salman Halim, Yosuke Kimura, and others for their suggestions -" -" HISTORY: -" 1.1.4 - Fixed split windows problems caused by some .vimrc settings. -" 1.1.3 - Applied the patch to 1.1.2 by Wu WeiWei in order to make diff -" that's localized in Chinese work. -" 1.1.2 - Applied the patch to 1.1.0 instead of 1.0.2. Please do not use -" 1.1.1 -" 1.1.1 - Make it work with filename with spaces. (Thanks to Atte Kojo) -" 1.1.0 - Added support for i18n (tested on a French version for now only). -" Can dynamically figure out the diff strings output by diff. -" 1.0.2 - Fixed a small typo bug in the quit function. -" 1.0.1 - Ensure the path separator is correct when running in W2K -" 1.0 - Fixed a bug that flags errors if the user use the nowrapscan option. -" Implements a quit function that exit the diff windows. -" 0.94 - Fixed a bug where the diff will give incorrect A and B file due to -" similarity of directory names. Allow you to modify the diff -" argument. -" 0.93 - Opps, messed up the key mapping usage. -" 0.92 - Doesn't use n and p mappings since it confuses the search next key -" mapping and causes some bugs. Minor modification to change the -" exclude and ignore pattern. -" 0.91 - Clean up delete routine. -" - Added interactive mode. -" - Added multiple entries of exclude and ignore pattern. -" - Custom configuration through global variables. -" - Change exclude and ignore patterns on the fly. -" -" 0.9 - Reorganization of the interface. Much simplier dialog for -" synchronization. Support for range synchronization option (REALLY -" powerful) -" - Removed unnecessary key bindings. All key bindings are local to -" the diff window. (except for the \dg and \dp) -" -" 0.8 - Added syntax highlighting. -" - Enter and double-click in buffer opens diff. -" - Removed dependency on "sort" -" - Removed usage of registry and marker -" - Code cleanup and some bug fixes -" - On Windows the diff command will use the -i flag instead -" - Changed mappings for diff next (\dj) and diff previous (\dk) -" - Added mappings for vim diff mode (\dg, \dp) -" -" 0.7 Initial Release -" -" }}} - -" Public Interface: -command! -nargs=* -complete=dir DirDiff call DirDiff () -command! -nargs=0 DirDiffOpen call DirDiffOpen () -command! -nargs=0 DirDiffNext call DirDiffNext () -command! -nargs=0 DirDiffPrev call DirDiffPrev () -command! -nargs=0 DirDiffUpdate call DirDiffUpdate () -command! -nargs=0 DirDiffQuit call DirDiffQuit () - -if !hasmapto('DirDiffGet') - map dg DirDiffGet -endif -if !hasmapto('DirDiffPut') - map dp DirDiffPut -endif -if !hasmapto('DirDiffNext') - map dj DirDiffNext -endif -if !hasmapto('DirDiffPrev') - map dk DirDiffPrev -endif - -" Global Maps: -map ', 'nWb') - \ && 0 < searchpair(js, '', '', 'nW') - " we're inside javascript - - if getline(lnum) !~ js && getline(a:lnum) !~ '' - if restore_ic == 0 - setlocal noic - endif - return GetJsIndent(a:lnum) - endif - endif - - if getline(lnum) =~ '\c' - " line before the current line a:lnum contains - " a closing . --> search for line before - " starting
 to restore the indent.
-	let preline = prevnonblank(search('\c
', 'bW') - 1)
-	if preline > 0
-	    if restore_ic == 0
-	      setlocal noic
-	    endif
-	    return indent(preline)
-	endif
-    endif
-
-    let ind = HtmlIndentSum(lnum, -1)
-    let ind = ind + HtmlIndentSum(a:lnum, 0)
-
-    if restore_ic == 0
-	setlocal noic
-    endif
-
-    return indent(lnum) + (&sw * ind)
-endfun
-
-let &cpo = s:cpo_save
-unlet s:cpo_save
-
-" [-- EOF /indent/html.vim --]
diff --git a/bundle/indent_javascript/indent/javascript.vim b/bundle/indent_javascript/indent/javascript.vim
deleted file mode 100644
index b0e190c..0000000
--- a/bundle/indent_javascript/indent/javascript.vim
+++ /dev/null
@@ -1,407 +0,0 @@
-" Vim indent file Language:		JavaScript
-" Author: 		Preston Koprivica (pkopriv2@gmail.com)	
-" URL:
-" Last Change: 	April 30, 2010
-
-" 0. Standard Stuff
-" =================
-
-" Only load one indent script per buffer
-if exists('b:did_indent')
-  finish
-endif
-
-let b:did_indent = 1
-
-" Set the global log variable 1 = logging enabled, 0 = logging disabled
-if !exists("g:js_indent_log")
-	let g:js_indent_log = 0
-endif
-
-setlocal indentexpr=GetJsIndent(v:lnum)
-setlocal indentkeys=
-
-
-setlocal cindent
-setlocal autoindent
-
-
-" 1. Variables
-" ============
-
-" Inline comments (for anchoring other statements)
-let s:js_mid_line_comment = '\s*\(\/\*.*\*\/\)*\s*'
-let s:js_end_line_comment = s:js_mid_line_comment . '\s*\(//.*\)*'
-let s:js_line_comment = s:js_end_line_comment
-
-" Comment/String Syntax Key
-let s:syn_comment = '\(Comment\|String\|Regexp\)'
-
-
-" 2. Aux. Functions
-" =================
-
-" = Method: IsInComment
-"
-" Determines whether the specified position is contained in a comment. "Note:
-" This depends on a 
-function! s:IsInComment(lnum, cnum)
-	return synIDattr(synID(a:lnum, a:cnum, 1), 'name') =~? s:syn_comment
-endfunction
-
-
-" = Method: IsComment
-" 
-" Determines whether a line is a comment or not.
-function! s:IsComment(lnum)
-	let line = getline(a:lnum)
-
-	return s:IsInComment(a:lnum, 1) && s:IsInComment(a:lnum, strlen(line)) "Doesn't absolutely work.  Only Probably!
-endfunction
-
-
-" = Method: GetNonCommentLine
-"
-" Grabs the nearest non-commented line
-function! s:GetNonCommentLine(lnum)
-	let lnum = prevnonblank(a:lnum)
-
-	while lnum > 0
-		if s:IsComment(lnum)
-			let lnum = prevnonblank(lnum - 1)
-		else
-			return lnum
-		endif
-	endwhile
-
-	return lnum
-endfunction
-
-" = Method: SearchForPair
-"
-" Returns the beginning tag of a given pair starting from the given line.
-function! s:SearchForPair(lnum, beg, end)
-	" Save the cursor position.
-	let curpos = getpos(".")
-
-	" Set the cursor position to the beginning of the line (default
-	" behavior when using ==)
-	call cursor(a:lnum, 0)
-
-	" Search for the opening tag
-	let mnum = searchpair(a:beg, '', a:end, 'bW', 
-				\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? s:syn_comment' )
-
-	"Restore the cursor position
-	call cursor(curpos)
-	
-	" Finally, return the matched line number
-	return mnum
-endfunction
-
-
-" Object Helpers
-" ==============
-let s:object_beg = '{[^}]*' . s:js_end_line_comment . '$'
-let s:object_end = '^' . s:js_mid_line_comment . '}[;,]\='
-
-
-function! s:IsObjectBeg(line)
-	return a:line =~ s:object_beg
-endfunction
-
-function! s:IsObjectEnd(line)
-	return a:line =~ s:object_end
-endfunction 
-
-function! s:GetObjectBeg(lnum)
-	return s:SearchForPair(a:lnum, '{', '}')
-endfunction
-
-
-" Array Helpers
-" ==============
-let s:array_beg = '\[[^\]]*' . s:js_end_line_comment . '$'
-let s:array_end = '^' . s:js_mid_line_comment . '[^\[]*\][;,]*' . s:js_end_line_comment . '$'
-
-
-function! s:IsArrayBeg(line)
-	return a:line =~ s:array_beg
-endfunction
-
-function! s:IsArrayEnd(line)
-	return a:line =~ s:array_end
-endfunction 
-
-function! s:GetArrayBeg(lnum)
-	return s:SearchForPair(a:lnum, '\[', '\]')
-endfunction
-
-
-" MultiLine Declaration/Invocation Helpers
-" ========================================
-let s:paren_beg = '([^)]*' . s:js_end_line_comment . '$'
-let s:paren_end = '^' . s:js_mid_line_comment . '[^(]*)[;,]*'
-
-function! s:IsParenBeg(line)
-	return a:line =~ s:paren_beg
-endfunction
-
-function! s:IsParenEnd(line)
-	return a:line =~ s:paren_end
-endfunction 
-
-function! s:GetParenBeg(lnum)
-	return s:SearchForPair(a:lnum, '(', ')')
-endfunction
-
-
-
-" Continuation Helpers
-" ====================
-let s:continuation = '\(+\|\\\)\{1}' . s:js_line_comment . '$' 
-
-function! s:IsContinuationLine(line)
-	return a:line =~ s:continuation
-endfunction
-
-function! s:GetContinuationBegin(lnum) 
-	let cur = a:lnum
-	
-	while s:IsContinuationLine(getline(cur)) 
-		let cur -= 1
-	endwhile
-	
-	return cur + 1
-endfunction 
-
-
-" Switch Helpers
-" ==============
-let s:switch_beg_next_line = 'switch\s*(.*)\s*' . s:js_mid_line_comment . s:js_end_line_comment . '$'
-let s:switch_beg_same_line = 'switch\s*(.*)\s*' . s:js_mid_line_comment . '{\s*' . s:js_line_comment . '$'
-let s:switch_mid = '^.*\(case.*\|default\)\s*:\s*' 
-
-function! s:IsSwitchBeginNextLine(line) 
-	return a:line =~ s:switch_beg_next_line 
-endfunction
-
-function! s:IsSwitchBeginSameLine(line) 
-	return a:line =~ s:switch_beg_same_line 
-endfunction
-
-function! s:IsSwitchMid(line)
-	return a:line =~ s:switch_mid
-endfunction 
-
-
-" Control Helpers
-" ===============
-let s:cntrl_beg_keys = '\(\(\(if\|for\|with\|while\)\s*(.*)\)\|\(try\|do\)\)\s*'
-let s:cntrl_mid_keys = '\(\(\(else\s*if\|catch\)\s*(.*)\)\|\(finally\|else\)\)\s*'
-
-let s:cntrl_beg = s:cntrl_beg_keys . s:js_end_line_comment . '$' 
-let s:cntrl_mid = s:cntrl_mid_keys . s:js_end_line_comment . '$' 
-
-let s:cntrl_end = '\(while\s*(.*)\)\s*;\=\s*' . s:js_end_line_comment . '$'
-
-function! s:IsControlBeg(line)
-	return a:line =~ s:cntrl_beg
-endfunction
-
-function! s:IsControlMid(line)
-	return a:line =~ s:cntrl_mid
-endfunction
-
-function! s:IsControlMidStrict(line)
-	return a:line =~ s:cntrl_mid
-endfunction
-
-function! s:IsControlEnd(line)
-	return a:line =~ s:cntrl_end
-endfunction
-
-" = Method: Log
-"
-" Logs a message to the stdout.
-function! s:Log(msg)
-	if g:js_indent_log
-		echo "LOG: " . a:msg
-	endif
-endfunction
-
-
-" 3. Indenter
-" ===========
-function! GetJsIndent(lnum)
-	" Grab the first non-comment line prior to this line
-	let pnum = s:GetNonCommentLine(a:lnum-1)
-
-	" First line, start at indent = 0
-	if pnum == 0
-		call s:Log("No, noncomment lines prior to the current line.")
-		return 0
-	endif
-
-	" Grab the second non-comment line prior to this line
-	let ppnum = s:GetNonCommentLine(pnum-1)
-
-	call s:Log("Line: " . a:lnum)
-	call s:Log("PLine: " . pnum)
-	call s:Log("PPLine: " . ppnum)
-
-	" Grab the lines themselves.
-	let line = getline(a:lnum)
-	let pline = getline(pnum)
-	let ppline = getline(ppnum)
-
-	" Determine the current level of indentation
-	let ind = indent(pnum)
-
-
-	" Handle: Object Closers (ie }) 
-	" =============================
-	if s:IsObjectEnd(line) && !s:IsComment(a:lnum)
-		call s:Log("Line matched object end")
-
-		let obeg = s:GetObjectBeg(a:lnum)
-		let oind = indent(obeg)
-		let oline = getline(obeg)
-
-		call s:Log("The object beg was found at: " . obeg)
-		return oind
-	endif
-
-	if s:IsObjectBeg(pline) 
-		call s:Log("Pline matched object beg")
-		return ind + &sw 
-	endif
-
-
-	" Handle: Array Closer (ie ])
-	" ============================
-	if s:IsArrayEnd(line) && !s:IsComment(a:lnum)
-		call s:Log("Line matched array end")
-
-		let abeg = s:GetArrayBeg(a:lnum)
-		let aind = indent(abeg)
-
-		call s:Log("The array beg was found at: " . abeg)
-		return aind
-	endif
-
-	if s:IsArrayBeg(pline) 
-		call s:Log("Pline matched array beg")
-		return ind + &sw 
-	endif
-
-	" Handle: Parens
-	" ==============
-	if s:IsParenEnd(line) && !s:IsComment(a:lnum)
-		call s:Log("Line matched paren end")
-
-		let abeg = s:GetParenBeg(a:lnum)
-		let aind = indent(abeg)
-
-		call s:Log("The paren beg was found at: " . abeg)
-		return aind
-	endif
-
-	if s:IsParenBeg(pline) 
-		call s:Log("Pline matched paren beg")
-		return ind + &sw 
-	endif
-
-
-	" Handle: Continuation Lines. 
-	" ========================================================
-	if s:IsContinuationLine(pline) 
-		call s:Log('Pline is a continuation line.')
-
-		let cbeg = s:GetContinuationBegin(pnum)
-		let cind = indent(cbeg)
-
-		call s:Log('The continuation block begin found at: ' . cbeg)
-		return cind + &sw
-	endif
-
-	if s:IsContinuationLine(ppline)
-		call s:Log('PPline was a continuation line but pline wasnt.')
-		return ind - &sw
-	endif
-
-	" Handle: Switch Control Blocks
-	" =============================
-	if s:IsSwitchMid(pline) 
-		call s:Log("PLine matched switch cntrl mid")
-		if s:IsSwitchMid(line) || s:IsObjectEnd(line)
-			call s:Log("Line matched a cntrl mid")
-			return ind
-		else
-			call s:Log("Line didnt match a cntrl mid")
-			return ind + &sw
-		endif 
-	endif
-
-	if s:IsSwitchMid(line)
-		call s:Log("Line matched switch cntrl mid")
-		return ind - &sw
-	endif
-
-	
-	" Handle: Single Line Control Blocks
-	" ==================================
-	if s:IsControlBeg(pline)
-		call s:Log("Pline matched control beginning")
-		
-		if s:IsControlMid(line)
-			call s:Log("Line matched a control mid")
-			return ind
-		elseif line =~ '^\s*{\s*$'
-			call s:Log("Line matched an object beg")
-			return ind
-		else
-			return ind + &sw
-		endif
-		
-	endif
-
-	if s:IsControlMid(pline)
-		call s:Log("Pline matched a control mid")
-
-		if s:IsControlMid(line)
-			call s:Log("Line matched a control mid")
-			return ind
-		elseif s:IsObjectBeg(line)
-			call s:Log("Line matched an object beg")
-			return ind
-		else
-			call s:Log("Line didn't match a control mid or object beg."
-			return ind + &sw
-		endif
-	endif
-
-	if s:IsControlMid(line)
-		call s:Log("Line matched a control mid.")
-
-		if s:IsControlEnd(pline) || s:IsObjectEnd(pline)
-			call s:Log("PLine matched control end")
-			return ind
-		else
-			call s:Log("Pline didn't match object end")
-			return ind - &sw
-		endif
-	endif
-
-
-	if ( s:IsControlBeg(ppline) || s:IsControlMid(ppline) ) &&
-			\ !s:IsObjectBeg(pline) && !s:IsObjectEnd(pline)
-		call s:Log("PPLine matched single line control beg or mid")
-		return ind - &sw
-	endif
-
-	" Handle: No matches
-	" ==================
-	"call s:Log("Line didn't match anything.  Retaining indent")
-	return ind
-endfunction
diff --git a/bundle/indent_javascript/test.html b/bundle/indent_javascript/test.html
deleted file mode 100644
index b475bc2..0000000
--- a/bundle/indent_javascript/test.html
+++ /dev/null
@@ -1,399 +0,0 @@
-
-
-	
-		
-
-		Test
-	
-	
-		
-	
-
diff --git a/bundle/indent_mako/indent/mako.vim b/bundle/indent_mako/indent/mako.vim
deleted file mode 100644
index bd85ac5..0000000
--- a/bundle/indent_mako/indent/mako.vim
+++ /dev/null
@@ -1,353 +0,0 @@
-" Vim indent file
-" Language: Mako
-" Author: Scott Torborg 
-" Version: 0.4
-" License: Do What The Fuck You Want To Public License (WTFPL)
-"
-" ---------------------------------------------------------------------------
-"
-"            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-"                    Version 2, December 2004
-"
-" Copyright (C) 2004 Sam Hocevar 
-"
-" Everyone is permitted to copy and distribute verbatim or modified
-" copies of this license document, and changing it is allowed as long
-" as the name is changed.
-"
-"            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-"   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-"
-"  0. You just DO WHAT THE FUCK YOU WANT TO.
-"
-" ---------------------------------------------------------------------------
-"
-" This script does more useful indenting for Mako HTML templates. It indents
-" inside of control blocks, defs, etc. Note that this indenting style will
-" sacrifice readability of the output text for the sake of readability of the
-" template.
-"
-" We'll use HTML indenting globally, python inside <% %> blocks. Inspired by
-" the excellent PHP + HTML indentation files such as php.vim by Pim Snel.
-"
-" Changelog:
-"       0.4 - 5 March 2010
-"       - Added license information
-"       0.3 - 15 September 2009
-"       - Added explicit indenting for ## comments, fixed unindenting count,
-"       thanks to Mike Lewis (@MikeRLewis) for this
-"       0.2 - 15 June 2009
-"       - Fixed issue where opening and closing mako tags on the same line
-"       would cause incorrect indenting
-"       0.1 - 06 June 2009
-"       - Initial public release of mako indent file
-
-let sw=2    " default shiftwidth of 2 spaces
-
-if exists("b:did_indent")
-    finish
-endif
-let b:did_indent = 1
-
-setlocal nosmartindent
-setlocal noautoindent
-setlocal nocindent
-setlocal nolisp
-
-setlocal indentexpr=GetMakoIndent()
-setlocal indentkeys+=*,<>>,,end,:
-
-" Only define the function once.
-if exists("*GetMakoIndent")
-    finish
-endif
-
-if exists('g:html_indent_tags')
-    unlet g:html_indent_tags
-endif
-
-function IsInsidePythonBlock(startline)
-    " Loop until we get a line that's either <% or %>
-    let lnum = a:startline
-    while getline(lnum) !~ '\(%>\|<%\)$' && lnum > 0
-        let lnum = lnum - 1
-    endwhile
-
-    " lnum points to the last control. If it's a <% then we're inside an
-    " embedded python block, otherwise we're not.
-    return getline(lnum) =~ '<%$'
-endfunction
-
-function GetMakoIndent()
-    " Find a non-empty line above the current line
-    let lnum = prevnonblank(v:lnum - 1)
-    
-    " Hit the start of the file, use zero indent.
-    if lnum == 0
-        return 0
-    endif
-    
-    let line = getline(lnum)        " last line
-    let cline = getline(v:lnum)     " current line
-    let pline = getline(lnum - 1)   " previous to last line
-    let ind = indent(lnum)
-	if line =~ '^\s*##'
-		return indent(lnum)
-	end
-    
-    let restore_ic=&ic
-    let &ic=1 " ignore case
-    
-    let ind = HtmlIndentSum(lnum, -1)
-	let ind = HtmlIndentSum(lnum, -1)
-	let ind = ind + HtmlIndentSum(v:lnum, 0)
-    
-	let &ic=restore_ic
-	
-	let ind = indent(lnum) + (&sw * ind)
-    
-    " Indent after %anything: or <%anything NOT ending in />
-    if line =~ '^\s*%.*:\s*$'
-        let ind = ind + &sw
-    endif
-    
-    " Unindent before %end* or $'
-        let scanlnum = lnum
-        " Scan backwards until we find the beginning of this python block.
-        while getline(scanlnum) !~ '<%$' && scanlnum > 0
-            let scanlnum = scanlnum - 1
-        endwhile
-        let ind = indent(scanlnum)
-    endif
-
-    " If we're inside a python block and the previous line ends in a colon,
-    " indent.
-    if IsInsidePythonBlock(lnum - 1)
-        " Indent after :
-        if line =~ '\:$'
-            let ind = ind + &sw
-        endif
-    endif
-    
-    return ind
-endfunction
-
-
-" [-- helper function to assemble tag list --]
-fun! HtmlIndentPush(tag)
-    if exists('g:html_indent_tags')
-        let g:html_indent_tags = g:html_indent_tags.'\|'.a:tag
-    else
-        let g:html_indent_tags = a:tag
-    endif
-endfun
-
-fun! MakoIndentPush(tag)
-    if exists('g:mako_indent_tags')
-        let g:mako_indent_tags = g:mako_indent_tags.'\|'.a:tag
-    else
-        let g:mako_indent_tags = a:tag
-    endif
-endfun
-
-" [--  --]
-call HtmlIndentPush('a')
-call HtmlIndentPush('abbr')
-call HtmlIndentPush('acronym')
-call HtmlIndentPush('address')
-call HtmlIndentPush('b')
-call HtmlIndentPush('bdo')
-call HtmlIndentPush('big')
-call HtmlIndentPush('blockquote')
-call HtmlIndentPush('button')
-call HtmlIndentPush('caption')
-call HtmlIndentPush('center')
-call HtmlIndentPush('cite')
-call HtmlIndentPush('code')
-call HtmlIndentPush('colgroup')
-call HtmlIndentPush('del')
-call HtmlIndentPush('dfn')
-call HtmlIndentPush('dir')
-call HtmlIndentPush('div')
-call HtmlIndentPush('dl')
-call HtmlIndentPush('em')
-call HtmlIndentPush('fieldset')
-call HtmlIndentPush('font')
-call HtmlIndentPush('form')
-call HtmlIndentPush('frameset')
-call HtmlIndentPush('h1')
-call HtmlIndentPush('h2')
-call HtmlIndentPush('h3')
-call HtmlIndentPush('h4')
-call HtmlIndentPush('h5')
-call HtmlIndentPush('h6')
-call HtmlIndentPush('i')
-call HtmlIndentPush('iframe')
-call HtmlIndentPush('ins')
-call HtmlIndentPush('kbd')
-call HtmlIndentPush('label')
-call HtmlIndentPush('legend')
-call HtmlIndentPush('map')
-call HtmlIndentPush('menu')
-call HtmlIndentPush('noframes')
-call HtmlIndentPush('noscript')
-call HtmlIndentPush('object')
-call HtmlIndentPush('ol')
-call HtmlIndentPush('optgroup')
-call HtmlIndentPush('pre')
-call HtmlIndentPush('q')
-call HtmlIndentPush('s')
-call HtmlIndentPush('samp')
-call HtmlIndentPush('script')
-call HtmlIndentPush('select')
-call HtmlIndentPush('small')
-call HtmlIndentPush('span')
-call HtmlIndentPush('strong')
-call HtmlIndentPush('style')
-call HtmlIndentPush('sub')
-call HtmlIndentPush('sup')
-call HtmlIndentPush('table')
-call HtmlIndentPush('textarea')
-call HtmlIndentPush('title')
-call HtmlIndentPush('tt')
-call HtmlIndentPush('u')
-call HtmlIndentPush('ul')
-call HtmlIndentPush('var')
-
-" For some reason the default HTML indentation script doesn't consider these
-" elements to be worthy of indentation.
-call HtmlIndentPush('p')
-call HtmlIndentPush('dt')
-call HtmlIndentPush('dd')
-
-
-" [--  --]
-if !exists('g:html_indent_strict')
-    call HtmlIndentPush('body')
-    call HtmlIndentPush('head')
-    call HtmlIndentPush('html')
-    call HtmlIndentPush('tbody')
-endif
-
-
-" [--  --]
-if !exists('g:html_indent_strict_table')
-    call HtmlIndentPush('th')
-    call HtmlIndentPush('td')
-    call HtmlIndentPush('tr')
-    call HtmlIndentPush('tfoot')
-    call HtmlIndentPush('thead')
-endif
-
-" [--  --]
-call MakoIndentPush('%def')
-call MakoIndentPush('%call')
-call MakoIndentPush('%doc')
-call MakoIndentPush('%text')
-call MakoIndentPush('%.\+:.\+')
-
-delfun HtmlIndentPush
-delfun MakoIndentPush
-
-set cpo-=C
-
-" [-- get number of regex matches in a string --]
-fun! MatchCount(expr, pat)
-    let mpos = 0
-    let mcount = 0
-    let expr = a:expr
-    while (mpos > -1)
-        let mend = matchend(expr, a:pat)
-        if mend > -1
-            let mcount = mcount + 1
-        endif
-        if mend == mpos
-            let mpos = mpos + 1
-        else
-            let mpos = mend
-        endif
-        let expr = strpart(expr, mpos)
-    endwhile
-    return mcount
-endfun
-
-" [-- count indent-increasing tags of line a:lnum --]
-fun! HtmlIndentOpen(lnum)
-    let s = substitute('x'.getline(a:lnum),
-    \ '.\{-}\(\(<\)\('.g:html_indent_tags.'\)\>\)', "\1", 'g')
-    let s = substitute(s, "[^\1].*$", '', '')
-    return strlen(s)
-endfun
-
-" [-- count indent-decreasing tags of line a:lnum --]
-fun! HtmlIndentClose(lnum)
-    let s = substitute('x'.getline(a:lnum),
-    \ '.\{-}\(\(<\)/\('.g:html_indent_tags.'\)\>>\)', "\1", 'g')
-    let s = substitute(s, "[^\1].*$", '', '')
-    return strlen(s)
-endfun
-
-" [-- count indent-increasing mako tags of line a:lnum --]
-fun! MakoIndentOpen(lnum)
-    let s = substitute('x'.getline(a:lnum),
-    \ '.\{-}\(\(<\)\('.g:mako_indent_tags.'\)\>\)', "\1", 'g')
-    let s = substitute(s, "[^\1].*$", '', '')
-    return strlen(s)
-endfun
-
-" [-- count indent-decreasing mako tags of line a:lnum --]
-fun! MakoIndentClose(lnum)
-    let mcount = MatchCount(getline(a:lnum), '')
-    let mcount = mcount + MatchCount(getline(a:lnum), '<\('.g:mako_indent_tags.'\)[^>]*/>')
-    return mcount
-endfun
-
-" [-- count indent-increasing '{' of (java|css) line a:lnum --]
-fun! HtmlIndentOpenAlt(lnum)
-    return strlen(substitute(getline(a:lnum), '[^{]\+', '', 'g'))
-endfun
-
-" [-- count indent-decreasing '}' of (java|css) line a:lnum --]
-fun! HtmlIndentCloseAlt(lnum)
-    return strlen(substitute(getline(a:lnum), '[^}]\+', '', 'g'))
-endfun
-
-" [-- return the sum of indents respecting the syntax of a:lnum --]
-fun! HtmlIndentSum(lnum, style)
-    let open = HtmlIndentOpen(a:lnum) + MakoIndentOpen(a:lnum)
-    let close = HtmlIndentClose(a:lnum) + MakoIndentClose(a:lnum)
-    if a:style == match(getline(a:lnum), '^\s*HtmlIndentOpenAlt(a:lnum) - HtmlIndentCloseAlt(a:lnum)
-	endif
-    endif
-    return 0
-endfun
-
-" vim: set ts=4 sw=4:
diff --git a/bundle/indent_python/indent/python.vim b/bundle/indent_python/indent/python.vim
deleted file mode 100644
index e8c551b..0000000
--- a/bundle/indent_python/indent/python.vim
+++ /dev/null
@@ -1,262 +0,0 @@
-" Vim indent file
-" Language:		Python
-" Maintainer:		Bram Moolenaar 
-" Original Author:	David Bustos 
-" Last Change:		2008 Mar 14
-" Changed my Jason Casden to try to prettify the line continuations
-
-" Only load this indent file when no other was loaded.
-if exists("b:did_indent")
-  finish
-endif
-let b:did_indent = 1
-let g:linecont = 0
-
-" Some preliminary settings
-setlocal nolisp		" Make sure lisp indenting doesn't supersede us
-setlocal autoindent	" indentexpr isn't much help otherwise
-
-setlocal indentexpr=GetPythonIndent(v:lnum)
-setlocal indentkeys+=<:>,=elif,=except
-
-" Only define the function once.
-if exists("*GetPythonIndent")
-  finish
-endif
-
-" Come here when loading the script the first time.
-
-let s:maxoff = 50	" maximum number of lines to look backwards for ()
-
-
-function GetPythonParenContinue(lnum3)
-  call cursor(a:lnum3,1)
-
-  
-  "JMC
-  let pnum2 = searchpair('(\|{\|\[', '', ')\|}\|\]', 'rnbW',
-        \ "line('.') < " . (a:lnum3 - s:maxoff) . " ? dummy :"
-        \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
-        \ . " =~ '\\(Comment\\|String\\)$'")
-
-  if pnum2 > 0
-    let g:linecont = 1
-    return pnum2
-  else
-    return a:lnum3
-  endif
-
-endfunction
-
-
-function GetPythonExplicitContinue(lnum2)
-
-  let i = 1
-  let ret_lnum = a:lnum2
-
-  while (getline(a:lnum2 - i) =~ '\\\s*$')
-    let g:linecont = 1
-    let ret_lnum = a:lnum2 - i
-    let i = i + 1
-  endwhile
-
-  return ret_lnum
-
-endfunction
-
-function GetPythonIndent(lnum)
-
-"  " If this line is explicitly joined: If the previous line was also joined,
-  "" line it up with that one, otherwise add two 'shiftwidth'
-  "if getline(a:lnum - 1) =~ '\\$'
-    "if a:lnum > 1 && getline(a:lnum - 2) =~ '\\\s*$'
-      "return indent(a:lnum - 1)
-    "endif
-    "return indent(a:lnum - 1) + (exists("g:pyindent_continue") ? eval(g:pyindent_continue) : (&sw * 2))
-  "endif
-
-  " If the start of the line is in a string don't change the indent.
-  if has('syntax_items')
-	\ && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$"
-    return -1
-  endif
-
-  " Search backwards for the previous non-empty line.
-  let plnum = prevnonblank(v:lnum - 1)
-
-  if plnum == 0
-    " This is the first non-empty line, use zero indent.
-    return 0
-  endif
-
-  " If the previous line is inside parenthesis, use the indent of the starting
-  " line.
-  " Trick: use the non-existing "dummy" variable to break out of the loop when
-  " going too far back.
-  call cursor(plnum, 1)
-
-  "JMC
-"  let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'rnbW',
-        "\ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
-        "\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
-        "\ . " =~ '\\(Comment\\|String\\)$'")
-        let parlnumcomp = 0
-        let parlnum = plnum
-        while (parlnumcomp != parlnum)
-          let parlnumcomp = parlnum
-          let parlnum = GetPythonParenContinue(parlnum)
-          let parlnum = GetPythonExplicitContinue(parlnum)
-        endwhile
-  " If this line is explicitly joined: If the previous line was also joined,
-  " line it up with that one, otherwise add two 'shiftwidth'
-  if getline(plnum) =~ '\\$'
-    return indent(parlnum) + (&sw * 2)
-  else
-    let plindent = indent(parlnum)
-  endif
-
-    let plnumstart = parlnum
-
-  " When inside parenthesis: If at the first line below the parenthesis add
-  " two 'shiftwidth', otherwise same as previous line.
-  " i = (a
-  "       + b
-  "       + c)
-  call cursor(a:lnum, 1)
-  " JMC, changed to searchpairpos
-  let [p,parcol] = searchpairpos('(\|{\|\[', '', ')\|}\|\]', 'bW',
-	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
-	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
-	  \ . " =~ '\\(Comment\\|String\\)$'")
-  if p > 0
-    "if p == plnum
-      " JMC
-"      let [pp,parcol2] = searchpairpos('(\|{\|\[', '', ')\|}\|\]', 'bW',
-	  "\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
-	  "\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
-	  "\ . " =~ '\\(Comment\\|String\\)$'")
-      "if pp > 0
-		"return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : parcol2)
-      "endif
-      
-      " JMC, changed to return column position, unless specifically asked
-      " otherwise
-      "return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (&sw * 2))
-     return (exists("g:pyindent_open_paren") ? indent(p) + eval(g:pyindent_open_paren) : parcol)
-    "endif
-    "if plnumstart == p
-      "return parcol
-    "endif
-    "return plindent
-  endif
-
-
-  " Get the line and remove a trailing comment.
-  " Use syntax highlighting attributes when possible.
-  let pline = getline(plnum)
-  let pline_len = strlen(pline)
-  if has('syntax_items')
-    " If the last character in the line is a comment, do a binary search for
-    " the start of the comment.  synID() is slow, a linear search would take
-    " too long on a long line.
-    if synIDattr(synID(plnum, pline_len, 1), "name") =~ "Comment$"
-      let min = 1
-      let max = pline_len
-      while min < max
-	let col = (min + max) / 2
-	if synIDattr(synID(plnum, col, 1), "name") =~ "Comment$"
-	  let max = col
-	else
-	  let min = col + 1
-	endif
-      endwhile
-      let pline = strpart(pline, 0, min - 1)
-    endif
-  else
-    let col = 0
-    while col < pline_len
-      if pline[col] == '#'
-	let pline = strpart(pline, 0, col)
-	break
-      endif
-      let col = col + 1
-    endwhile
-  endif
-
-  " If the previous line ended with a colon, indent this line
-  if pline =~ ':\s*$'
-    " commented because it might not be a good idea:
-    " only for new lines
-    " JMC
-    "if (getline(a:lnum) =~ '^\s*$')
-      return plindent + &sw
-    "endif
-  endif
-
-  " If the previous line was a stop-execution statement...
-  if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\)\>'
-    " See if the user has already dedented
-    if indent(a:lnum) > indent(plnum) - &sw
-      " If not, recommend one dedent
-      return indent(plnum) - &sw
-    endif
-    " Otherwise, trust the user
-    return -1
-  endif
-
-  " If the current line begins with a keyword that lines up with "try"
-  if getline(a:lnum) =~ '^\s*\(except\|finally\)\>'
-    let lnum = a:lnum - 1
-    while lnum >= 1
-      if getline(lnum) =~ '^\s*\(try\|except\)\>'
-	let ind = indent(lnum)
-	if ind >= indent(a:lnum)
-	  return -1	" indent is already less than this
-	endif
-	return ind	" line up with previous try or except
-      endif
-      let lnum = lnum - 1
-    endwhile
-    return -1		" no matching "try"!
-  endif
-
-  " If the current line begins with a header keyword, dedent
-  if getline(a:lnum) =~ '^\s*\(elif\|else\)\>'
-
-    " Unless the previous line was a one-liner
-    if getline(plnumstart) =~ '^\s*\(for\|if\|try\)\>'
-      return plindent
-    endif
-
-    " Or the user has already dedented
-    if indent(a:lnum) <= plindent - &sw
-      return -1
-    endif
-
-    return plindent - &sw
-  endif
-
-  " JMC
-  " If the previous line is a continuation
-  " make the next line line up, but only for new lines
-"let curline = getline(a:lnum)
-  if (g:linecont == 1) 
-    if (getline(a:lnum) =~ '^\s*$')
-      return plindent
-  endif
-endif
-
-  " JMC commented
-  " When after a () construct we probably want to go back to the start line.
-  " a = (b
-  "       + c)
-  " here
-  "if parlnum > 0
-    "return plindent
-  "endif
-
-  return -1
-
-endfunction
-
-" vim:sw=2
diff --git a/bundle/jsbeautify/plugin/jsbeautify.vim b/bundle/jsbeautify/plugin/jsbeautify.vim
deleted file mode 100644
index a3231c5..0000000
--- a/bundle/jsbeautify/plugin/jsbeautify.vim
+++ /dev/null
@@ -1,624 +0,0 @@
-if &cp || exists("loaded_jsbeautify")
-    finish
-endif
-let loaded_jsbeautify = 3
-
-
-
-function! s:trim_output()
-	while len(s:output) > 0 && (s:output[len(s:output)-1] == " " || s:output[len(s:output)-1] == s:indent_string)
-		call remove(s:output, -1)
-	endwhile
-endfunction
-
-function! s:print_newline(ignore_repeated) 
-	let s:if_line_flag = 0
-	call s:trim_output()
-	if len(s:output)==0
-		return
-	endif
-	if s:output[len(s:output)-1] != "\n" || !a:ignore_repeated
-		call add(s:output, "\n")
-	endif
-	let index = 0
-	while index < s:indent_level
-		call add(s:output, s:indent_string)
-		let index += 1
-	endwhile
-endfunction
-
-function! s:print_space()
-	let last_output = " "
-	if len(s:output) > 0
-		let last_output = s:output[len(s:output) - 1]
-	endif
-	if last_output != " " && last_output != "\n" && last_output != s:indent_string
-		call add(s:output, " ")
-	endif
-endfunction
-
-function! s:print_token()
-	call add(s:output, s:token_text)
-endfunctio
-
-function! s:indent()
-	let s:indent_level += 1
-endfunction
-
-function! s:unindent()
-	if s:indent_level
-		let s:indent_level -= 1
-	endif
-endfunction
-
-function! s:remove_indent()
-	if len(s:output)>0 && s:output[len(s:output) -1] == s:indent_string
-		call remove(s:output, -1)
-	endif
-endfunction
-
-function! s:set_mode(mode)
-	call add(s:modes, s:current_mode)
-	let s:current_mode = a:mode
-endfunction
-
-function! s:restore_mode()
-	if s:current_mode == "DO_BLOCK"
-		let s:do_block_just_closed = 1
-	else
-		let s:do_block_just_closed = 0
-	endif
-	let s:current_mode = remove(s:modes, -1)
-endfunction
-
-function! s:in_array(what, arr)
-	return index(a:arr, a:what) != -1
-endfunction
-
-function! s:get_next_token()
-	let n_newlines = 0
-
-	if s:parser_pos >= len(s:input)
-		return ["", "TK_EOF"]
-	endif
-
-	let c = s:input[s:parser_pos]
-	let s:parser_pos += 1
-
-	while s:in_array(c, s:whitespace) 
-		if s:parser_pos >= len(s:input)
-			return ["", "TK_EOF"]
-		endif
-
-		if c == "\n"
-			let n_newlines += 1
-		endif
-
-		let c = s:input[s:parser_pos]
-		let s:parser_pos += 1
-	endwhile
-
-	let wanted_newline = 0
-	
-	if s:opt_preserve_newlines
-		if n_newlines > 1
-			for i in [0, 1] 
-				call s:print_newline(i==0)
-			endfor
-		endif
-		let wanted_newline = n_newlines == 1
-	endif
-
-	if s:in_array(c, s:wordchar)
-		if s:parser_pos < len(s:input)
-			while s:in_array(s:input[s:parser_pos], s:wordchar)
-				let c .= s:input[s:parser_pos]
-				let s:parser_pos += 1
-				if s:parser_pos == len(s:input)
-					break
-				endif
-			endwhile
-		endif
-
-		"if s:parser_pos != len(s:input) && c =~ /^[0-9]+[Ee]$/ && (s:input[s:parser_pos] == "-" || s:input[s:parser_pos] == "+")
-			"let sign = s:input[s:parser_pos]
-			"let s:parser_pos += 1
-
-			"let t = get_next_token(s:parser_pos)
-			"let c .= sign . t[0]
-			"return [c, "TK_WORD"]
-	   " endif
-
-		if c == "in"
-			return [c, "TK_OPERATOR"]
-		endif
-		if wanted_newline && s:last_type != "TK_OPERATOR" && !s:if_line_flag
-			call s:print_newline(1)
-		endif
-		return [c, "TK_WORD"]
-	endif
-	if c == "(" || c == "["
-		return [c, "TK_START_EXPR"]
-	endif
-
-	if c == ")" || c == "]"
-		return [c, "TK_END_EXPR"]
-	endif
-
-	if c == "{"
-		return [c, "TK_START_BLOCK"]
-	endif
-
-	if c == "}"
-		return [c, "TK_END_BLOCK"]
-	endif
-
-	if c == ";"
-		return [c, "TK_SEMICOLON"]
-	endif
-
-	if c == "/"
-		let comment = ""
-		if s:input[s:parser_pos] == "*"
-			let s:parser_pos += 1
-			if s:parser_pos < len(s:input) 
-				while !(s:input[s:parser_pos] == "*" && s:parser_pos + 1 < len(s:input) && s:input[s:parser_pos + 1] == "/" && s:parser_pos < len(s:input))
-					let comment .= s:input[s:parser_pos]
-					let s:parser_pos += 1
-					if s:parser_pos >= len(s:input)
-						break
-					endif
-				endwhile
-			endif
-			let s:parser_pos += 2
-			return ['/*' . comment . '*/', 'TK_BLOCK_COMMENT']
-		endif
-
-		" peek for comment // ...
-		if s:input[s:parser_pos] == "/"
-			let comment = c
-			while s:input[s:parser_pos] != "\r" && s:input[s:parser_pos] != "\n"
-				let comment .= s:input[s:parser_pos]
-				let s:parser_pos += 1
-				if s:parser_pos >= len(s:input)
-					break
-				endif
-			endwhile
-			let s:parser_pos += 1
-			if wanted_newline
-				call s:print_newline(1)
-			endif
-			return [comment, "TK_COMMENT"]
-		endif
-	endif
-
-	if c == "'" || c =='"' || (c == "/" && ((s:last_type == "TK_WORD" && s:last_text == "return") || (s:last_type == "TK_START_EXPR" || s:last_type == "TK_START_BLOCK" || s:last_type == "TK_END_BLOCK" || s:last_type == "TK_OPERATOR" || s:last_type == "TK_EOF" || s:last_type == "TK_SEMICOLON")))
-		let sep = c
-		let esc = 0
-		let resulting_string = c
-
-		if s:parser_pos < len(s:input)
-			while esc || s:input[s:parser_pos] != sep
-				let resulting_string .= s:input[s:parser_pos]
-				if !esc
-					let esc = s:input[s:parser_pos] == "\\"
-				else
-					let esc = 0
-				endif
-				let s:parser_pos += 1
-				if s:parser_pos >= len(s:input)
-					return [resulting_string, "TK_STRING"]
-				endif
-			endwhile
-		endif
-
-		let s:parser_pos += 1
-
-		let resulting_string .= sep
-
-		if sep == "/"
-			
-			while s:parser_pos < len(s:input) && s:in_array(s:input[s:parser_pos], s:wordchar)
-				let resulting_string .= s:input[s:parser_pos]
-				let s:parser_pos += 1
-			endwhile
-		endif
-		return [resulting_string, "TK_STRING"]
-	endif
-
-	if c == "#"
-		let sharp = "#"
-		if s:parser_pos < len(s:input) && s:in_array(s:input[s:parser_pos], s:digits)
-			let c = s:input[s:parser_pos]
-			let sharp .= c
-			let s:parser_pos += 1
-
-			while s:parser_pos < len(s:input) && c != "#" && c !="="
-				let c = s:input[s:parser_pos]
-				let sharp .= c
-				let s:parser_pos += 1
-			endwhile
-
-			if c == "#"
-				return [sharp, "TK_WORD"]
-			else
-				return [sharp, "TK_OPERATOR"]
-			endif
-		endif
-	endif
-
-	if c == "<" && s:input[s:parser_pos-1 : s:parser_pos+3] == ""
-		let s:parser_pos += 2
-		if wanted_newline
-			call s:print_newline(1)
-		endif
-		return ["-->", "TK_COMMENT"]
-	endif
-
-	if s:in_array(c, s:punct)
-		while s:parser_pos < len(s:input) && s:in_array(c . s:input[s:parser_pos], s:punct)
-			let c .= s:input[s:parser_pos]
-			let s:parser_pos += 1
-			if s:parser_pos >= len(s:input)
-				break
-			endif
-		endwhile
-
-		return [c, "TK_OPERATOR"]
-	endif
-
-		return [c, "TK_UNKNOWN"]
-	endif
-
-	
-
-endfunction
-
-function! s:is_js()
-	" return expand("%:e") == "js"
-    return &filetype == "javascript"
-endfunction
-
-"function! g:Jsbeautify(js_source_text, options)
-function! g:Jsbeautify()
-	if !s:is_js()
-		echo "Not a JS file."
-		return
-	endif
-
-	"let a:options = {}
-	let s:opt_indent_size = 1
-	let s:opt_indent_char = "\t"
-	let s:opt_preserve_newlines = 1
-	let s:opt_indent_level = 0
-
-	let s:if_line_flag = 0
-	"--------------------------------
-	
-	let s:indent_string = ""
-	while s:opt_indent_size > 0
-		let s:indent_string .= s:opt_indent_char
-		let s:opt_indent_size -= 1
-	endwhile
-
-	let s:indent_level = s:opt_indent_level
-
-	let lines = getline(1, "$")
-	let s:input = join(lines, "\n")
-	"let s:input = a:js_source_text
-	
-	let s:last_word = "" "last 'TK_WORD' passed
-	let s:last_type = "TK_START_EXPR" "last token type
-	let s:last_text = "" "last token text
-	let s:output = []
-
-	let s:do_block_just_closed = 0
-	let s:var_line = 0
-	let s:var_line_tainted = 0
-
-	let s:whitespace = ["\n", "\r", "\t", " "]
-	let s:wordchar = split("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$", '\zs')
-	let s:digits = split("0123456789", '\zs')
-	
-	"', '', 0],
-                \ 'php': ['', '', 0],
-                \ 'tex': ['% lorem{{{', '% lorem}}}', 1],
-                \ 'viki': ['% lorem{{{', '% lorem}}}', 1],
-                \ }
-endif
-
-if !exists('g:loremipsum_words')
-    " Default length.
-    let g:loremipsum_words = 100   "{{{2
-endif
-
-if !exists('g:loremipsum_files')
-    "                                                 *b:loremipsum_file*
-    " If b:loremipsum_file exists, it will be used as source. Otherwise, 
-    " g:loremipsum_files[&spelllang] will be checked. As a fallback, 
-    " .../autoload/loremipsum.txt will be used.
-    let g:loremipsum_files = {}   "{{{2
-endif
-
-
-" :display: :Loremipsum[!] [COUNT] [PARAGRAPH_TEMPLATE] [PREFIX POSTFIX]
-" With [!], insert the text "inline", don't apply paragraph templates.
-" If the PARAGRAPH_TEMPLATE is *, use the default template from 
-" |g:loremipsum_paragraph_template| (in case you want to change 
-" PREFIX and POSTFIX). If it is _, use no paragraph template.
-" If PREFIX is _, don't use markers.
-command! -bang -nargs=* Loremipsum call loremipsum#Insert("", )
-
-" Replace loremipsum text with something else. Or simply remove it.
-" :display: :Loreplace [REPLACEMENT] [PREFIX] [POSTFIX]
-command! -nargs=* Loreplace call loremipsum#Replace()
-
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-
-finish
-CHANGES:
-0.1
-- Initial release
-
-0.2
-- Loremipsum!: With !, insert inline (single paragraph)
-- If the template argument is *, don't apply the default paragraph 
-template.
-- Loreplace: Replace loremipsum text with something else (provided a 
-marker was defined for the current filetype)
-- g:loremipsum_file, b:loremipsum_file
-
diff --git a/bundle/mark/autoload/mark.vim b/bundle/mark/autoload/mark.vim
deleted file mode 100644
index 8de2422..0000000
--- a/bundle/mark/autoload/mark.vim
+++ /dev/null
@@ -1,1039 +0,0 @@
-" Script Name: mark.vim
-" Description: Highlight several words in different colors simultaneously.
-"
-" Copyright:   (C) 2005-2008 by Yuheng Xie
-"              (C) 2008-2012 by Ingo Karkat
-"   The VIM LICENSE applies to this script; see ':help copyright'.
-"
-" Maintainer:  Ingo Karkat 
-"
-" Dependencies:
-"  - SearchSpecial.vim autoload script (optional, for improved search messages).
-"
-" Version:     2.7.2
-" Changes:
-" 15-Oct-2012, Ingo Karkat
-" - Issue an error message "No marks defined" instead of moving the cursor by
-"   one character when there are no marks (e.g. initially or after :MarkClear).
-" - Enable custom integrations via new mark#GetNum() and mark#GetPattern()
-"   functions.
-"
-" 13-Sep-2012, Ingo Karkat
-" - Enable alternative * / # mappings that do not remember the last search type
-"   by adding optional search function argument to mark#SearchNext().
-"
-" 04-Jul-2012, Ingo Karkat
-" - ENH: Handle on-the-fly change of mark highlighting via mark#ReInit(), which
-"   truncates / expands s:pattern and corrects the indices. Also, w:mwMatch List
-"   size mismatches must be handled in s:MarkMatch().
-"
-" 23-Apr-2012, Ingo Karkat + fanhe
-" - Force case via \c / \C instead of temporarily unsetting 'smartcase'.
-" - Allow to override 'ignorecase' setting via g:mwIgnoreCase. Thanks to fanhe
-"   for the idea and sending a patch.
-"
-" 26-Mar-2012, Ingo Karkat
-" - ENH: When a [count] exceeding the number of available mark groups is given,
-"   a summary of marks is given and the user is asked to select a mark group.
-"   This allows to interactively choose a color via 99m.
-" - ENH: Include count of alternative patterns in :Marks list.
-" - CHG: Use ">" for next mark and "/" for last search in :Marks.
-"
-" 23-Mar-2012, Ingo Karkat
-" - ENH: Add :Marks command that prints all mark highlight groups and their
-"   search patterns, plus information about the current search mark, next mark
-"   group, and whether marks are disabled.
-" - ENH: Show which mark group a pattern was set / added / removed / cleared.
-" - Refactoring: Store index into s:pattern instead of pattern itself in
-"   s:lastSearch. For that, mark#CurrentMark() now additionally returns the
-"   index.
-" - CHG: Show mark group number in same-mark search and rename search types from
-"   "any-mark", "same-mark", and "new-mark" to the shorter "mark-*", "mark-N",
-"   and "mark-N!", respectively.
-"
-" 22-Mar-2012, Ingo Karkat
-" - ENH: Allow [count] for m and :Mark to add / subtract match to / from
-"   highlight group [count], and use [count]n to clear only highlight
-"   group [count]. This was also requested by Philipp Marek.
-" - FIX: :Mark and n actually toggled marks back on when they were
-"   already off. Now, they stay off on multiple invocations. Use :call
-"   mark#Toggle() / MarkToggle if you want toggling.
-"
-" 09-Nov-2011, Ingo Karkat
-" - BUG: With a single match and 'wrapscan' set, a search error was issued
-"   instead of the wrap message. Add check for l:isStuckAtCurrentMark &&
-"   l:isWrapped in the no-match part of s:Search().
-" - FIX: In backwards search with single match, the :break short-circuits the
-"   l:isWrapped logic, resets l:line and therefore also confuses the logic and
-"   leads to wrong error message instead of wrap message. Don't reset l:line,
-"   set l:isWrapped instead.
-" - FIX: Wrong logic for determining l:isWrapped lets wrap-around go undetected
-"   when v:count >= number of total matches. [l:startLine, l:startCol] must
-"   be updated on every iteration, and should therefore be named [l:prevLine,
-"   l:prevCol].
-"
-" 17-May-2011, Ingo Karkat
-" - Make s:GetVisualSelection() public to allow use in suggested
-"   MarkSpaceIndifferent vmap.
-" - FIX: == comparison in s:DoMark() leads to wrong regexp (\A vs. \a) being
-"   cleared when 'ignorecase' is set. Use case-sensitive comparison ==# instead.
-"
-" 10-May-2011, Ingo Karkat
-" - Refine :MarkLoad messages: Differentiate between nonexistent and empty
-"   g:MARK_MARKS; add note when marks are disabled.
-"
-" 06-May-2011, Ingo Karkat
-" - Also print status message on :MarkClear to be consistent with :MarkToggle.
-"
-" 21-Apr-2011, Ingo Karkat
-" - Implement toggling of mark display (keeping the mark patterns, unlike the
-"   clearing of marks), determined by s:enable. s:DoMark() now toggles on empty
-"   regexp, affecting the \n mapping and :Mark. Introduced
-"   s:EnableAndMarkScope() wrapper to correctly handle the highlighting updates
-"   depending on whether marks were previously disabled.
-" - Implement persistence of s:enable via g:MARK_ENABLED.
-" - Generalize s:Enable() and combine with intermediate s:Disable() into
-"   s:MarkEnable(), which also performs the persistence of s:enabled.
-" - Implement lazy-loading of disabled persistent marks via g:mwDoDeferredLoad
-"   flag passed from plugin/mark.vim.
-"
-" 20-Apr-2011, Ingo Karkat
-" - Extract setting of s:pattern into s:SetPattern() and implement the automatic
-"   persistence there.
-"
-" 19-Apr-2011, Ingo Karkat
-" - ENH: Add enabling functions for mark persistence: mark#Load() and
-"   mark#ToPatternList().
-" - Implement :MarkLoad and :MarkSave commands in mark#LoadCommand() and
-"   mark#SaveCommand().
-" - Remove superfluous update autocmd on VimEnter: Persistent marks trigger the
-"   update themselves, same for :Mark commands which could potentially be issued
-"   e.g. in .vimrc. Otherwise, when no marks are defined after startup, the
-"   autosource script isn't even loaded yet, so the autocmd on the VimEnter
-"   event isn't yet defined.
-"
-" 18-Apr-2011, Ingo Karkat
-" - BUG: Include trailing newline character in check for current mark, so that a
-"   mark that matches the entire line (e.g. created by Vm) can be
-"   cleared via n. Thanks to ping for reporting this.
-" - Minor restructuring of mark#MarkCurrentWord().
-" - FIX: On overlapping marks, mark#CurrentMark() returned the lowest, not the
-"   highest visible mark. So on overlapping marks, the one that was not visible
-"   at the cursor position was removed; very confusing! Use reverse iteration
-"   order.
-" - FIX: To avoid an arbitrary ordering of highlightings when the highlighting
-"   group names roll over, and to avoid order inconsistencies across different
-"   windows and tabs, we assign a different priority based on the highlighting
-"   group.
-" - Rename s:cycleMax to s:markNum; the previous name was too
-"   implementation-focused and off-by-one with regards to the actual value.
-"
-" 16-Apr-2011, Ingo Karkat
-" - Move configuration variable g:mwHistAdd to plugin/mark.vim (as is customary)
-"   and make the remaining g:mw... variables script-local, as these contain
-"   internal housekeeping information that does not need to be accessible by the
-"   user.
-" - Add :MarkSave warning if 'viminfo' doesn't enable global variable
-"   persistence.
-"
-" 15-Apr-2011, Ingo Karkat
-" - Robustness: Move initialization of w:mwMatch from mark#UpdateMark() to
-"   s:MarkMatch(), where the variable is actually used. I had encountered cases
-"   where it w:mwMatch was undefined when invoked through mark#DoMark() ->
-"   s:MarkScope() -> s:MarkMatch(). This can be forced by :unlet w:mwMatch
-"   followed by :Mark foo.
-" - Robustness: Checking for s:markNum == 0 in mark#DoMark(), trying to
-"   re-detect the mark highlightings and finally printing an error instead of
-"   choking. This can happen when somehow no mark highlightings are defined.
-"
-" 14-Jan-2011, Ingo Karkat
-" - FIX: Capturing the visual selection could still clobber the blockwise yank
-"   mode of the unnamed register.
-"
-" 13-Jan-2011, Ingo Karkat
-" - FIX: Using a named register for capturing the visual selection on
-"   {Visual}m and {Visual}r clobbered the unnamed register. Now
-"   using the unnamed register.
-"
-" 13-Jul-2010, Ingo Karkat
-" - ENH: The MarkSearch mappings ([*#/?]) add the original cursor
-"   position to the jump list, like the built-in [/?*#nN] commands. This allows
-"   to use the regular jump commands for mark matches, like with regular search
-"   matches.
-"
-" 19-Feb-2010, Andy Wokula
-" - BUG: Clearing of an accidental zero-width match (e.g. via :Mark \zs) results
-"   in endless loop. Thanks to Andy Wokula for the patch.
-"
-" 17-Nov-2009, Ingo Karkat + Andy Wokula
-" - BUG: Creation of literal pattern via '\V' in {Visual}m mapping
-"   collided with individual escaping done in m mapping so that an
-"   escaped '\*' would be interpreted as a multi item when both modes are used
-"   for marking. Replaced \V with s:EscapeText() to be consistent. Replaced the
-"   (overly) generic mark#GetVisualSelectionEscaped() with
-"   mark#GetVisualSelectionAsRegexp() and
-"   mark#GetVisualSelectionAsLiteralPattern(). Thanks to Andy Wokula for the
-"   patch.
-"
-" 06-Jul-2009, Ingo Karkat
-" - Re-wrote s:AnyMark() in functional programming style.
-" - Now resetting 'smartcase' before the search, this setting should not be
-"   considered for *-command-alike searches and cannot be supported because all
-"   mark patterns are concatenated into one large regexp, anyway.
-"
-" 04-Jul-2009, Ingo Karkat
-" - Re-wrote s:Search() to handle v:count:
-"   - Obsoleted s:current_mark_position; mark#CurrentMark() now returns both the
-"     mark text and start position.
-"   - s:Search() now checks for a jump to the current mark during a backward
-"     search; this eliminates a lot of logic at its calling sites.
-"   - Reverted negative logic at calling sites; using empty() instead of != "".
-"   - Now passing a:isBackward instead of optional flags into s:Search() and
-"     around its callers.
-"   - ':normal! zv' moved from callers into s:Search().
-" - Removed delegation to SearchSpecial#ErrorMessage(), because the fallback
-"   implementation is perfectly fine and the SearchSpecial routine changed its
-"   output format into something unsuitable anyway.
-" - Using descriptive text instead of "@" (and appropriate highlighting) when
-"   querying for the pattern to mark.
-"
-" 02-Jul-2009, Ingo Karkat
-" - Split off functions into autoload script.
-
-"- functions ------------------------------------------------------------------
-
-silent! call SearchSpecial#DoesNotExist()	" Execute a function to force autoload.
-if exists('*SearchSpecial#WrapMessage')
-	function! s:WrapMessage( searchType, searchPattern, isBackward )
-		redraw
-		call SearchSpecial#WrapMessage(a:searchType, a:searchPattern, a:isBackward)
-	endfunction
-	function! s:EchoSearchPattern( searchType, searchPattern, isBackward )
-		call SearchSpecial#EchoSearchPattern(a:searchType, a:searchPattern, a:isBackward)
-	endfunction
-else
-	function! s:Trim( message )
-		" Limit length to avoid "Hit ENTER" prompt.
-		return strpart(a:message, 0, (&columns / 2)) . (len(a:message) > (&columns / 2) ? "..." : "")
-	endfunction
-	function! s:WrapMessage( searchType, searchPattern, isBackward )
-		redraw
-		let v:warningmsg = printf('%s search hit %s, continuing at %s', a:searchType, (a:isBackward ? 'TOP' : 'BOTTOM'), (a:isBackward ? 'BOTTOM' : 'TOP'))
-		echohl WarningMsg
-		echo s:Trim(v:warningmsg)
-		echohl None
-	endfunction
-	function! s:EchoSearchPattern( searchType, searchPattern, isBackward )
-		let l:message = (a:isBackward ? '?' : '/') .  a:searchPattern
-		echohl SearchSpecialSearchType
-		echo a:searchType
-		echohl None
-		echon s:Trim(l:message)
-	endfunction
-endif
-
-function! s:EscapeText( text )
-	return substitute( escape(a:text, '\' . '^$.*[~'), "\n", '\\n', 'ge' )
-endfunction
-function! s:IsIgnoreCase( expr )
-	return ((exists('g:mwIgnoreCase') ? g:mwIgnoreCase : &ignorecase) && a:expr !~# '\\\@')
-		if ! empty(l:cword)
-			let l:regexp = s:EscapeText(l:cword)
-			" The star command only creates a \ search pattern if the
-			"  actually only consists of keyword characters.
-			if l:cword =~# '^\k\+$'
-				let l:regexp = '\<' . l:regexp . '\>'
-			endif
-		endif
-	endif
-	return (empty(l:regexp) ? 0 : mark#DoMark(a:groupNum, l:regexp))
-endfunction
-
-function! mark#GetVisualSelection()
-	let save_clipboard = &clipboard
-	set clipboard= " Avoid clobbering the selection and clipboard registers.
-	let save_reg = getreg('"')
-	let save_regmode = getregtype('"')
-	silent normal! gvy
-	let res = getreg('"')
-	call setreg('"', save_reg, save_regmode)
-	let &clipboard = save_clipboard
-	return res
-endfunction
-function! mark#GetVisualSelectionAsLiteralPattern()
-	return s:EscapeText(mark#GetVisualSelection())
-endfunction
-function! mark#GetVisualSelectionAsRegexp()
-	return substitute(mark#GetVisualSelection(), '\n', '', 'g')
-endfunction
-
-" Manually input a regular expression.
-function! mark#MarkRegex( regexpPreset )
-	call inputsave()
-	echohl Question
-	let l:regexp = input('Input pattern to mark: ', a:regexpPreset)
-	echohl None
-	call inputrestore()
-	if ! empty(l:regexp)
-		call mark#DoMark(0, l:regexp)
-	endif
-endfunction
-
-function! s:Cycle( ... )
-	let l:currentCycle = s:cycle
-	let l:newCycle = (a:0 ? a:1 : s:cycle) + 1
-	let s:cycle = (l:newCycle < s:markNum ? l:newCycle : 0)
-	return l:currentCycle
-endfunction
-function! s:FreeGroupIndex()
-	let i = 0
-	while i < s:markNum
-		if empty(s:pattern[i])
-			return i
-		endif
-		let i += 1
-	endwhile
-	return -1
-endfunction
-
-" Set match / clear matches in the current window.
-function! s:MarkMatch( indices, expr )
-	if ! exists('w:mwMatch')
-		let w:mwMatch = repeat([0], s:markNum)
-	elseif len(w:mwMatch) != s:markNum
-		" The number of marks has changed.
-		if len(w:mwMatch) > s:markNum
-			" Truncate the matches.
-			for l:match in filter(w:mwMatch[s:markNum : ], 'v:val > 0')
-				silent! call matchdelete(l:match)
-			endfor
-			let w:mwMatch = w:mwMatch[0 : (s:markNum - 1)]
-		else
-			" Expand the matches.
-			let w:mwMatch += repeat([0], (s:markNum - len(w:mwMatch)))
-		endif
-	endif
-
-	for l:index in a:indices
-		if w:mwMatch[l:index] > 0
-			silent! call matchdelete(w:mwMatch[l:index])
-			let w:mwMatch[l:index] = 0
-		endif
-	endfor
-
-	if ! empty(a:expr)
-		let l:index = a:indices[0]	" Can only set one index for now.
-
-		" Info: matchadd() does not consider the 'magic' (it's always on),
-		" 'ignorecase' and 'smartcase' settings.
-		" Make the match according to the 'ignorecase' setting, like the star command.
-		" (But honor an explicit case-sensitive regexp via the /\C/ atom.)
-		let l:expr = (s:IsIgnoreCase(a:expr) ? '\c' : '') . a:expr
-
-		" To avoid an arbitrary ordering of highlightings, we assign a different
-		" priority based on the highlight group, and ensure that the highest
-		" priority is -10, so that we do not override the 'hlsearch' of 0, and still
-		" allow other custom highlightings to sneak in between.
-		let l:priority = -10 - s:markNum + 1 + l:index
-
-		let w:mwMatch[l:index] = matchadd('MarkWord' . (l:index + 1), l:expr, l:priority)
-	endif
-endfunction
-" Initialize mark colors in a (new) window.
-function! mark#UpdateMark()
-	let i = 0
-	while i < s:markNum
-		if ! s:enabled || empty(s:pattern[i])
-			call s:MarkMatch([i], '')
-		else
-			call s:MarkMatch([i], s:pattern[i])
-		endif
-		let i += 1
-	endwhile
-endfunction
-" Set / clear matches in all windows.
-function! s:MarkScope( indices, expr )
-	let l:currentWinNr = winnr()
-
-	" By entering a window, its height is potentially increased from 0 to 1 (the
-	" minimum for the current window). To avoid any modification, save the window
-	" sizes and restore them after visiting all windows.
-	let l:originalWindowLayout = winrestcmd()
-
-	noautocmd windo call s:MarkMatch(a:indices, a:expr)
-	execute l:currentWinNr . 'wincmd w'
-	silent! execute l:originalWindowLayout
-endfunction
-" Update matches in all windows.
-function! mark#UpdateScope()
-	let l:currentWinNr = winnr()
-
-	" By entering a window, its height is potentially increased from 0 to 1 (the
-	" minimum for the current window). To avoid any modification, save the window
-	" sizes and restore them after visiting all windows.
-	let l:originalWindowLayout = winrestcmd()
-
-	noautocmd windo call mark#UpdateMark()
-	execute l:currentWinNr . 'wincmd w'
-	silent! execute l:originalWindowLayout
-endfunction
-
-function! s:MarkEnable( enable, ...)
-	if s:enabled != a:enable
-		" En-/disable marks and perform a full refresh in all windows, unless
-		" explicitly suppressed by passing in 0.
-		let s:enabled = a:enable
-		if g:mwAutoSaveMarks
-			let g:MARK_ENABLED = s:enabled
-		endif
-
-		if ! a:0 || ! a:1
-			call mark#UpdateScope()
-		endif
-	endif
-endfunction
-function! s:EnableAndMarkScope( indices, expr )
-	if s:enabled
-		" Marks are already enabled, we just need to push the changes to all
-		" windows.
-		call s:MarkScope(a:indices, a:expr)
-	else
-		call s:MarkEnable(1)
-	endif
-endfunction
-
-" Toggle visibility of marks, like :nohlsearch does for the regular search
-" highlighting.
-function! mark#Toggle()
-	if s:enabled
-		call s:MarkEnable(0)
-		echo 'Disabled marks'
-	else
-		call s:MarkEnable(1)
-
-		let l:markCnt = len(filter(copy(s:pattern), '! empty(v:val)'))
-		echo 'Enabled' (l:markCnt > 0 ? l:markCnt . ' ' : '') . 'marks'
-	endif
-endfunction
-
-
-" Mark or unmark a regular expression.
-function! s:SetPattern( index, pattern )
-	let s:pattern[a:index] = a:pattern
-
-	if g:mwAutoSaveMarks
-		call s:SavePattern()
-	endif
-endfunction
-function! mark#ClearAll()
-	let i = 0
-	let indices = []
-	while i < s:markNum
-		if ! empty(s:pattern[i])
-			call s:SetPattern(i, '')
-			call add(indices, i)
-		endif
-		let i += 1
-	endwhile
-	let s:lastSearch = -1
-
-" Re-enable marks; not strictly necessary, since all marks have just been
-" cleared, and marks will be re-enabled, anyway, when the first mark is added.
-" It's just more consistent for mark persistence. But save the full refresh, as
-" we do the update ourselves.
-	call s:MarkEnable(0, 0)
-
-	call s:MarkScope(l:indices, '')
-
-	if len(indices) > 0
-		echo 'Cleared all' len(indices) 'marks'
-	else
-		echo 'All marks cleared'
-	endif
-endfunction
-function! s:SetMark( index, regexp, ... )
-	if a:0
-		if s:lastSearch == a:index
-			let s:lastSearch = a:1
-		endif
-	endif
-	call s:SetPattern(a:index, a:regexp)
-	call s:EnableAndMarkScope([a:index], a:regexp)
-endfunction
-function! s:ClearMark( index )
-	" A last search there is reset.
-	call s:SetMark(a:index, '', -1)
-endfunction
-function! s:EchoMark( groupNum, regexp )
-	call s:EchoSearchPattern('mark-' . a:groupNum, a:regexp, 0)
-endfunction
-function! s:EchoMarkCleared( groupNum )
-	echohl SearchSpecialSearchType
-	echo 'mark-' . a:groupNum
-	echohl None
-	echon ' cleared'
-endfunction
-function! s:EchoMarksDisabled()
-	echo 'All marks disabled'
-endfunction
-function! mark#DoMark( groupNum, ...)
-	if s:markNum <= 0
-		" Uh, somehow no mark highlightings were defined. Try to detect them again.
-		call mark#Init()
-		if s:markNum <= 0
-			" Still no mark highlightings; complain.
-			let v:errmsg = 'No mark highlightings defined'
-			echohl ErrorMsg
-			echomsg v:errmsg
-			echohl None
-			return 0
-		endif
-	endif
-
-	let l:groupNum = a:groupNum
-	if l:groupNum > s:markNum
-		" This highlight group does not exist.
-		let l:groupNum = mark#QueryMarkGroupNum()
-		if l:groupNum < 1 || l:groupNum > s:markNum
-			return 0
-		endif
-	endif
-
-	let regexp = (a:0 ? a:1 : '')
-	if empty(regexp)
-		if l:groupNum == 0
-			" Disable all marks.
-			call s:MarkEnable(0)
-			call s:EchoMarksDisabled()
-		else
-			" Clear the mark represented by the passed highlight group number.
-			call s:ClearMark(l:groupNum - 1)
-			call s:EchoMarkCleared(l:groupNum)
-		endif
-
-		return 1
-	endif
-
-	if l:groupNum == 0
-		" Clear the mark if it has been marked.
-		let i = 0
-		while i < s:markNum
-			if regexp ==# s:pattern[i]
-				call s:ClearMark(i)
-				call s:EchoMarkCleared(i + 1)
-				return 1
-			endif
-			let i += 1
-		endwhile
-	else
-		" Add / subtract the pattern as an alternative to the mark represented
-		" by the passed highlight group number.
-		let existingPattern = s:pattern[l:groupNum - 1]
-		if ! empty(existingPattern)
-			" Split only on \|, but not on \\|.
-			let alternatives = split(existingPattern, '\%(\%(^\|[^\\]\)\%(\\\\\)*\\\)\@= 0
-		call histadd('/', regexp)
-	endif
-	if stridx(g:mwHistAdd, '@') >= 0
-		call histadd('@', regexp)
-	endif
-
-	if l:groupNum == 0
-		let i = s:FreeGroupIndex()
-		if i != -1
-			" Choose an unused highlight group. The last search is kept untouched.
-			call s:Cycle(i)
-			call s:SetMark(i, regexp)
-		else
-			" Choose a highlight group by cycle. A last search there is reset.
-			let i = s:Cycle()
-			call s:SetMark(i, regexp, -1)
-		endif
-	else
-		let i = l:groupNum - 1
-		" Use and extend the passed highlight group. A last search is updated
-		" and thereby kept active.
-		call s:SetMark(i, regexp, i)
-	endif
-
-	call s:EchoMark(i + 1, regexp)
-	return 1
-endfunction
-
-" Return [mark text, mark start position, mark index] of the mark under the
-" cursor (or ['', [], -1] if there is no mark).
-" The mark can include the trailing newline character that concludes the line,
-" but marks that span multiple lines are not supported.
-function! mark#CurrentMark()
-	let line = getline('.') . "\n"
-
-	" Highlighting groups with higher numbers take precedence over lower numbers,
-	" and therefore its marks appear "above" other marks. To retrieve the visible
-	" mark in case of overlapping marks, we need to check from highest to lowest
-	" highlight group.
-	let i = s:markNum - 1
-	while i >= 0
-		if ! empty(s:pattern[i])
-			let matchPattern = (s:IsIgnoreCase(s:pattern[i]) ? '\c' : '\C') . s:pattern[i]
-			" Note: col() is 1-based, all other indexes zero-based!
-			let start = 0
-			while start >= 0 && start < strlen(line) && start < col('.')
-				let b = match(line, matchPattern, start)
-				let e = matchend(line, matchPattern, start)
-				if b < col('.') && col('.') <= e
-					return [s:pattern[i], [line('.'), (b + 1)], i]
-				endif
-				if b == e
-					break
-				endif
-				let start = e
-			endwhile
-		endif
-		let i -= 1
-	endwhile
-	return ['', [], -1]
-endfunction
-
-" Search current mark.
-function! mark#SearchCurrentMark( isBackward )
-	let [l:markText, l:markPosition, l:markIndex] = mark#CurrentMark()
-	if empty(l:markText)
-		if s:lastSearch == -1
-			call mark#SearchAnyMark(a:isBackward)
-			let s:lastSearch = mark#CurrentMark()[2]
-		else
-			call s:Search(s:pattern[s:lastSearch], a:isBackward, [], 'mark-' . (s:lastSearch + 1))
-		endif
-	else
-		call s:Search(l:markText, a:isBackward, l:markPosition, 'mark-' . (l:markIndex + 1) . (l:markIndex ==# s:lastSearch ? '' : '!'))
-		let s:lastSearch = l:markIndex
-	endif
-endfunction
-
-function! s:ErrorMsg( text )
-	let v:errmsg = a:text
-	echohl ErrorMsg
-	echomsg v:errmsg
-	echohl None
-endfunction
-function! s:NoMarkErrorMessage()
-	call s:ErrorMsg('No marks defined')
-endfunction
-function! s:ErrorMessage( searchType, searchPattern, isBackward )
-	if &wrapscan
-		let l:errmsg = a:searchType . ' not found: ' . a:searchPattern
-	else
-		let l:errmsg = printf('%s search hit %s without match for: %s', a:searchType, (a:isBackward ? 'TOP' : 'BOTTOM'), a:searchPattern)
-	endif
-	call s:ErrorMsg(l:errmsg)
-endfunction
-
-" Wrapper around search() with additonal search and error messages and "wrapscan" warning.
-function! s:Search( pattern, isBackward, currentMarkPosition, searchType )
-	if empty(a:pattern)
-		call s:NoMarkErrorMessage()
-		return 0
-	endif
-
-	let l:save_view = winsaveview()
-
-	" searchpos() obeys the 'smartcase' setting; however, this setting doesn't
-	" make sense for the mark search, because all patterns for the marks are
-	" concatenated as branches in one large regexp, and because patterns that
-	" result from the *-command-alike mappings should not obey 'smartcase' (like
-	" the * command itself), anyway. If the :Mark command wants to support
-	" 'smartcase', it'd have to emulate that into the regular expression.
-	" Instead of temporarily unsetting 'smartcase', we force the correct
-	" case-matching behavior through \c / \C.
-	let l:searchPattern = (s:IsIgnoreCase(a:pattern) ? '\c' : '\C') . a:pattern
-
-	let l:count = v:count1
-	let l:isWrapped = 0
-	let l:isMatch = 0
-	let l:line = 0
-	while l:count > 0
-		let [l:prevLine, l:prevCol] = [line('.'), col('.')]
-
-		" Search for next match, 'wrapscan' applies.
-		let [l:line, l:col] = searchpos( l:searchPattern, (a:isBackward ? 'b' : '') )
-
-"****D echomsg '****' a:isBackward string([l:line, l:col]) string(a:currentMarkPosition) l:count
-		if a:isBackward && l:line > 0 && [l:line, l:col] == a:currentMarkPosition && l:count == v:count1
-			" On a search in backward direction, the first match is the start of the
-			" current mark (if the cursor was positioned on the current mark text, and
-			" not at the start of the mark text).
-			" In contrast to the normal search, this is not considered the first
-			" match. The mark text is one entity; if the cursor is positioned anywhere
-			" inside the mark text, the mark text is considered the current mark. The
-			" built-in '*' and '#' commands behave in the same way; the entire 
-			" text is considered the current match, and jumps move outside that text.
-			" In normal search, the cursor can be positioned anywhere (via offsets)
-			" around the search, and only that single cursor position is considered
-			" the current match.
-			" Thus, the search is retried without a decrease of l:count, but only if
-			" this was the first match; repeat visits during wrapping around count as
-			" a regular match. The search also must not be retried when this is the
-			" first match, but we've been here before (i.e. l:isMatch is set): This
-			" means that there is only the current mark in the buffer, and we must
-			" break out of the loop and indicate that search wrapped around and no
-			" other mark was found.
-			if l:isMatch
-				let l:isWrapped = 1
-				break
-			endif
-
-			" The l:isMatch flag is set so if the final mark cannot be reached, the
-			" original cursor position is restored. This flag also allows us to detect
-			" whether we've been here before, which is checked above.
-			let l:isMatch = 1
-		elseif l:line > 0
-			let l:isMatch = 1
-			let l:count -= 1
-
-			" Note: No need to check 'wrapscan'; the wrapping can only occur if
-			" 'wrapscan' is actually on.
-			if ! a:isBackward && (l:prevLine > l:line || l:prevLine == l:line && l:prevCol >= l:col)
-				let l:isWrapped = 1
-			elseif a:isBackward && (l:prevLine < l:line || l:prevLine == l:line && l:prevCol <= l:col)
-				let l:isWrapped = 1
-			endif
-		else
-			break
-		endif
-	endwhile
-
-	" We're not stuck when the search wrapped around and landed on the current
-	" mark; that's why we exclude a possible wrap-around via v:count1 == 1.
-	let l:isStuckAtCurrentMark = ([l:line, l:col] == a:currentMarkPosition && v:count1 == 1)
-"****D echomsg '****' l:line l:isStuckAtCurrentMark l:isWrapped l:isMatch string([l:line, l:col]) string(a:currentMarkPosition)
-	if l:line > 0 && ! l:isStuckAtCurrentMark
-		let l:matchPosition = getpos('.')
-
-		" Open fold at the search result, like the built-in commands.
-		normal! zv
-
-		" Add the original cursor position to the jump list, like the
-		" [/?*#nN] commands.
-		" Implementation: Memorize the match position, restore the view to the state
-		" before the search, then jump straight back to the match position. This
-		" also allows us to set a jump only if a match was found. (:call
-		" setpos("''", ...) doesn't work in Vim 7.2)
-		call winrestview(l:save_view)
-		normal! m'
-		call setpos('.', l:matchPosition)
-
-		" Enable marks (in case they were disabled) after arriving at the mark (to
-		" avoid unnecessary screen updates) but before the error message (to avoid
-		" it getting lost due to the screen updates).
-		call s:MarkEnable(1)
-
-		if l:isWrapped
-			call s:WrapMessage(a:searchType, a:pattern, a:isBackward)
-		else
-			call s:EchoSearchPattern(a:searchType, a:pattern, a:isBackward)
-		endif
-		return 1
-	else
-		if l:isMatch
-			" The view has been changed by moving through matches until the end /
-			" start of file, when 'nowrapscan' forced a stop of searching before the
-			" l:count'th match was found.
-			" Restore the view to the state before the search.
-			call winrestview(l:save_view)
-		endif
-
-		" Enable marks (in case they were disabled) after arriving at the mark (to
-		" avoid unnecessary screen updates) but before the error message (to avoid
-		" it getting lost due to the screen updates).
-		call s:MarkEnable(1)
-
-		if l:line > 0 && l:isStuckAtCurrentMark && l:isWrapped
-			call s:WrapMessage(a:searchType, a:pattern, a:isBackward)
-			return 1
-		else
-			call s:ErrorMessage(a:searchType, a:pattern, a:isBackward)
-			return 0
-		endif
-	endif
-endfunction
-
-" Combine all marks into one regexp.
-function! s:AnyMark()
-	return join(filter(copy(s:pattern), '! empty(v:val)'), '\|')
-endfunction
-
-" Search any mark.
-function! mark#SearchAnyMark( isBackward )
-	let l:markPosition = mark#CurrentMark()[1]
-	let l:markText = s:AnyMark()
-	call s:Search(l:markText, a:isBackward, l:markPosition, 'mark-*')
-	let s:lastSearch = -1
-endfunction
-
-" Search last searched mark.
-function! mark#SearchNext( isBackward, ... )
-	let l:markText = mark#CurrentMark()[0]
-	if empty(l:markText)
-		return 0    " Fall back to the built-in * / # command (done by the mapping).
-	endif
-
-	" Use the provided search type or choose depending on last use of
-	" MarkSearchCurrentNext / MarkSearchAnyNext.
-	call call(a:0 ? a:1 : (s:lastSearch == -1 ? 'mark#SearchAnyMark' : 'mark#SearchCurrentMark'), [a:isBackward])
-	return 1
-endfunction
-
-" Load mark patterns from list.
-function! mark#Load( pattern, enabled )
-	if s:markNum > 0 && len(a:pattern) > 0
-		" Initialize mark patterns with the passed list. Ensure that, regardless of
-		" the list length, s:pattern contains exactly s:markNum elements.
-		let s:pattern = a:pattern[0:(s:markNum - 1)]
-		let s:pattern += repeat([''], (s:markNum - len(s:pattern)))
-
-		let s:enabled = a:enabled
-
-		call mark#UpdateScope()
-
-		" The list of patterns may be sparse, return only the actual patterns.
-		return len(filter(copy(a:pattern), '! empty(v:val)'))
-	endif
-	return 0
-endfunction
-
-" Access the list of mark patterns.
-function! mark#ToPatternList()
-	" Trim unused patterns from the end of the list, the amount of available marks
-	" may differ on the next invocation (e.g. due to a different number of
-	" highlight groups in Vim and GVIM). We want to keep empty patterns in the
-	" front and middle to maintain the mapping to highlight groups, though.
-	let l:highestNonEmptyIndex = s:markNum - 1
-	while l:highestNonEmptyIndex >= 0 && empty(s:pattern[l:highestNonEmptyIndex])
-		let l:highestNonEmptyIndex -= 1
-	endwhile
-
-	return (l:highestNonEmptyIndex < 0 ? [] : s:pattern[0 : l:highestNonEmptyIndex])
-endfunction
-
-" :MarkLoad command.
-function! mark#LoadCommand( isShowMessages )
-	if exists('g:MARK_MARKS')
-		try
-			" Persistent global variables cannot be of type List, so we actually store
-			" the string representation, and eval() it back to a List.
-			execute 'let l:loadedMarkNum = mark#Load(' . g:MARK_MARKS . ', ' . (exists('g:MARK_ENABLED') ? g:MARK_ENABLED : 1) . ')'
-			if a:isShowMessages
-				if l:loadedMarkNum == 0
-					echomsg 'No persistent marks defined'
-				else
-					echomsg printf('Loaded %d mark%s', l:loadedMarkNum, (l:loadedMarkNum == 1 ? '' : 's')) . (s:enabled ? '' : '; marks currently disabled')
-				endif
-			endif
-		catch /^Vim\%((\a\+)\)\=:E/
-			let v:errmsg = 'Corrupted persistent mark info in g:MARK_MARKS and g:MARK_ENABLED'
-			echohl ErrorMsg
-			echomsg v:errmsg
-			echohl None
-
-			unlet! g:MARK_MARKS
-			unlet! g:MARK_ENABLED
-		endtry
-	elseif a:isShowMessages
-		let v:errmsg = 'No persistent marks found'
-		echohl ErrorMsg
-		echomsg v:errmsg
-		echohl None
-	endif
-endfunction
-
-" :MarkSave command.
-function! s:SavePattern()
-	let l:savedMarks = mark#ToPatternList()
-	let g:MARK_MARKS = string(l:savedMarks)
-	let g:MARK_ENABLED = s:enabled
-	return ! empty(l:savedMarks)
-endfunction
-function! mark#SaveCommand()
-	if index(split(&viminfo, ','), '!') == -1
-		let v:errmsg = "Cannot persist marks, need ! flag in 'viminfo': :set viminfo+=!"
-		echohl ErrorMsg
-		echomsg v:errmsg
-		echohl None
-		return
-	endif
-
-	if ! s:SavePattern()
-		let v:warningmsg = 'No marks defined'
-		echohl WarningMsg
-		echomsg v:warningmsg
-		echohl None
-	endif
-endfunction
-
-
-" Query mark group number.
-function! s:GetNextGroupIndex()
-	let l:nextGroupIndex = s:FreeGroupIndex()
-	if l:nextGroupIndex == -1
-		let l:nextGroupIndex = s:cycle
-	endif
-	return l:nextGroupIndex
-endfunction
-function! s:GetMarker( index, nextGroupIndex )
-	let l:marker = ''
-	if s:lastSearch == a:index
-		let l:marker .= '/'
-	endif
-	if a:index == a:nextGroupIndex
-		let l:marker .= '>'
-	endif
-	return l:marker
-endfunction
-function! s:GetAlternativeCount( pattern )
-	return len(split(a:pattern, '\%(\%(^\|[^\\]\)\%(\\\\\)*\\\)\@ 1 ? c : '') . '*' : ''), (i + 1))
-		echohl None
-	endfor
-endfunction
-function! mark#QueryMarkGroupNum()
-	echohl Question
-	echo 'Mark?'
-	echohl None
-	let l:nextGroupIndex = s:GetNextGroupIndex()
-	call s:PrintMarkGroup(l:nextGroupIndex)
-
-	let l:nr = 0
-	while 1
-		let l:char = nr2char(getchar())
-
-		if l:char ==# "\"
-			return (l:nr == 0 ? l:nextGroupIndex + 1 : l:nr)
-		elseif l:char !~# '\d'
-			return -1
-		endif
-		echon l:char
-
-		let l:nr = 10 * l:nr + l:char
-		if s:markNum < 10 * l:nr
-			return l:nr
-		endif
-	endwhile
-endfunction
-
-" :Marks command.
-function! mark#List()
-	echohl Title
-	echo 'mark  cnt  Pattern'
-	echohl None
-	echon '  (> next mark group   / current search mark)'
-	let l:nextGroupIndex = s:GetNextGroupIndex()
-	for i in range(s:markNum)
-		execute 'echohl MarkWord' . (i + 1)
-		let c = s:GetAlternativeCount(s:pattern[i])
-		echo printf('%1s%3d%4s %s', s:GetMarker(i, l:nextGroupIndex), (i + 1), (c > 1 ? '('.c.')' : ''), s:pattern[i])
-		echohl None
-	endfor
-
-	if ! s:enabled
-		echo 'Marks are currently disabled.'
-	endif
-endfunction
-
-function! mark#GetGroupNum()
-	return s:markNum
-endfunction
-
-
-"- integrations ----------------------------------------------------------------
-
-" Access the number of possible marks.
-function! mark#GetNum()
-	return s:markNum
-endfunction
-
-" Access the current / passed index pattern.
-function! mark#GetPattern( ... )
-	if a:0
-		return s:pattern[a:1]
-	else
-		return (s:lastSearch == -1 ? '' : s:pattern[s:lastSearch])
-	endif
-endfunction
-
-
-"- initializations ------------------------------------------------------------
-augroup Mark
-	autocmd!
-	autocmd WinEnter * if ! exists('w:mwMatch') | call mark#UpdateMark() | endif
-	autocmd TabEnter * call mark#UpdateScope()
-augroup END
-
-" Define global variables and initialize current scope.
-function! mark#Init()
-	let s:markNum = 0
-	while hlexists('MarkWord' . (s:markNum + 1))
-		let s:markNum += 1
-	endwhile
-	let s:pattern = repeat([''], s:markNum)
-	let s:cycle = 0
-	let s:lastSearch = -1
-	let s:enabled = 1
-endfunction
-function! mark#ReInit( newMarkNum )
-	if a:newMarkNum < s:markNum " There are less marks than before.
-		" Clear the additional highlight groups.
-		for i in range(a:newMarkNum + 1, s:markNum)
-			execute 'highlight clear MarkWord' . (i + 1)
-		endfor
-
-		" Truncate the mark patterns.
-		let s:pattern = s:pattern[0 : (a:newMarkNum - 1)]
-
-		" Correct any indices.
-		let s:cycle = min([s:cycle, (a:newMarkNum - 1)])
-		let s:lastSearch = (s:lastSearch < a:newMarkNum ? s:lastSearch : -1)
-	elseif a:newMarkNum > s:markNum " There are more marks than before.
-		" Expand the mark patterns.
-		let s:pattern += repeat([''], (a:newMarkNum - s:markNum))
-	endif
-
-	let s:markNum = a:newMarkNum
-endfunction
-
-call mark#Init()
-if exists('g:mwDoDeferredLoad') && g:mwDoDeferredLoad
-	unlet g:mwDoDeferredLoad
-	call mark#LoadCommand(0)
-else
-	call mark#UpdateScope()
-endif
-
-" vim: ts=4 sts=0 sw=4 noet
diff --git a/bundle/mark/autoload/mark/palettes.vim b/bundle/mark/autoload/mark/palettes.vim
deleted file mode 100644
index 98f83bb..0000000
--- a/bundle/mark/autoload/mark/palettes.vim
+++ /dev/null
@@ -1,136 +0,0 @@
-" mark/palettes.vim: Additional palettes for mark highlighting.
-"
-" DEPENDENCIES:
-"
-" Copyright: (C) 2012 Ingo Karkat
-"   The VIM LICENSE applies to this script; see ':help copyright'.
-"
-" Maintainer:	Ingo Karkat 
-" Contributors: rockybalboa4
-"
-" Version:     2.7.0
-" Changes:
-" 04-Jul-2012, Ingo Karkat
-" - Add "maximum" palette contributed by rockybalboa4 and move it and the
-"   "extended" palette to a separate mark/palettes.vim autoload script.
-
-function! mark#palettes#Extended()
-	return [
-		\   { 'ctermbg':'Blue',       'ctermfg':'Black', 'guibg':'#A1B7FF', 'guifg':'#001E80' },
-		\   { 'ctermbg':'Magenta',    'ctermfg':'Black', 'guibg':'#FFA1C6', 'guifg':'#80005D' },
-		\   { 'ctermbg':'Green',      'ctermfg':'Black', 'guibg':'#ACFFA1', 'guifg':'#0F8000' },
-		\   { 'ctermbg':'Yellow',     'ctermfg':'Black', 'guibg':'#FFE8A1', 'guifg':'#806000' },
-		\   { 'ctermbg':'DarkCyan',   'ctermfg':'Black', 'guibg':'#D2A1FF', 'guifg':'#420080' },
-		\   { 'ctermbg':'Cyan',       'ctermfg':'Black', 'guibg':'#A1FEFF', 'guifg':'#007F80' },
-		\   { 'ctermbg':'DarkBlue',   'ctermfg':'Black', 'guibg':'#A1DBFF', 'guifg':'#004E80' },
-		\   { 'ctermbg':'DarkMagenta','ctermfg':'Black', 'guibg':'#A29CCF', 'guifg':'#120080' },
-		\   { 'ctermbg':'DarkRed',    'ctermfg':'Black', 'guibg':'#F5A1FF', 'guifg':'#720080' },
-		\   { 'ctermbg':'Brown',      'ctermfg':'Black', 'guibg':'#FFC4A1', 'guifg':'#803000' },
-		\   { 'ctermbg':'DarkGreen',  'ctermfg':'Black', 'guibg':'#D0FFA1', 'guifg':'#3F8000' },
-		\   { 'ctermbg':'Red',        'ctermfg':'Black', 'guibg':'#F3FFA1', 'guifg':'#6F8000' },
-		\   { 'ctermbg':'White',      'ctermfg':'Gray',  'guibg':'#E3E3D2', 'guifg':'#999999' },
-		\   { 'ctermbg':'LightGray',  'ctermfg':'White', 'guibg':'#D3D3C3', 'guifg':'#666666' },
-		\   { 'ctermbg':'Gray',       'ctermfg':'Black', 'guibg':'#A3A396', 'guifg':'#222222' },
-		\   { 'ctermbg':'Black',      'ctermfg':'White', 'guibg':'#53534C', 'guifg':'#DDDDDD' },
-		\   { 'ctermbg':'Black',      'ctermfg':'Gray',  'guibg':'#131311', 'guifg':'#AAAAAA' },
-		\   { 'ctermbg':'Blue',       'ctermfg':'White', 'guibg':'#0000FF', 'guifg':'#F0F0FF' },
-		\   { 'ctermbg':'DarkRed',    'ctermfg':'White', 'guibg':'#FF0000', 'guifg':'#FFFFFF' },
-		\]
-endfunction
-
-function! mark#palettes#Maximum()
-		let l:palette = [
-		\   { 'ctermbg':'Cyan',       'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' },
-		\   { 'ctermbg':'Green',      'ctermfg':'Black', 'guibg':'#A4E57E', 'guifg':'Black' },
-		\   { 'ctermbg':'Yellow',     'ctermfg':'Black', 'guibg':'#FFDB72', 'guifg':'Black' },
-		\   { 'ctermbg':'Red',        'ctermfg':'Black', 'guibg':'#FF7272', 'guifg':'Black' },
-		\   { 'ctermbg':'Magenta',    'ctermfg':'Black', 'guibg':'#FFB3FF', 'guifg':'Black' },
-		\   { 'ctermbg':'Blue',       'ctermfg':'Black', 'guibg':'#9999FF', 'guifg':'Black' },
-		\]
-		if has('gui_running') || &t_Co >= 88
-		let l:palette += [
-		\   { 'ctermfg':'White',      'ctermbg':'17',    'guifg':'White',   'guibg':'#00005f' },
-		\   { 'ctermfg':'White',      'ctermbg':'22',    'guifg':'White',   'guibg':'#005f00' },
-		\   { 'ctermfg':'White',      'ctermbg':'23',    'guifg':'White',   'guibg':'#005f5f' },
-		\   { 'ctermfg':'White',      'ctermbg':'27',    'guifg':'White',   'guibg':'#005fff' },
-		\   { 'ctermfg':'White',      'ctermbg':'29',    'guifg':'White',   'guibg':'#00875f' },
-		\   { 'ctermfg':'White',      'ctermbg':'34',    'guifg':'White',   'guibg':'#00af00' },
-		\   { 'ctermfg':'Black',      'ctermbg':'37',    'guifg':'Black',   'guibg':'#00afaf' },
-		\   { 'ctermfg':'Black',      'ctermbg':'43',    'guifg':'Black',   'guibg':'#00d7af' },
-		\   { 'ctermfg':'Black',      'ctermbg':'47',    'guifg':'Black',   'guibg':'#00ff5f' },
-		\   { 'ctermfg':'White',      'ctermbg':'52',    'guifg':'White',   'guibg':'#5f0000' },
-		\   { 'ctermfg':'White',      'ctermbg':'53',    'guifg':'White',   'guibg':'#5f005f' },
-		\   { 'ctermfg':'White',      'ctermbg':'58',    'guifg':'White',   'guibg':'#5f5f00' },
-		\   { 'ctermfg':'White',      'ctermbg':'60',    'guifg':'White',   'guibg':'#5f5f87' },
-		\   { 'ctermfg':'White',      'ctermbg':'64',    'guifg':'White',   'guibg':'#5f8700' },
-		\   { 'ctermfg':'White',      'ctermbg':'65',    'guifg':'White',   'guibg':'#5f875f' },
-		\   { 'ctermfg':'Black',      'ctermbg':'66',    'guifg':'Black',   'guibg':'#5f8787' },
-		\   { 'ctermfg':'Black',      'ctermbg':'72',    'guifg':'Black',   'guibg':'#5faf87' },
-		\   { 'ctermfg':'Black',      'ctermbg':'74',    'guifg':'Black',   'guibg':'#5fafd7' },
-		\   { 'ctermfg':'Black',      'ctermbg':'78',    'guifg':'Black',   'guibg':'#5fd787' },
-		\   { 'ctermfg':'Black',      'ctermbg':'79',    'guifg':'Black',   'guibg':'#5fd7af' },
-		\   { 'ctermfg':'Black',      'ctermbg':'85',    'guifg':'Black',   'guibg':'#5fffaf' },
-		\]
-		endif
-		if has('gui_running') || &t_Co >= 256
-		let l:palette += [
-		\   { 'ctermfg':'White',      'ctermbg':'90',    'guifg':'White',   'guibg':'#870087' },
-		\   { 'ctermfg':'White',      'ctermbg':'95',    'guifg':'White',   'guibg':'#875f5f' },
-		\   { 'ctermfg':'White',      'ctermbg':'96',    'guifg':'White',   'guibg':'#875f87' },
-		\   { 'ctermfg':'Black',      'ctermbg':'101',   'guifg':'Black',   'guibg':'#87875f' },
-		\   { 'ctermfg':'Black',      'ctermbg':'107',   'guifg':'Black',   'guibg':'#87af5f' },
-		\   { 'ctermfg':'Black',      'ctermbg':'114',   'guifg':'Black',   'guibg':'#87d787' },
-		\   { 'ctermfg':'Black',      'ctermbg':'117',   'guifg':'Black',   'guibg':'#87d7ff' },
-		\   { 'ctermfg':'Black',      'ctermbg':'118',   'guifg':'Black',   'guibg':'#87ff00' },
-		\   { 'ctermfg':'Black',      'ctermbg':'122',   'guifg':'Black',   'guibg':'#87ffd7' },
-		\   { 'ctermfg':'White',      'ctermbg':'130',   'guifg':'White',   'guibg':'#af5f00' },
-		\   { 'ctermfg':'White',      'ctermbg':'131',   'guifg':'White',   'guibg':'#af5f5f' },
-		\   { 'ctermfg':'Black',      'ctermbg':'133',   'guifg':'Black',   'guibg':'#af5faf' },
-		\   { 'ctermfg':'Black',      'ctermbg':'138',   'guifg':'Black',   'guibg':'#af8787' },
-		\   { 'ctermfg':'Black',      'ctermbg':'142',   'guifg':'Black',   'guibg':'#afaf00' },
-		\   { 'ctermfg':'Black',      'ctermbg':'152',   'guifg':'Black',   'guibg':'#afd7d7' },
-		\   { 'ctermfg':'White',      'ctermbg':'160',   'guifg':'White',   'guibg':'#d70000' },
-		\   { 'ctermfg':'Black',      'ctermbg':'166',   'guifg':'Black',   'guibg':'#d75f00' },
-		\   { 'ctermfg':'Black',      'ctermbg':'169',   'guifg':'Black',   'guibg':'#d75faf' },
-		\   { 'ctermfg':'Black',      'ctermbg':'174',   'guifg':'Black',   'guibg':'#d78787' },
-		\   { 'ctermfg':'Black',      'ctermbg':'175',   'guifg':'Black',   'guibg':'#d787af' },
-		\   { 'ctermfg':'Black',      'ctermbg':'186',   'guifg':'Black',   'guibg':'#d7d787' },
-		\   { 'ctermfg':'Black',      'ctermbg':'190',   'guifg':'Black',   'guibg':'#d7ff00' },
-		\   { 'ctermfg':'White',      'ctermbg':'198',   'guifg':'White',   'guibg':'#ff0087' },
-		\   { 'ctermfg':'Black',      'ctermbg':'202',   'guifg':'Black',   'guibg':'#ff5f00' },
-		\   { 'ctermfg':'Black',      'ctermbg':'204',   'guifg':'Black',   'guibg':'#ff5f87' },
-		\   { 'ctermfg':'Black',      'ctermbg':'209',   'guifg':'Black',   'guibg':'#ff875f' },
-		\   { 'ctermfg':'Black',      'ctermbg':'212',   'guifg':'Black',   'guibg':'#ff87d7' },
-		\   { 'ctermfg':'Black',      'ctermbg':'215',   'guifg':'Black',   'guibg':'#ffaf5f' },
-		\   { 'ctermfg':'Black',      'ctermbg':'220',   'guifg':'Black',   'guibg':'#ffd700' },
-		\   { 'ctermfg':'Black',      'ctermbg':'224',   'guifg':'Black',   'guibg':'#ffd7d7' },
-		\   { 'ctermfg':'Black',      'ctermbg':'228',   'guifg':'Black',   'guibg':'#ffff87' },
-		\]
-		endif
-		if has('gui_running')
-		let l:palette += [
-		\   {                                            'guifg':'Black',   'guibg':'#b3dcff' },
-		\   {                                            'guifg':'Black',   'guibg':'#99cbd6' },
-		\   {                                            'guifg':'Black',   'guibg':'#7afff0' },
-		\   {                                            'guifg':'Black',   'guibg':'#a6ffd2' },
-		\   {                                            'guifg':'Black',   'guibg':'#a2de9e' },
-		\   {                                            'guifg':'Black',   'guibg':'#bcff80' },
-		\   {                                            'guifg':'Black',   'guibg':'#e7ff8c' },
-		\   {                                            'guifg':'Black',   'guibg':'#f2e19d' },
-		\   {                                            'guifg':'Black',   'guibg':'#ffcc73' },
-		\   {                                            'guifg':'Black',   'guibg':'#f7af83' },
-		\   {                                            'guifg':'Black',   'guibg':'#fcb9b1' },
-		\   {                                            'guifg':'Black',   'guibg':'#ff8092' },
-		\   {                                            'guifg':'Black',   'guibg':'#ff73bb' },
-		\   {                                            'guifg':'Black',   'guibg':'#fc97ef' },
-		\   {                                            'guifg':'Black',   'guibg':'#c8a3d9' },
-		\   {                                            'guifg':'Black',   'guibg':'#ac98eb' },
-		\   {                                            'guifg':'Black',   'guibg':'#6a6feb' },
-		\   {                                            'guifg':'Black',   'guibg':'#8caeff' },
-		\   {                                            'guifg':'Black',   'guibg':'#70b9fa' },
-		\]
-		endif
-	return l:palette
-endfunction
-
-" vim: ts=4 sts=0 sw=4 noet
diff --git a/bundle/mark/doc/mark.txt b/bundle/mark/doc/mark.txt
deleted file mode 100644
index 9822714..0000000
--- a/bundle/mark/doc/mark.txt
+++ /dev/null
@@ -1,591 +0,0 @@
-*mark.txt*              Highlight several words in different colors simultaneously.
-
-			    MARK    by Ingo Karkat
-		       (original version by Yuheng Xie)
-								    *mark.vim*
-description			|mark-description|
-usage				|mark-usage|
-installation			|mark-installation|
-configuration			|mark-configuration|
-integration			|mark-integration|
-limitations			|mark-limitations|
-known problems			|mark-known-problems|
-todo				|mark-todo|
-history				|mark-history|
-
-==============================================================================
-DESCRIPTION						    *mark-description*
-
-This plugin adds mappings and a :Mark command to highlight several words in
-different colors simultaneously, similar to the built-in 'hlsearch'
-highlighting of search results and the * |star| command. For example, when you
-are browsing a big program file, you could highlight multiple identifiers in
-parallel. This will make it easier to trace the source code.
-
-This is a continuation of vimscript #1238 by Yuheng Xie, who doesn't maintain
-his original version anymore and recommends switching to this fork. This
-plugin offers the following advantages over the original:
-- Much faster, all colored words can now be highlighted, no more clashes with
-  syntax highlighting (due to use of matchadd()).
-- Many bug fixes.
-- Jumps behave like the built-in search, including wrap and error messages.
-- Like the built-in commands, jumps take an optional [count] to quickly skip
-  over some marks.
-- Marks can be persisted, and patterns can be added / subtracted from
-  mark highlight groups.
-
-RELATED WORKS								     *
-
-- MultipleSearch (vimscript #479) can highlight in a single window and in all
-  buffers, but still relies on the :syntax highlighting method, which is
-  slower and less reliable.
-- http://vim.wikia.com/wiki/Highlight_multiple_words offers control over the
-  color used by mapping the 1-9 keys on the numeric keypad, persistence, and
-  highlights only a single window.
-- highlight.vim (vimscript #1599) highlights lines or patterns of interest in
-  different colors, using mappings that start with CTRL-H and work on cword.
-- quickhl.vim (vimscript #3692) can also list the matches with colors and in
-  addition offers on-the-fly highlighting of the current word (like many IDEs
-  do).
-
-==============================================================================
-USAGE								  *mark-usage*
-
-HIGHLIGHTING						   *mark-highlighting*
-						     *m* *v_m*
-m		Mark the word under the cursor, similar to the |star|
-			command. The next free highlight group is used.
-			If already on a mark: Clear the mark, like
-			|n|.
-{Visual}m	Mark or unmark the visual selection.
-[N]m		With [N], mark the word under the cursor with the
-			named highlight group [N]. When that group is not
-			empty, the word is added as an alternative match, so
-			you can highlight multiple words with the same color.
-			When the word is already contained in the list of
-			alternatives, it is removed.
-
-			When [N] is greater than the number of defined mark
-			groups, a summary of marks is printed. Active mark
-			groups are prefixed with "*" (or "M*" when there are
-			M pattern alternatives), the default next group with
-			">", the last used search with "/" (like |:Marks|
-			does). Input the mark group, accept the default with
-			, or abort with  or any other key.
-			This way, when unsure about which number represents
-			which color, just use 99n and pick the color
-			interactively!
-
-{Visual}[N]m	Ditto, based on the visual selection.
-
-						     *r* *v_r*
-r		Manually input a regular expression to mark.
-{Visual}r	Ditto, based on the visual selection.
-
-			In accordance with the built-in |star| command,
-			all these mappings use 'ignorecase', but not
-			'smartcase'.
-								   *n*
-n		Clear the mark under the cursor.
-			If not on a mark: Disable all marks, similar to
-			|:nohlsearch|.
-			Note: Marks that span multiple lines are not detected,
-			so the use of n on such a mark will
-			unintentionally remove all marks! Use
-			{Visual}r or :Mark {pattern} to clear
-			multi-line marks (or pass [N] if you happen to know
-			the group number).
-[N]n		Clear the marks represented by highlight group [N].
-
-								       *:Mark*
-:[N]Mark		Clear the marks represented by highlight group [N].
-:[N]Mark {pattern}	Mark or unmark {pattern}. Unless [N] is given, the
-			next free highlight group is used.
-			With [N], mark the word under the cursor with the
-			named highlight group [N]. When that group is not
-			empty, the word is added as an alternative match, so
-			you can highlight multiple words with the same color.
-			When the word is already contained in the list of
-			alternatives, it is removed.
-			For implementation reasons, {pattern} cannot use the
-			'smartcase' setting, only 'ignorecase'.
-:Mark			Disable all marks, similar to |:nohlsearch|. Marks
-			will automatically re-enable when a mark is added or
-			removed, or a search for marks is performed.
-								  *:MarkClear*
-:MarkClear		Clear all marks. In contrast to disabling marks, the
-			actual mark information is cleared, the next mark will
-			use the first highlight group. This cannot be undone.
-
-
-SEARCHING						      *mark-searching*
-			    *star* *#* */* *?*
-[count]*         [count]#
-[count]* [count]#
-[count]/ [count]?
-			Use these six keys to jump to the [count]'th next /
-			previous occurrence of a mark.
-			You could also use Vim's / and ? to search, since the
-			mark patterns are (optionally, see configuration)
-			added to the search history, too.
-
-            Cursor over mark                    Cursor not over mark
- ---------------------------------------------------------------------------
-  * Jump to the next occurrence of      Jump to the next occurrence of
-            current mark, and remember it       "last mark".
-            as "last mark".
-
-  / Jump to the next occurrence of      Same as left.
-            ANY mark.
-
-   *        If * is the most recently   Do Vim's original * command.
-            used, do a *; otherwise
-            (/ is the most recently
-            used), do a /.
-
-			Note: When the cursor is on a mark, the backwards
-			search does not jump to the beginning of the current
-			mark (like the built-in search), but to the previous
-			mark. The entire mark text is treated as one entity.
-
-			You can use Vim's |jumplist| to go back to previous
-			mark matches and the position before a mark search.
-
-MARK PERSISTENCE					    *mark-persistence*
-
-The marks can be kept and restored across Vim sessions, using the |viminfo|
-file. For this to work, the "!" flag must be part of the 'viminfo' setting: >
-    set viminfo+=!  " Save and restore global variables.
-<								   *:MarkLoad*
-:MarkLoad		Restore the marks from the previous Vim session. All
-			current marks are discarded.
-								   *:MarkSave*
-:MarkSave		Save the currently defined marks (or clear the
-			persisted marks if no marks are currently defined) for
-			use in a future Vim session.
-
-By default, automatic persistence is enabled (so you don't need to explicitly
-|:MarkSave|), but you have to explicitly load the persisted marks in a new Vim
-session via |:MarkLoad|, to avoid that you accidentally drag along outdated
-highlightings from Vim session to session, and be surprised by the arbitrary
-highlight groups and occasional appearance of forgotten marks. If you want
-just that though and automatically restore any marks, set |g:mwAutoLoadMarks|.
-
-You can also initialize some marks (even using particular highlight groups) to
-static values, e.g. by including this in |vimrc|: >
-    runtime plugin/mark.vim
-    silent MarkClear
-    5Mark foo
-    6Mark bar
-Or you can define custom commands that preset certain marks: >
-    command -bar MyMarks silent MarkClear | execute '5Mark foo' | execute '6Mark bar'
-Or a command that adds to the existing marks and then toggles them: >
-    command -bar ToggleFooBarMarks execute 'Mark foo' | execute 'Mark bar'
-<
-MARK INFORMATION					    *mark-information*
-
-Both |mark-highlighting| and |mark-searching| commands print information about
-the mark and search pattern, e.g.
-	mark-1/\ ~
-This is especially useful when you want to add or subtract patterns to a mark
-highlight group via [N].
-
-								      *:Marks*
-:Marks			List all mark highlight groups and the search patterns
-			defined for them.
-			The group that will be used for the next |:Mark| or
-			|m| command (with [N]) is shown with a ">".
-			The last mark used for a search (via |*|) is
-			shown with a "/".
-
-MARK HIGHLIGHTING PALETTES					*mark-palette*
-
-The plugin comes with three predefined palettes: original, extended, and
-maximum. You can dynamically toggle between them, e.g. when you need more
-marks or a different set of colors.
-								*:MarkPalette*
-:MarkPalette {palette}	Highlight existing and future marks with the colors
-			defined in {palette}. If the new palette contains less
-			mark groups than the current one, the additional marks
-			are lost.
-			You can use |:command-completion| for {palette}.
-
-See |g:mwDefaultHighlightingPalette| for how to change the default palette,
-and |mark-palette-define| for how to add your own custom palettes.
-
-==============================================================================
-INSTALLATION						   *mark-installation*
-
-This script is packaged as a |vimball|. If you have the "gunzip" decompressor
-in your PATH, simply edit the *.vmb.gz package in Vim; otherwise, decompress
-the archive first, e.g. using WinZip. Inside Vim, install by sourcing the
-vimball or via the |:UseVimball| command. >
-    vim mark*.vmb.gz
-    :so %
-To uninstall, use the |:RmVimball| command.
-
-DEPENDENCIES						   *mark-dependencies*
-
-- Requires Vim 7.1 with |matchadd()|, or Vim 7.2 or higher.
-
-==============================================================================
-CONFIGURATION						  *mark-configuration*
-
-For a permanent configuration, put the following commands into your |vimrc|.
-
-					 *mark-colors* *mark-highlight-colors*
-This plugin defines 6 mark groups:
-    1: Cyan  2:Green  3:Yellow  4:Red  5:Magenta  6:Blue ~
-Higher numbers always take precedence and are displayed above lower ones.
-
-					      *g:mwDefaultHighlightingPalette*
-Especially if you use GVIM, you can switch to a richer palette of up to 18
-colors: >
-    let g:mwDefaultHighlightingPalette = 'extended'
-Or, if you have both good eyes and display, you can try a palette that defines
-27, 58, or even 77 colors, depending on the number of available colors: >
-    let g:mwDefaultHighlightingPalette = 'maximum'
-<
-If you like the additional colors, but don't need that many of them, restrict
-their number via: >
-	let g:mwDefaultHighlightingNum = 9
-<
-							*mark-colors-redefine*
-If none of the default highlightings suits you, define your own colors in your
-vimrc file (or anywhere before this plugin is sourced), in the following form
-(where N = 1..): >
-    highlight MarkWordN ctermbg=Cyan ctermfg=Black guibg=#8CCBEA guifg=Black
-You can also use this form to redefine only some of the default highlightings.
-If you want to avoid losing the highlightings on |:colorscheme| commands, you
-need to re-apply your highlights on the |ColorScheme| event, similar to how
-this plugin does. Or you define the palette not via :highlight commands, but
-use the plugin's infrastructure: >
-    let g:mwDefaultHighlightingPalette = [
-    \	{ 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' },
-    \	...
-    \]
-<							 *mark-palette-define*
-If you want to switch multiple palettes during runtime, you need to define
-them as proper palettes: >
-    let g:mwPalettes['mypalette'] = [
-    \	{ 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' },
-    \	...
-    \]
-    let g:mwPalettes['other'] = [ ... ]
-    let g:mwDefaultHighlightingPalette = 'mypalette'
-To add your palette to the existing ones, do this after the default palette
-has been defined, e.g. in .vim/after/plugin/mark.vim). Alternatively, you can
-also completely redefine all available palettes in .vimrc.
-
-The search type highlighting (in the search message) can be changed via: >
-    highlight link SearchSpecialSearchType MoreMsg
-<
-								 *g:mwHistAdd*
-By default, any marked words are also added to the search (/) and input (@)
-history; if you don't want that, remove the corresponding symbols from: >
-    let g:mwHistAdd = '/@'
-<
-							   *g:mwAutoLoadMarks*
-To enable the automatic restore of marks from a previous Vim session: >
-    let g:mwAutoLoadMarks = 1
-<							   *g:mwAutoSaveMarks*
-To turn off the automatic persistence of marks across Vim sessions: >
-    let g:mwAutoSaveMarks = 0
-You can still explicitly save marks via |:MarkSave|.
-
-							      *g:mwIgnoreCase*
-If you have set 'ignorecase', but want marks to be case-insensitive, you can
-override the default behavior of using 'ignorecase' by setting: >
-	let g:mwIgnoreCase = 0
-<
-
-							       *mark-mappings*
-You can use different mappings by mapping to the Mark... mappings (use
-":map Mark" to list them all) before this plugin is sourced.
-
-There are no default mappings for toggling all marks and for the |:MarkClear|
-command, but you can define some yourself: >
-    nmap M MarkToggle
-    nmap N MarkAllClear
-<
-To remove the default overriding of * and #, use: >
-    nmap IgnoreMarkSearchNext MarkSearchNext
-    nmap IgnoreMarkSearchPrev MarkSearchPrev
-<
-If you don't want the * and # mappings remember the last search type and
-instead always search for the next occurrence of the current mark, with a
-fallback to Vim's original * command, use: >
-    nmap * MarkSearchOrCurNext
-    nmap # MarkSearchOrCurPrev
-<
-						 *mark-whitespace-indifferent*
-Some people like to create a mark based on the visual selection, like
-|v_m|, but have whitespace in the selection match any whitespace when
-searching (searching for "hello world" will also find "helloworld" as
-well as "hello" at the end of a line, with "world" at the start of the next
-line). The Vim Tips Wiki describes such a setup for the built-in search at
-    http://vim.wikia.com/wiki/Search_for_visually_selected_text
-You can achieve the same with the Mark plugin through the following scriptlet: >
-    function! s:GetVisualSelectionAsLiteralWhitespaceIndifferentPattern()
-    	return substitute(escape(mark#GetVisualSelection(), '\' . '^$.*[~'), '\_s\+', '\\_s\\+', 'g')
-    endfunction
-    vnoremap  MarkWhitespaceIndifferent :if !mark#DoMark(v:count, GetVisualSelectionAsLiteralWhitespaceIndifferentPattern())execute "normal! \C-\>\C-n>\Esc>"endif
-Using this, you can assign a new visual mode mapping * >
-    vmap * MarkWhitespaceIndifferent
-or override the default |v_m| mapping, in case you always want this
-behavior: >
-    vmap IgnoreMarkSet MarkSet
-    vmap m MarkWhitespaceIndifferent
-<
-==============================================================================
-INTEGRATION						    *mark-integration*
-
-The following functions offer (read-only) access to the number of marks and
-individual patterns:
-- mark#GetNum()
-- mark#GetPattern([{index}])
-
-==============================================================================
-LIMITATIONS						    *mark-limitations*
-
-- If the 'ignorecase' setting is changed, there will be discrepancies between
-  the highlighted marks and subsequent jumps to marks.
-- If {pattern} in a :Mark command contains atoms that change the semantics of
-  the entire (|/\c|, |/\C|) or following (|/\v|,|/\V|, |/\M|) regular
-  expression, there may be discrepancies between the highlighted marks and
-  subsequent jumps to marks.
-
-KNOWN PROBLEMS						 *mark-known-problems*
-
-TODO								   *mark-todo*
-
-IDEAS								  *mark-ideas*
-
-Taken from an alternative implementation at
-http://vim.wikia.com/wiki/Highlight_multiple_words:
-- Use keys 1-9 on the numeric keypad to toggle a highlight group number.
-
-==============================================================================
-HISTORY								*mark-history*
-
-2.7.2	15-Oct-2012
-- Issue an error message "No marks defined" instead of moving the cursor by
-  one character when there are no marks (e.g. initially or after :MarkClear).
-- Enable custom integrations via new mark#GetNum() and mark#GetPattern()
-  functions.
-
-2.7.1	14-Sep-2012
-- Enable alternative * / # mappings that do not remember the last search type
-  through new MarkSearchOrCurNext, MarkSearchOrCurPrev,
-  MarkSearchOrAnyNext, MarkSearchOrAnyPrev mappings. Based on an
-  inquiry from Kevin Huanpeng Du.
-
-2.7.0	04-Jul-2012
-- ENH: Implement :MarkPalette command to switch mark highlighting on-the-fly
-  during runtime.
-- Add "maximum" palette contributed by rockybalboa4.
-
-2.6.5	24-Jun-2012
-- Don't define the default m and r mappings in select mode,
-  just visual mode. Thanks to rockybalboa4 for pointing this out.
-
-2.6.4	23-Apr-2012
-- Allow to override 'ignorecase' setting via g:mwIgnoreCase. Thanks to fanhe
-  for the idea and sending a patch.
-
-2.6.3	27-Mar-2012
-- ENH: Allow choosing of palette and limiting of default mark highlight groups
-  via g:mwDefaultHighlightingPalette and g:mwDefaultHighlightingNum.
-- ENH: Offer an extended color palette in addition to the original 6-color one.
-  Enable this via :let g:mwDefaultHighlightingPalette = "extended" in your
-  vimrc.
-
-2.6.2	26-Mar-2012
-- ENH: When a [count] exceeding the number of available mark groups is given,
-  a summary of marks is given and the user is asked to select a mark group.
-  This allows to interactively choose a color via 99m.
-  If you use the |mark-whitespace-indifferent| mappings, *** PLEASE UPDATE THE
-  vnoremap MarkWhitespaceIndifferent DEFINITION ***
-- ENH: Include count of alternative patterns in :Marks list.
-- CHG: Use ">" for next mark and "/" for last search in :Marks.
-
-2.6.1	23-Mar-2012
-- ENH: Add :Marks command that prints all mark highlight groups and their
-  search patterns, plus information about the current search mark, next mark
-  group, and whether marks are disabled.
-- ENH: Show which mark group a pattern was set / added / removed / cleared.
-- FIX: When the cursor is positioned on the current mark, [N]n /
-  MarkClear with [N] appended the pattern for the current mark (again
-  and again) instead of clearing it. Must not pass current mark pattern when
-  [N] is given.
-- CHG: Show mark group number in same-mark search and rename search types from
-  "any-mark", "same-mark", and "new-mark" to the shorter "mark-*", "mark-N",
-  and "mark-N!", respectively.
-
-2.6.0	22-Mar-2012
-- ENH: Allow [count] for m and :Mark to add / subtract match to / from
-  highlight group [count], and use [count]n to clear only highlight
-  group [count]. This was also requested by Philipp Marek.
-- FIX: :Mark and n actually toggled marks back on when they were
-  already off. Now, they stay off on multiple invocations. Use :call
-  mark#Toggle() / MarkToggle if you want toggling.
-
-2.5.3	02-Mar-2012
-- BUG: Version check mistakenly excluded Vim 7.1 versions that do have the
-  matchadd() function. Thanks to Philipp Marek for sending a patch.
-
-2.5.2	09-Nov-2011
-Fixed various problems with wrap-around warnings:
-- BUG: With a single match and 'wrapscan' set, a search error was issued.
-- FIX: Backwards search with single match leads to wrong error message
-  instead.
-- FIX: Wrong logic for determining l:isWrapped lets wrap-around go undetected.
-
-2.5.1	17-May-2011
-- FIX: == comparison in s:DoMark() leads to wrong regexp (\A vs. \a) being
-  cleared when 'ignorecase' is set. Use case-sensitive comparison ==# instead.
-- Refine :MarkLoad messages
-- Add whitespace-indifferent visual mark configuration example. Thanks to Greg
-  Klein for the suggestion.
-
-2.5.0	07-May-2011
-- ENH: Add explicit mark persistence via :MarkLoad and :MarkSave commands and
-  automatic persistence via the g:mwAutoLoadMarks and g:mwAutoSaveMarks
-  configuration flags. (Request from Mun Johl, 16-Apr-2010)
-- Expose toggling of mark display (keeping the mark patterns) via new
-  MarkToggle mapping. Offer :MarkClear command as a replacement for the
-  old argumentless :Mark command, which now just disables, but not clears all
-  marks.
-
-2.4.4	18-Apr-2011
-- BUG: Include trailing newline character in check for current mark, so that a
-  mark that matches the entire line (e.g. created by Vm) can be
-  cleared via n. Thanks to ping for reporting this.
-- FIX: On overlapping marks, mark#CurrentMark() returned the lowest, not the
-  highest visible mark. So on overlapping marks, the one that was not visible
-  at the cursor position was removed; very confusing! Use reverse iteration
-  order.
-- FIX: To avoid an arbitrary ordering of highlightings when the highlighting
-  group names roll over, and to avoid order inconsistencies across different
-  windows and tabs, we assign a different priority based on the highlighting
-  group.
-
-2.4.3	16-Apr-2011
-- Avoid losing the mark highlightings on :syn on or :colorscheme commands.
-  Thanks to Zhou YiChao for alerting me to this issue and suggesting a fix.
-- Made the script more robust when somehow no highlightings have been defined
-  or when the window-local reckoning of match IDs got lost. I had very
-  occasionally encountered such script errors in the past.
-- Made global housekeeping variables script-local, only g:mwHistAdd is used
-  for configuration.
-
-2.4.2	14-Jan-2011 (unreleased)
-- FIX: Capturing the visual selection could still clobber the blockwise yank
-  mode of the unnamed register.
-
-2.4.1	13-Jan-2011
-- FIX: Using a named register for capturing the visual selection on
-  {Visual}m and {Visual}r clobbered the unnamed register. Now
-  using the unnamed register.
-
-2.4.0	13-Jul-2010
-- ENH: The MarkSearch mappings ([*#/?]) add the original cursor
-  position to the jump list, like the built-in [/?*#nN] commands. This allows
-  to use the regular jump commands for mark matches, like with regular search
-  matches.
-
-2.3.3	19-Feb-2010
-- BUG: Clearing of an accidental zero-width match (e.g. via :Mark \zs) results
-  in endless loop. Thanks to Andy Wokula for the patch.
-
-2.3.2	17-Nov-2009
-- BUG: Creation of literal pattern via '\V' in {Visual}m mapping
-  collided with individual escaping done in m mapping so that an
-  escaped '\*' would be interpreted as a multi item when both modes are used
-  for marking. Thanks to Andy Wokula for the patch.
-
-2.3.1	06-Jul-2009
-- Now working correctly when 'smartcase' is set. All mappings and the :Mark
-  command use 'ignorecase', but not 'smartcase'.
-
-2.3.0	04-Jul-2009
-- All jump commands now take an optional [count], so you can quickly skip over
-  some marks, as with the built-in */# and n/N commands. For this, the entire
-  core search algorithm has been rewritten. The script's logic has been
-  simplified through the use of Vim 7 features like Lists.
-- Now also printing a Vim-alike search error message when 'nowrapscan' is set.
-
-2.2.0	02-Jul-2009
-- Split off functions into autoload script.
-- Initialization of global variables and autocommands is now done lazily on
-  the first use, not during loading of the plugin. This reduces Vim startup
-  time and footprint as long as the functionality isn't yet used.
-- Split off documentation into separate help file. Now packaging as VimBall.
-
-
-2.1.0	06-Jun-2009
-- Replaced highlighting via :syntax with matchadd() / matchdelete(). This
-  requires Vim 7.2 / 7.1 with patches. This method is faster, there are no
-  more clashes with syntax highlighting (:match always has preference), and
-  the background highlighting does not disappear under 'cursorline'.
-- Using winrestcmd() to fix effects of :windo: By entering a window, its
-  height is potentially increased from 0 to 1.
-- Handling multiple tabs by calling s:UpdateScope() on the TabEnter event.
-
-2.0.0	01-Jun-2009
-- Now using Vim List for g:mwWord and thus requiring Vim 7. g:mwCycle is now
-  zero-based, but the syntax groups "MarkWordx" are still one-based.
-- Factored :syntax operations out of s:DoMark() and s:UpdateMark() so that
-  they can all be done in a single :windo.
-- Normal mode MarkSet now has the same semantics as its visual mode
-  cousin: If the cursor is on an existing mark, the mark is removed.
-  Beforehand, one could only remove a visually selected mark via again
-  selecting it. Now, one simply can invoke the mapping when on such a mark.
-
-1.6.1	31-May-2009
-Publication of improved version by Ingo Karkat.
-- Now prepending search type ("any-mark", "same-mark", "new-mark") for better
-  identification.
-- Retired the algorithm in s:PrevWord in favor of simply using , which
-  makes mark.vim work like the * command. At the end of a line, non-keyword
-  characters may now be marked; the previous algorithm preferred any preceding
-  word.
-- BF: If 'iskeyword' contains characters that have a special meaning in a
-  regexp (e.g. [.*]), these are now escaped properly.
-- Highlighting can now actually be overridden in the vimrc (anywhere _before_
-  sourcing this script) by using ':hi def'.
-- Added missing setter for re-inclusion guard.
-
-1.5.0	01-Sep-2008
-Bug fixes and enhancements by Ingo Karkat.
-- Added MarkAllClear (without a default mapping), which clears all
-  marks, even when the cursor is on a mark.
-- Added ... mappings for hard-coded \*, \#, \/, \?, * and #, to allow
-  re-mapping and disabling. Beforehand, there were some ... mappings
-  and hard-coded ones; now, everything can be customized.
-- BF: Using :autocmd without  to avoid removing _all_ autocmds for the
-  BufWinEnter event. (Using a custom :augroup would be even better.)
-- BF: Explicitly defining s:current_mark_position; some execution paths left
-  it undefined, causing errors.
-- ENH: Make the match according to the 'ignorecase' setting, like the star
-  command.
-- ENH: The jumps to the next/prev occurrence now print 'search hit BOTTOM,
-  continuing at TOP" and "Pattern not found:..." messages, like the * and n/N
-  Vim search commands.
-- ENH: Jumps now open folds if the occurrence is inside a closed fold, just
-  like n/N do.
-
-1.1.8-g	25-Apr-2008
-Last version published by Yuheng Xie on vim.org.
-
-1.1.2	22-Mar-2005
-Initial version published by Yuheng Xie on vim.org.
-
-==============================================================================
-Copyright: (C) 2005-2008 Yuheng Xie
-           (C) 2008-2012 Ingo Karkat
-The VIM LICENSE applies to this script; see |copyright|.
-
-Maintainer:	Ingo Karkat 
-==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
diff --git a/bundle/mark/plugin/mark.vim b/bundle/mark/plugin/mark.vim
deleted file mode 100644
index 78526ca..0000000
--- a/bundle/mark/plugin/mark.vim
+++ /dev/null
@@ -1,420 +0,0 @@
-" Script Name: mark.vim
-" Description: Highlight several words in different colors simultaneously.
-"
-" Copyright:   (C) 2005-2008 Yuheng Xie
-"              (C) 2008-2012 Ingo Karkat
-"   The VIM LICENSE applies to this script; see ':help copyright'.
-"
-" Maintainer:  Ingo Karkat 
-" Orig Author: Yuheng Xie 
-" Contributors:Luc Hermitte, Ingo Karkat
-"
-" Dependencies:
-"  - Requires Vim 7.1 with "matchadd()", or Vim 7.2 or higher.
-"  - mark.vim autoload script
-"  - mark/palettes.vim autoload script for additional palettes
-"
-" Version:     2.7.1
-" Changes:
-" 13-Sep-2012, Ingo Karkat
-" - Enable alternative * / # mappings that do not remember the last search type
-"   through new MarkSearchOrCurNext, MarkSearchOrCurPrev,
-"   MarkSearchOrAnyNext, MarkSearchOrAnyPrev mappings.
-"
-" 04-Jul-2012, Ingo Karkat
-" - Introduce g:mwPalettes instead of hard-coding them in
-"   s:DefaultHighlightings(), which got s:DefineHighlightings() extracted and
-"   the rest renamed to s:GetPalette().
-" - Allow overriding of existing mark highlighting via a:isOverride argument to
-"   s:DefineHighlightings().
-" - Add "maximum" palette contributed by rockybalboa4 and move it and the
-"   "extended" palette to a separate mark/palettes.vim autoload script.
-" - ENH: Implement :MarkPalette command to switch mark highlighting on-the-fly
-"   during runtime.
-"
-" 24-Jun-2012, Ingo Karkat
-" - Don't define the default m and r mappings in select mode,
-"   just visual mode. Thanks to rockybalboa4 for pointing this out.
-"
-" 27-Mar-2012, Ingo Karkat
-" - ENH: Allow choosing of palette and limiting of default mark highlight groups
-"   via g:mwDefaultHighlightingPalette and g:mwDefaultHighlightingNum.
-" - ENH: Offer an extended color palette in addition to the original 6-color one.
-"
-" 23-Mar-2012, Ingo Karkat
-" - ENH: Add :Marks command that prints all mark highlight groups and their
-"   search patterns, plus information about the current search mark, next mark
-"   group, and whether marks are disabled.
-" - FIX: When the cursor is positioned on the current mark, [N]n /
-"   MarkClear with [N] appended the pattern for the current mark (again
-"   and again) instead of clearing it. Must not pass current mark pattern when
-"   [N] is given.
-"
-" 22-Mar-2012, Ingo Karkat
-" - ENH: Allow [count] for m and :Mark to add / subtract match to / from
-"   highlight group [count], and use [count]n to clear only highlight
-"   group [count]. This was also requested by Philipp Marek.
-"
-" 02-Mar-2012, Philipp Marek
-" - BUG: Version check mistakenly excluded Vim 7.1 versions that do have the
-"   matchadd() function.
-"
-" 06-May-2011, Ingo Karkat
-" - By default, enable g:mwAutoSaveMarks, so that marks are always persisted,
-"   but disable g:mwAutoLoadMarks, so that persisted marks have to be explicitly
-"   loaded, if that is desired. I often wondered why I got unexpected mark
-"   highlightings in a new Vim session until I realized that I had used marks in
-"   a previous session and forgot to clear them.
-"
-" 21-Apr-2011, Ingo Karkat
-" - Expose toggling of mark display (keeping the mark patterns) via new
-"   MarkToggle mapping. Offer :MarkClear command as a replacement for the
-"   old argumentless :Mark command, which now just disables, but not clears all
-"   marks.
-" - Implement lazy-loading of disabled persistent marks via g:mwDoDeferredLoad
-"   flag passing to autoload/mark.vim.
-"
-" 19-Apr-2011, Ingo Karkat
-" - ENH: Add explicit mark persistence via :MarkLoad and :MarkSave commands and
-"   automatic persistence via the g:mwAutoLoadMarks and g:mwAutoSaveMarks
-"   configuration flags.
-"
-" 15-Apr-2011, Ingo Karkat
-" - Avoid losing the mark highlightings on :syn on or :colorscheme commands.
-"   Thanks to Zhou YiChao for alerting me to this issue and suggesting a fix.
-"
-" 17-Nov-2009, Ingo Karkat
-" - Replaced the (overly) generic mark#GetVisualSelectionEscaped() with
-"   mark#GetVisualSelectionAsRegexp() and
-"   mark#GetVisualSelectionAsLiteralPattern().
-"
-" 04-Jul-2009, Ingo Karkat
-" - A [count] before any mapping either caused "No range allowed" error or just
-"   repeated the :call [count] times, resulting in the current search pattern
-"   echoed [count] times and a hit-enter prompt. Now suppressing [count] via
-"    and handling it inside the implementation.
-" - Now passing isBackward (0/1) instead of optional 'b' flag into functions.
-"   Also passing empty regexp to mark#MarkRegex() to avoid any optional
-"   arguments.
-"
-" 02-Jul-2009, Ingo Karkat
-" - Split off functions into autoload script.
-" - Removed g:force_reload_mark.
-" - Initialization of global variables and autocommands is now done lazily on
-"   the first use, not during loading of the plugin. This reduces Vim startup
-"   time and footprint as long as the functionality isn't yet used.
-"
-" 6-Jun-2009, Ingo Karkat
-"  1. Somehow s:WrapMessage() needs a redraw before the :echo to avoid that a
-"     later Vim redraw clears the wrap message. This happened when there's no
-"     statusline and thus :echo'ing into the ruler.
-"  2. Removed line-continuations and ':set cpo=...'. Upper-cased  and .
-"  3. Added default highlighting for the special search type.
-"
-" 2-Jun-2009, Ingo Karkat
-"  1. Replaced highlighting via :syntax with matchadd() / matchdelete(). This
-"     requires Vim 7.2 / 7.1 with patches. This method is faster, there are no
-"     more clashes with syntax highlighting (:match always has preference), and
-"     the background highlighting does not disappear under 'cursorline'.
-"  2. Factored :windo application out into s:MarkScope().
-"  3. Using winrestcmd() to fix effects of :windo: By entering a window, its
-"     height is potentially increased from 0 to 1.
-"  4. Handling multiple tabs by calling s:UpdateScope() on the TabEnter event.
-"
-" 1-Jun-2009, Ingo Karkat
-"  1. Now using Vim List for g:mwWord and thus requiring Vim 7. g:mwCycle is now
-"     zero-based, but the syntax groups "MarkWordx" are still one-based.
-"  2. Added missing setter for re-inclusion guard.
-"  3. Factored :syntax operations out of s:DoMark() and s:UpdateMark() so that
-"     they can all be done in a single :windo.
-"  4. Normal mode MarkSet now has the same semantics as its visual mode
-"     cousin: If the cursor is on an existing mark, the mark is removed.
-"     Beforehand, one could only remove a visually selected mark via again
-"     selecting it. Now, one simply can invoke the mapping when on such a mark.
-"  5. Highlighting can now actually be overridden in the vimrc (anywhere
-"     _before_ sourcing this script) by using ':hi def'.
-"
-" 31-May-2009, Ingo Karkat
-"  1. Refactored s:Search() to optionally take advantage of SearchSpecial.vim
-"     autoload functionality for echoing of search pattern, wrap and error
-"     messages.
-"  2. Now prepending search type ("any-mark", "same-mark", "new-mark") for
-"     better identification.
-"  3. Retired the algorithm in s:PrevWord in favor of simply using ,
-"     which makes mark.vim work like the * command. At the end of a line,
-"     non-keyword characters may now be marked; the previous algorithm prefered
-"     any preceding word.
-"  4. BF: If 'iskeyword' contains characters that have a special meaning in a
-"     regex (e.g. [.*]), these are now escaped properly.
-"
-" 01-Sep-2008, Ingo Karkat: bugfixes and enhancements
-"  1. Added MarkAllClear (without a default mapping), which clears all
-"     marks, even when the cursor is on a mark.
-"  2. Added ... mappings for hard-coded \*, \#, \/, \?, * and #, to allow
-"     re-mapping and disabling. Beforehand, there were some ... mappings
-"     and hard-coded ones; now, everything can be customized.
-"  3. Bugfix: Using :autocmd without  to avoid removing _all_ autocmds for
-"     the BufWinEnter event. (Using a custom :augroup would be even better.)
-"  4. Bugfix: Explicitly defining s:current_mark_position; some execution paths
-"     left it undefined, causing errors.
-"  5. Refactoring: Instead of calling s:InitMarkVariables() at the beginning of
-"     several functions, just calling it once when sourcing the script.
-"  6. Refactoring: Moved multiple 'let lastwinnr = winnr()' to a single one at the
-"     top of DoMark().
-"  7. ENH: Make the match according to the 'ignorecase' setting, like the star
-"     command.
-"  8. The jumps to the next/prev occurrence now print 'search hit BOTTOM,
-"     continuing at TOP" and "Pattern not found:..." messages, like the * and
-"     n/N Vim search commands.
-"  9. Jumps now open folds if the occurrence is inside a closed fold, just like n/N
-"     do.
-"
-" 10th Mar 2006, Yuheng Xie: jump to ANY mark
-" (*) added \* \# \/ \? for the ability of jumping to ANY mark, even when the
-"     cursor is not currently over any mark
-"
-" 20th Sep 2005, Yuheng Xie: minor modifications
-" (*) merged MarkRegexVisual into MarkRegex
-" (*) added GetVisualSelectionEscaped for multi-lines visual selection and
-"     visual selection contains ^, $, etc.
-" (*) changed the name ThisMark to CurrentMark
-" (*) added SearchCurrentMark and re-used raw map (instead of Vim function) to
-"     implement * and #
-"
-" 14th Sep 2005, Luc Hermitte: modifications done on v1.1.4
-" (*) anti-reinclusion guards. They do not guard colors definitions in case
-"     this script must be reloaded after .gvimrc
-" (*) Protection against disabled |line-continuation|s.
-" (*) Script-local functions
-" (*) Default keybindings
-" (*) \r for visual mode
-" (*) uses  instead of "\"
-" (*) do not mess with global variable g:w
-" (*) regex simplified -> double quotes changed into simple quotes.
-" (*) strpart(str, idx, 1) -> str[idx]
-" (*) command :Mark
-"     -> e.g. :Mark Mark.\{-}\ze(
-
-" Avoid installing twice or when in unsupported Vim version.
-if exists('g:loaded_mark') || (v:version == 701 && ! exists('*matchadd')) || (v:version < 701)
-	finish
-endif
-let g:loaded_mark = 1
-let s:save_cpo = &cpo
-set cpo&vim
-
-"- configuration --------------------------------------------------------------
-
-if ! exists('g:mwHistAdd')
-	let g:mwHistAdd = '/@'
-endif
-
-if ! exists('g:mwAutoLoadMarks')
-	let g:mwAutoLoadMarks = 0
-endif
-
-if ! exists('g:mwAutoSaveMarks')
-	let g:mwAutoSaveMarks = 1
-endif
-
-if ! exists('g:mwDefaultHighlightingNum')
-	let g:mwDefaultHighlightingNum = -1
-endif
-if ! exists('g:mwDefaultHighlightingPalette')
-	let g:mwDefaultHighlightingPalette = 'original'
-endif
-if ! exists('g:mwPalettes')
-	let g:mwPalettes = {
-	\	'original': [
-		\   { 'ctermbg':'Cyan',       'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' },
-		\   { 'ctermbg':'Green',      'ctermfg':'Black', 'guibg':'#A4E57E', 'guifg':'Black' },
-		\   { 'ctermbg':'Yellow',     'ctermfg':'Black', 'guibg':'#FFDB72', 'guifg':'Black' },
-		\   { 'ctermbg':'Red',        'ctermfg':'Black', 'guibg':'#FF7272', 'guifg':'Black' },
-		\   { 'ctermbg':'Magenta',    'ctermfg':'Black', 'guibg':'#FFB3FF', 'guifg':'Black' },
-		\   { 'ctermbg':'Blue',       'ctermfg':'Black', 'guibg':'#9999FF', 'guifg':'Black' },
-		\],
-	\	'extended': function('mark#palettes#Extended'),
-	\	'maximum': function('mark#palettes#Maximum')
-	\}
-endif
-
-
-
-"- default highlightings ------------------------------------------------------
-
-function! s:GetPalette()
-	let l:palette = []
-	if type(g:mwDefaultHighlightingPalette) == type([])
-		" There are custom color definitions, not a named built-in palette.
-		return g:mwDefaultHighlightingPalette
-	endif
-	if ! has_key(g:mwPalettes, g:mwDefaultHighlightingPalette)
-		if ! empty(g:mwDefaultHighlightingPalette)
-			let v:warningmsg = 'Mark: Unknown value for g:mwDefaultHighlightingPalette: ' . g:mwDefaultHighlightingPalette
-			echohl WarningMsg
-			echomsg v:warningmsg
-			echohl None
-		endif
-
-		return []
-	endif
-
-	if type(g:mwPalettes[g:mwDefaultHighlightingPalette]) == type([])
-		return g:mwPalettes[g:mwDefaultHighlightingPalette]
-	elseif type(g:mwPalettes[g:mwDefaultHighlightingPalette]) == type(function('tr'))
-		return call(g:mwPalettes[g:mwDefaultHighlightingPalette], [])
-	else
-		let v:errmsg = printf('Mark: Invalid value type for g:mwPalettes[%s]', g:mwDefaultHighlightingPalette)
-		echohl ErrorMsg
-		echomsg v:errmsg
-		echohl None
-		return []
-	endif
-endfunction
-function! s:DefineHighlightings( palette, isOverride )
-	let l:command = (a:isOverride ? 'highlight' : 'highlight def')
-	let l:highlightingNum = (g:mwDefaultHighlightingNum == -1 ? len(a:palette) : g:mwDefaultHighlightingNum)
-	for i in range(1, l:highlightingNum)
-		execute l:command 'MarkWord' . i join(map(items(a:palette[i - 1]), 'join(v:val, "=")'))
-	endfor
-	return l:highlightingNum
-endfunction
-call s:DefineHighlightings(s:GetPalette(), 0)
-autocmd ColorScheme * call DefineHighlightings(GetPalette(), 0)
-
-" Default highlighting for the special search type.
-" You can override this by defining / linking the 'SearchSpecialSearchType'
-" highlight group before this script is sourced.
-highlight def link SearchSpecialSearchType MoreMsg
-
-
-
-"- mappings -------------------------------------------------------------------
-
-nnoremap  MarkSet      :if !mark#MarkCurrentWord(v:count)execute "normal! \C-\>\C-n>\Esc>"endif
-vnoremap  MarkSet      :if !mark#DoMark(v:count, mark#GetVisualSelectionAsLiteralPattern())execute "normal! \C-\>\C-n>\Esc>"endif
-nnoremap  MarkRegex    :call mark#MarkRegex('')
-vnoremap  MarkRegex    :call mark#MarkRegex(mark#GetVisualSelectionAsRegexp())
-nnoremap  MarkClear    :if !mark#DoMark(v:count, (v:count ? '' : mark#CurrentMark()[0]))execute "normal! \C-\>\C-n>\Esc>"endif
-nnoremap  MarkAllClear :call mark#ClearAll()
-nnoremap  MarkToggle   :call mark#Toggle()
-
-nnoremap  MarkSearchCurrentNext :call mark#SearchCurrentMark(0)
-nnoremap  MarkSearchCurrentPrev :call mark#SearchCurrentMark(1)
-nnoremap  MarkSearchAnyNext     :call mark#SearchAnyMark(0)
-nnoremap  MarkSearchAnyPrev     :call mark#SearchAnyMark(1)
-" When typed, [*#nN] open the fold at the search result, but inside a mapping or
-" :normal this must be done explicitly via 'zv'.
-nnoremap  MarkSearchNext        :if !mark#SearchNext(0)execute 'normal! *zv'endif
-nnoremap  MarkSearchPrev        :if !mark#SearchNext(1)execute 'normal! #zv'endif
-nnoremap  MarkSearchOrCurNext   :if !mark#SearchNext(0,'mark#SearchCurrentMark')execute 'normal! *zv'endif
-nnoremap  MarkSearchOrCurPrev   :if !mark#SearchNext(1,'mark#SearchCurrentMark')execute 'normal! #zv'endif
-nnoremap  MarkSearchOrAnyNext   :if !mark#SearchNext(0,'mark#SearchAnyMark')execute 'normal! *zv'endif
-nnoremap  MarkSearchOrAnyPrev   :if !mark#SearchNext(1,'mark#SearchAnyMark')execute 'normal! #zv'endif
-
-
-if !hasmapto('MarkSet', 'n')
-	nmap  m MarkSet
-endif
-if !hasmapto('MarkSet', 'v')
-	xmap  m MarkSet
-endif
-if !hasmapto('MarkRegex', 'n')
-	nmap  r MarkRegex
-endif
-if !hasmapto('MarkRegex', 'v')
-	xmap  r MarkRegex
-endif
-if !hasmapto('MarkClear', 'n')
-	nmap  n MarkClear
-endif
-" No default mapping for MarkAllClear.
-" No default mapping for MarkToggle.
-
-if !hasmapto('MarkSearchCurrentNext', 'n')
-	nmap  * MarkSearchCurrentNext
-endif
-if !hasmapto('MarkSearchCurrentPrev', 'n')
-	nmap  # MarkSearchCurrentPrev
-endif
-if !hasmapto('MarkSearchAnyNext', 'n')
-	nmap  / MarkSearchAnyNext
-endif
-if !hasmapto('MarkSearchAnyPrev', 'n')
-	nmap  ? MarkSearchAnyPrev
-endif
-if !hasmapto('MarkSearchNext', 'n')
-	nmap  * MarkSearchNext
-endif
-if !hasmapto('MarkSearchPrev', 'n')
-	nmap  # MarkSearchPrev
-endif
-
-
-
-"- commands -------------------------------------------------------------------
-
-command! -count -nargs=? Mark if !mark#DoMark(, ) | echoerr printf('Only %d mark highlight groups', mark#GetGroupNum()) | endif
-command! -bar MarkClear call mark#ClearAll()
-command! -bar Marks call mark#List()
-
-command! -bar MarkLoad call mark#LoadCommand(1)
-command! -bar MarkSave call mark#SaveCommand()
-function! s:SetPalette( paletteName )
-	if type(g:mwDefaultHighlightingPalette) == type([])
-		" Convert the directly defined list to a palette named "default".
-		let g:mwPalettes['default'] = g:mwDefaultHighlightingPalette
-		unlet! g:mwDefaultHighlightingPalette   " Avoid E706.
-	endif
-	let g:mwDefaultHighlightingPalette = a:paletteName
-
-	let l:palette = s:GetPalette()
-	if empty(l:palette)
-		return
-	endif
-
-	call mark#ReInit(s:DefineHighlightings(l:palette, 1))
-	call mark#UpdateScope()
-endfunction
-function! s:MarkPaletteComplete( ArgLead, CmdLine, CursorPos )
-	return sort(filter(keys(g:mwPalettes), 'v:val =~ ''\V\^'' . escape(a:ArgLead, "\\")'))
-endfunction
-command! -bar -nargs=1 -complete=customlist,MarkPaletteComplete MarkPalette call SetPalette()
-
-
-
-"- marks persistence ----------------------------------------------------------
-
-if g:mwAutoLoadMarks
-	" As the viminfo is only processed after sourcing of the runtime files, the
-	" persistent global variables are not yet available here. Defer this until Vim
-	" startup has completed.
-	function! s:AutoLoadMarks()
-		if g:mwAutoLoadMarks && exists('g:MARK_MARKS') && g:MARK_MARKS !=# '[]'
-			if ! exists('g:MARK_ENABLED') || g:MARK_ENABLED
-				" There are persistent marks and they haven't been disabled; we need to
-				" show them right now.
-				call mark#LoadCommand(0)
-			else
-				" Though there are persistent marks, they have been disabled. We avoid
-				" sourcing the autoload script and its invasive autocmds right now;
-				" maybe the marks are never turned on. We just inform the autoload
-				" script that it should do this once it is sourced on-demand by a
-				" mark mapping or command.
-				let g:mwDoDeferredLoad = 1
-			endif
-		endif
-	endfunction
-
-	augroup MarkInitialization
-		autocmd!
-		" Note: Avoid triggering the autoload unless there actually are persistent
-		" marks. For that, we need to check that g:MARK_MARKS doesn't contain the
-		" empty list representation, and also :execute the :call.
-		autocmd VimEnter * call AutoLoadMarks()
-	augroup END
-endif
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-" vim: ts=4 sts=0 sw=4 noet
diff --git a/bundle/occur/plugin/occur.vim b/bundle/occur/plugin/occur.vim
deleted file mode 100644
index 8c74e36..0000000
--- a/bundle/occur/plugin/occur.vim
+++ /dev/null
@@ -1,86 +0,0 @@
-"=============================================================================
-" File:        occur.vim
-" Author:      FURUSAWA, Noriyoshi (noriyosi xxx gmail dot com) xxx=@,dot=.
-" Last Change: 2008/7/13
-" Version:     0.03
-"=============================================================================
-
-if exists('loaded_occur') || &cp
-    finish
-endif
-let loaded_occur=1
-
-if v:version < 700
-    echo "Sorry, occur ONLY runs with Vim 7.0 and greater."
-    finish
-endif
-
-if !exists("g:occur_no_quickfix_map")
-    let g:occur_no_quickfix_map = 0
-endif
-
-" Key bind
-nnoremap   oc :Occur
-" gryf: Changed followin mapping due to confilct with showmarks plugin
-nnoremap   om :Moccur
-" gryf: Changed followin mapping due to confilct with marks plugin
-nnoremap   8 *:Moccur
-
-" Create commands
-command! Occur silent call s:SetupAndGo('s:Occur')
-command! Moccur silent call s:SetupAndGo('s:Moccur')
-command! StarOccur exec "normal! *"  Moccur
-
-function! s:Occur()
-    let expr = 'caddexpr expand("%") . ":" . line(".") . ":" . getline(".")'
-    exec 'silent keepjumps g/' . @/ . '/' . expr
-endfunction
-
-function! s:Moccur()
-    " Create the buffer list
-    redir => command_out
-    ls
-    redir END
-
-    let buffers = []
-    for line in split(command_out, '\n')
-        call add(buffers, split(line, ' ')[0])
-    endfor
-
-    " Search the pattern in all buffers
-    for buf_number in buffers
-        exec 'keepjumps buffer ' . buf_number
-        call s:Occur()
-    endfor
-endfunction
-
-function! s:SetupAndGo(func)
-    let org_efm = &errorformat
-    let &errorformat = '%f:%l:%m'
-
-    " Clear the results window
-    cexpr "================= occur result ================="
-    cclose
-
-    " Log the current cursor position
-    normal! H
-
-    " Do Occur
-    call function(a:func)()
-
-    " Open the results window (and restore cursor position)
-    keepjumps cfirst 1
-    exec "normal! \"
-    copen
-
-    " Map the key sequence on the QuickFix
-    if !g:occur_no_quickfix_map
-        nnoremap    
-        nnoremap   x 10_zxzz:copen
-        nnoremap    zxzz:cclose
-        nnoremap   q :cclose
-    endif
-
-    let &errorformat = org_efm
-endfunction
-
diff --git a/bundle/showmarks/doc/showmarks.txt b/bundle/showmarks/doc/showmarks.txt
deleted file mode 100644
index 96dc1e1..0000000
--- a/bundle/showmarks/doc/showmarks.txt
+++ /dev/null
@@ -1,264 +0,0 @@
-*showmarks.txt* Visually show the location of marks
-
-               By Anthony Kruize 
-                  Michael Geddes 
-
-
-ShowMarks provides a visual representation of |marks| local to a buffer.
-Marks are useful for jumping back and forth between interesting points in a
-buffer, but can be hard to keep track of without any way to see where you have
-placed them.
-
-ShowMarks hopefully makes life easier by placing a |sign| in the
-leftmost column of the buffer.  The sign indicates the label of the mark and
-its location.
-
-ShowMarks is activated by the |CursorHold| |autocommand| which is triggered
-every |updatetime| milliseconds.  This is set to 4000(4 seconds) by default.
-If this is too slow, setting it to a lower value will make it more responsive.
-
-Note: This plugin requires Vim 6.x compiled with the |+signs| feature.
-
-===============================================================================
-1. Contents                                    *showmarks* *showmarks-contents*
-
-    1. Contents	             |showmarks-contents|
-    2. Configuration         |showmarks-configuration|
-    3. Highlighting          |showmarks-highlighting|
-    4. Key mappings          |showmarks-mappings|
-    5. Commands              |showmarks-commands|
-    6. ChangeLog             |showmarks-changelog|
-
-    Appendix
-    A. Using marks           |marks|
-    B. Using signs           |sign|
-    C. Defining updatetime   |updatetime|
-    D. Defining a mapleader  |mapleader|
-    E. Defining highlighting |highlight|
-
-===============================================================================
-2. Configuration                                      *showmarks-configuration*
-
-ShowMarks can be configured to suit your needs.
-The following options can be added to your |vimrc| to change how ShowMarks
-behaves:
-
-                                                           *'showmarks_enable'*
-'showmarks_enable'      boolean (default: 1)
-                        global
-   This option enables or disables ShowMarks on startup. Normally ShowMarks
-   will be enabled when Vim starts, setting this to 0 will disable ShowMarks
-   by default.
-   ShowMarks can be turned back on using the |ShowMarksToggle| command.
-
-                                                          *'showmarks_include'*
-'showmarks_include'     string  (default:
-"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.'`^<>[]{}()\"")
-                        global or local to buffer
-   This option specifies which marks will be shown and in which order if
-   placed on the same line. Marks earlier in the list take precedence over
-   marks later in the list.
-   This option can also be specified as a buffer option which will override
-   the global version.
-
-   NOTE: When including the " mark, it must be escaped with a \.
-
-   For example to only include marks 'abcdefzxABHJio', in that order:
->
-     let g:showmarks_include="abcdefzxABJio"
-<
-   To override this for a particular buffer with 'ABCDhj.'^':
->
-     let b:showmarks_include="abcdefzxABJio"
-<
-                                                      *'showmarks_ignore_type'*
-'showmarks_ignore_type' string  (default: "hq")
-                        global
-   This option defines which types of buffers should be ignored.
-   Each type is represented by a letter. This option is not case-sensitive.
-   Valid buffer types are:
-   - h : Help
-   - m : Non-modifiable
-   - p : Preview
-   - q : Quickfix
-   - r : Readonly
-
-   For example to ignore help, preview and readonly files:
->
-     let g:showmarks_ignore_type="hpr"
-<
-                                                      *'showmarks_ignore_name'*
-'showmarks_textlower'   string  (default: ">" )
-                        global
-   This option defines how the marks a-z will be displayed.
-   A maximum of two characters can be defined.
-   To include the mark in the text use a tab(\t) character. A single
-   character will display as the mark with the character suffixed (same as
-   "\t"). Specifying two characters will simply display those two
-   characters.
-
-   Some examples:
-     To display the mark with a > suffixed: >
-       let g:showmarks_textlower="\t>"
-<         or >
-       let g:showmarks_textlower=">"
-<
-     To display the mark with a ( prefixed: >
-       let g:showmarks_textlower="(\t"
-<
-     To display two > characters: >
-       let g:showmarks_textlower=">>"
-<
-                                                        *'showmarks_textupper'*
-'showmarks_textupper'   string  (default: ">")
-                        global
-   This option defines how the marks A-Z will be displayed. It behaves the same
-   as the |'showmarks_textlower'| option.
-
-                                                        *'showmarks_textother'*
-'showmarks_textother'   string  (default: ">")
-                        global
-   This option defines how all other marks will be displayed. It behaves the
-   same as the |'showmarks_textlower'| option.
-
-'showmarks_hlline_lower' boolean (default: 0)        *'showmarks_hlline_lower'*
-                        global
-   This option defines whether the entire line a lowercase mark is on will
-   be highlighted.
-
-'showmarks_hlline_upper' boolean (default: 0)        *'showmarks_hlline_upper'*
-                        global
-   This option defines whether the entire line an uppercase mark is on will
-   be highlighted.
-
-'showmarks_hlline_other' boolean (default: 0)        *'showmarks_hlline_other'*
-                        global
-   This option defines whether the entire line other marks are on will be
-   highlighted.
-
-===============================================================================
-3. Highlighting                                        *showmarks-highlighting*
-
-Four highlighting groups are used by ShowMarks to define the colours used to
-highlight each of the marks.
-
-  - ShowMarksHLl : This group is used to highlight all the lowercase marks.
-  - ShowMarksHLu : This group is used to highlight all the uppercase marks.
-  - ShowMarksHLo : This group is used to highlight all other marks.
-  - ShowMarksHLm : This group is used when multiple marks are on the same line.
-
-You can define your own highlighting by overriding these groups in your |vimrc|.
-For example: >
-
-  highlight ShowMarksHLl guifg=red guibg=green
-<
-Will set all lowercase marks to be red on green when running in GVim.
-See |highlight| for more information.
-
-===============================================================================
-4. Mappings                                                *showmarks-mappings*
-
-The following mappings are setup by default:
-
-  mt   - Toggles ShowMarks on and off.
-  mo   - Forces ShowMarks on.
-  mh   - Clears the mark at the current line.
-  ma   - Clears all marks in the current buffer.
-  mm   - Places the next available mark on the current line.
-
-(see |mapleader| for how to setup the mapleader variable.)
-
-===============================================================================
-5. Commands                                                *showmarks-commands*
-
-                                                              *ShowMarksToggle*
-:ShowMarksToggle
-   This command will toggle the display of marks on or off.
-
-
-:ShowMarksOn                                                      *ShowMarksOn*
-   This command will force the display of marks on.
-
-                                                           *ShowMarksClearMark*
-:ShowMarksClearMark
-   This command will clear the mark on the current line.
-   It doesn't actually remove the mark, it simply moves it to line 1 and
-   removes the sign.
-
-                                                            *ShowMarksClearAll*
-:ShowMarksClearAll
-   This command will clear all marks in the current buffer.
-   It doesn't actually remove the marks, it simply moves them to line 1 and
-   removes the signs.
-
-                                                           *ShowMarksPlaceMark*
-:ShowMarksPlaceMark
-   This command will place the next available mark on the current line. This
-   effectively automates mark placement so you don't have to remember which
-   marks are placed or not. Hidden marks are considered to be available.
-   NOTE: Only marks a-z are supported by this function.
-
-===============================================================================
-6. ChangeLog                                              *showmarks-changelog*
-
-2.2 - 2004-08-17
-   Fixed highlighting of the A-Z marks when ignorecase is on. (Mike Kelly)
-   Fixed the delay with ShowMarks triggering when entering a buffer for the
-     first time. (Mikolaj Machowski)
-   Added support for highlighting the entire line where a mark is placed.
-   Now uses HelpExtractor by Charles E. Campbell to install the help file.
-
-2.1 - 2004-03-04
-   Added ShowMarksOn. It forces ShowMarks to be enabled whether it's on or not.
-     (Gary Holloway)
-   Marks now have a definable order of precedence for when mulitple alpha marks
-     have been placed on the same line. A new highlight group, ShowMarksHLm is
-     used to identify this situation. (Gary Holloway)
-       - showmarks_include has changed accordingly.
-       - ShowMarksHL is now ShowMarksHLl.
-   ShowMarksPlaceMark now places marks in the order specified by
-     showmarks_include. (Gary Holloway)
-   showmarks_include can now be specified per buffer. (Gary Holloway)
-
-2.0 - 2003-08-11
-   Added ability to ignore buffers by type.
-   Fixed toggling ShowMarks off when switching buffers.
-   ShowMarksHideMark and ShowMarksHideAll have been renamed to
-     ShowMarksClearMark and ShowMarksClearAll.
-   Marks a-z, A-Z and others now have different highlighting from each other.
-   Added support for all other marks. (Gary Holloway)
-   Enhanced customization of how marks are displayed by allowing a prefix to
-     be specified.(Gary Holloway & Anthony Kruize)
-   Fixed CursorHold autocmd triggering even when ShowMarks is disabled.
-     (Charles E. Campbell)
-
-1.5 - 2002-07-16
-   Added ability to customize how the marks are displayed.
-
-1.4 - 2002-05-29
-   Added support for placing the next available mark.
-     (Thanks to Shishir Ramam for the idea)
-   Added support for hiding all marks.
-   Marks on line 1 are no longer shown. This stops hidden marks from
-     reappearing when the file is opened again.
-   Added a help file.
-
-1.3 - 2002-05-20
-   Fixed toggling ShowMarks not responding immediately.
-   Added user commands for toggling/hiding marks.
-   Added ability to disable ShowMarks by default.
-
-1.2 - 2002-03-06
-   Added a check that Vim was compiled with +signs support.
-   Added the ability to define which marks are shown.
-   Removed debugging code that was accidently left in.
-
-1.1 - 2002-02-05
-   Added support for the A-Z marks.
-   Fixed sign staying placed if the line it was on is deleted.
-   Clear autocommands before making new ones.
-
-1.0 - 2001-11-20
-   First release.
-
-vim:tw=78:ts=8:ft=help
diff --git a/bundle/showmarks/plugin/showmarks.vim b/bundle/showmarks/plugin/showmarks.vim
deleted file mode 100644
index c6931c2..0000000
--- a/bundle/showmarks/plugin/showmarks.vim
+++ /dev/null
@@ -1,507 +0,0 @@
-" ==============================================================================
-" Name:          ShowMarks
-" Description:   Visually displays the location of marks.
-" Authors:       Anthony Kruize 
-"                Michael Geddes 
-" Version:       2.2
-" Modified:      17 August 2004
-" License:       Released into the public domain.
-" ChangeLog:     See :help showmarks-changelog
-"
-" Usage:         Copy this file into the plugins directory so it will be
-"                automatically sourced.
-"
-"                Default keymappings are:
-"                  mt  - Toggles ShowMarks on and off.
-"                  mo  - Turns ShowMarks on, and displays marks.
-"                  mh  - Clears a mark.
-"                  ma  - Clears all marks.
-"                  mm  - Places the next available mark.
-"
-"                Hiding a mark doesn't actually remove it, it simply moves it
-"                to line 1 and hides it visually.
-"
-" Configuration: ***********************************************************
-"                * PLEASE read the included help file(showmarks.txt) for a *
-"                * more thorough explanation of how to use ShowMarks.      *
-"                ***********************************************************
-"                The following options can be used to customize the behavior
-"                of ShowMarks.  Simply include them in your vimrc file with
-"                the desired settings.
-"
-"                showmarks_enable (Default: 1)
-"                   Defines whether ShowMarks is enabled by default.
-"                   Example: let g:showmarks_enable=0
-"                showmarks_include (Default: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.'`^<>[]{}()\"")
-"                   Defines all marks, in precedence order (only the highest
-"                   precence will show on lines having more than one mark).
-"                   Can be buffer-specific (set b:showmarks_include)
-"                showmarks_ignore_type (Default: "hq")
-"                   Defines the buffer types to be ignored.
-"                   Valid types are:
-"                     h - Help            p - preview
-"                     q - quickfix        r - readonly
-"                     m - non-modifiable
-"                showmarks_textlower (Default: ">")
-"                   Defines how the mark is to be displayed.
-"                   A maximum of two characters can be displayed. To include
-"                   the mark in the text use a tab(\t) character. A single
-"                   character will display as the mark with the character
-"                   suffixed (same as "\t")
-"                   Examples:
-"                    To display the mark with a > suffixed:
-"                      let g:showmarks_textlower="\t>"
-"                         or
-"                      let g:showmarks_textlower=">"
-"                    To display the mark with a ( prefixed:
-"                      let g:showmarks_textlower="(\t"
-"                    To display two > characters:
-"                      let g:showmarks_textlower=">>"
-"                showmarks_textupper (Default: ">")
-"                   Same as above but for the marks A-Z.
-"                   Example: let g:showmarks_textupper="**"
-"                showmarks_textother (Default: ">")
-"                   Same as above but for all other marks.
-"                   Example: let g:showmarks_textother="--"
-"                showmarks_hlline_lower (Default: 0)
-"                showmarks_hlline_upper (Default: 0)
-"                showmarks_hlline_other (Default: 0)
-"                   Defines whether the entire line for a particular mark
-"                   should be highlighted.
-"                   Example: let g:showmarks_hlline_lower=1
-"
-"                Setting Highlighting Colours
-"                   ShowMarks uses the following highlighting groups:
-"                     ShowMarksHLl - For marks a-z
-"                     ShowMarksHLu - For marks A-Z
-"                     ShowMarksHLo - For all other marks
-"                     ShowMarksHLm - For multiple marks on the same line.
-"                                    (Highest precendece mark is shown)
-"
-"                   By default they are set to a bold blue on light blue.
-"                   Defining a highlight for each of these groups will
-"                   override the default highlighting.
-"                   See the VIM help for more information about highlighting.
-" ==============================================================================
-
-" Check if we should continue loading
-if exists( "loaded_showmarks" )
-	finish
-endif
-let loaded_showmarks = 1
-
-" Bail if Vim isn't compiled with signs support.
-if has( "signs" ) == 0
-	echohl ErrorMsg
-	echo "ShowMarks requires Vim to have +signs support."
-	echohl None
-	finish
-endif
-
-" Options: Set up some nice defaults
-if !exists('g:showmarks_enable'      ) | let g:showmarks_enable       = 1    | endif
-if !exists('g:showmarks_textlower'   ) | let g:showmarks_textlower    = ">"  | endif
-if !exists('g:showmarks_textupper'   ) | let g:showmarks_textupper    = ">"  | endif
-if !exists('g:showmarks_textother'   ) | let g:showmarks_textother    = ">"  | endif
-if !exists('g:showmarks_ignore_type' ) | let g:showmarks_ignore_type  = "hq" | endif
-if !exists('g:showmarks_ignore_name' ) | let g:showmarks_ignore_name  = ""   | endif
-if !exists('g:showmarks_hlline_lower') | let g:showmarks_hlline_lower = "0"  | endif
-if !exists('g:showmarks_hlline_upper') | let g:showmarks_hlline_upper = "0"  | endif
-if !exists('g:showmarks_hlline_other') | let g:showmarks_hlline_other = "0"  | endif
-
-" This is the default, and used in ShowMarksSetup to set up info for any
-" possible mark (not just those specified in the possibly user-supplied list
-" of marks to show -- it can be changed on-the-fly).
-let s:all_marks = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.'`^<>[]{}()\""
-
-" Commands
-com! -nargs=0 ShowMarksToggle    :call ShowMarksToggle()
-com! -nargs=0 ShowMarksOn        :call ShowMarksOn()
-com! -nargs=0 ShowMarksClearMark :call ShowMarksClearMark()
-com! -nargs=0 ShowMarksClearAll  :call ShowMarksClearAll()
-com! -nargs=0 ShowMarksPlaceMark :call ShowMarksPlaceMark()
-
-" Mappings (NOTE: Leave the '|'s immediately following the '' so the mapping does not contain any trailing spaces!)
-if !hasmapto( 'ShowmarksShowMarksToggle' ) | map   mt :ShowMarksToggle|    endif
-if !hasmapto( 'ShowmarksShowMarksOn'     ) | map   mo :ShowMarksOn|        endif
-if !hasmapto( 'ShowmarksClearMark'       ) | map   mh :ShowMarksClearMark| endif
-if !hasmapto( 'ShowmarksClearAll'        ) | map   ma :ShowMarksClearAll|  endif
-if !hasmapto( 'ShowmarksPlaceMark'       ) | map   mm :ShowMarksPlaceMark| endif
-noremap  
-
-2. installing MathJax locally (faster, no internet required). Choose a
-folder on your hard drive and save MathJax in it. Then add to your HTML
-template the following line:
-
-
-
-where  is the folder on your HD, as a relative path to the
-template folder. For instance, a sensible folder structure could be:
-
-- wiki
-  - text
-  - html
-  - templates
-  - mathjax
-
-In this case,  would be "../mathjax" (without quotes).
-
-
-------------------------------------------------------------------------------
-5.9. Blockquotes                                  *vimwiki-syntax-blockquotes*
-
-Text started with 4 or more spaces is a blockquote.
-
-    This would be a blockquote in vimwiki. It is not highlighted in vim but
-    could be styled by CSS in HTML. Blockquotes are usually used to quote a
-    long piece of text from another source.
-
-
-------------------------------------------------------------------------------
-5.10. Comments                                        *vimwiki-syntax-comments*
-
-Text line started with %% is a comment.
-E.g.: >
- %% this text would not be in HTML
-<
-
-
-------------------------------------------------------------------------------
-5.11. Horizontal line                                      *vimwiki-syntax-hr*
-
-4 or more dashes at the start of the line is a 'horizontal line' (
): > - ---- -< - ------------------------------------------------------------------------------- -5.12. Schemes *vimwiki-syntax-schemes* - -In addition to standard web schemes (e.g. `http:`, `https:`, `ftp:`, etc.) a -number of special schemes are supported: "wiki#:", "local:", "diary:", -"file:", and schemeless. - -While "wiki:#", "diary" and schemeless links are automatically opened in Vi, -all other links are opened with the system command. To customize this -behavior, see |VimwikiLinkHandler|. - -Interwiki:~ - -If you maintain more than one wiki, you can create interwiki links between them -by adding a numbered prefix "wiki#:" in front of a link: > - [[wiki#:This is a link]] -or: > - [[wiki#:This is a link source|Description of the link]] - -The number "#", in the range 0..N-1, identifies the destination wiki in -|g:vimwiki_list|. - -Diary:~ - -The diary scheme is used to concisely link to diary entries: > - [[diary:2012-03-05]] - -This scheme precludes explicit inclusion of |vimwiki-option-diary_rel_path|, -and is most useful on subwiki pages to avoid links such as: > - [[../../diary/2012-03-05]] - -Local:~ - -A local resource that is not a wiki page may be specified with a path relative -to the current page: > - [[local:../assets/data.csv|data (CSV)]] - -When followed or converted to HTML, extensions of local-scheme links are not -modified. - -File:~ - -The file scheme allows you to directly link to arbitray resources using -absolute paths and extensions: > - [[file:///home/somebody/a/b/c/music.mp3]] - -Schemeless:~ - -Schemeless URLs, which are the default, are treated internally as "wiki#:" -URLs in all respects except when converted to Html. - -Schemeless links convert to plain relative path URLs, nearly verbatim: > - relpath/wikipage.html - -The "wiki#:", "local:", and "diary:" schemes use absolute paths as URLs: > - file:///abs_path_to_html#/relpath/wikipage.html - -When |vimwiki-option-maxhi| equals 1, a distinct highlighting style is used to -identify schemeless links whose targets are not found. All other links appear -as regular links even if the files to which they refer do not exist. - - ------------------------------------------------------------------------------- -5.13. Transclusions *vimwiki-syntax-transclude* - -Transclusion (Wiki-Include) Links~ - -Links that use "{{" and "}}" delimiters signify content that is to be -included into the Html output, rather than referenced via hyperlink. - -Wiki-include URLs may use any of the supported schemes, may be absolute or -relative, and need not end with an extension. - -The primary purpose for wiki-include links is to include images. - -Transclude from a local URL: > - {{local:../../images/vimwiki_logo.png}} -or from a universal URL: > - {{http://vimwiki.googlecode.com/hg/images/vimwiki_logo.png}} - -Transclude image with alternate text: > - {{http://vimwiki.googlecode.com/hg/images/vimwiki_logo.png|Vimwiki}} -in HTML: > - Vimwiki - -Transclude image with alternate text and some style: > - {{http://.../vimwiki_logo.png|cool stuff|style="width:150px; height: 120px;"}} -in HTML: > - cool stuff - -Transclude image _without_ alternate text and with css class: > - {{http://.../vimwiki_logo.png||class="center flow blabla"}} -in HTML: > - - -A trial feature allows you to supply your own handler for wiki-include links. -See |VimwikiWikiIncludeHandler|. - - ------------------------------------------------------------------------------- -5.14. Thumbnails *vimwiki-syntax-thumbnails* - -Thumbnail links~ -> -Thumbnail links are constructed like this: > - [[http://someaddr.com/bigpicture.jpg|{{http://someaddr.com/thumbnail.jpg}}]] - -in HTML: > - - - %title% - - - -
- %content% -
- - - -where - %title% is replaced by a wiki page name or by a |vimwiki-title| - %root_path% is replaced by a count of ../ for pages buried in subdirs: - if you have wikilink [[dir1/dir2/dir3/my page in a subdir]] then - %root_path% is replaced by '../../../'. - - %content% is replaced by a wiki file content. - - -The default template will be applied to all wiki pages unless a page specifies -a template. Consider you have wiki page named 'Maxim.wiki' and you want apply -'person.html' template to it. Just add: > - %template person -to that page. - - -*vimwiki-option-template_default* ------------------------------------------------------------------------------- -Key Default value~ -template_default default - -Description~ -Setup default template name (without extension). - -See |vimwiki-option-template_path| for details. - - -*vimwiki-option-template_ext* ------------------------------------------------------------------------------- -Key Default value~ -template_ext .html - -Description~ -Setup template filename extension. - -See |vimwiki-option-template_path| for details. - - -*vimwiki-option-css_name* ------------------------------------------------------------------------------- -Key Default value~ -css_name style.css - -Description~ -Setup CSS file name: > - let g:vimwiki_list = [{'path': '~/my_pages/', - \ 'css_name': 'main.css'}] -< -or even > - let g:vimwiki_list = [{'path': '~/my_pages/', - \ 'css_name': 'css/main.css'}] -< - - -*vimwiki-option-maxhi* ------------------------------------------------------------------------------- -Key Default value Values~ -maxhi 0 0, 1 - -Description~ -Non-existent wiki links highlighting can be quite slow. If you still want it, -set maxhi to 1: > - let g:vimwiki_list = [{'path': '~/my_site/', 'maxhi': 1}] - -This disables filesystem checks for wiki links. - - -*vimwiki-option-nested_syntaxes* ------------------------------------------------------------------------------- -Key Default value Values~ -nested_syntaxes {} pairs of highlight keyword and vim filetype - -Description~ -You can configure preformatted text to be highlighted with any syntax -available for vim. -For example the following setup in your vimrc: > - let wiki = {} - let wiki.path = '~/my_wiki/' - let wiki.nested_syntaxes = {'python': 'python', 'c++': 'cpp'} - let g:vimwiki_list = [wiki] - -would give you Python and C++ highlighting in: > - {{{class="brush: python" - for i in range(1, 5): - print(i) - }}} - - {{{class="brush: c++" - #include "helloworld.h" - int helloworld() - { - printf("hello world"); - } - }}} - -or in: > - {{{c++ - #include "helloworld.h" - int helloworld() - { - printf("hello world"); - } - }}} - - {{{python - for i in range(1, 5): - print(i) - }}} - - -*vimwiki-option-diary_rel_path* ------------------------------------------------------------------------------- -Key Default value~ -diary_rel_path diary/ - -Description~ -Related to |vimwiki-option-path| path for diary wiki-files. - - -*vimwiki-option-diary_index* ------------------------------------------------------------------------------- -Key Default value~ -diary_index diary - -Description~ -Name of wiki-file that holds all links to dated wiki-files. - - -*vimwiki-option-diary_header* ------------------------------------------------------------------------------- -Key Default value~ -diary_header Diary - -Description~ -Name of the header in |vimwiki-option-diary_index| where links to dated -wiki-files are located. - - -*vimwiki-option-diary_sort* ------------------------------------------------------------------------------- -Key Default value Values~ -diary_sort desc desc, asc - -Description~ -Sort links in a diary index page. - - -*vimwiki-option-custom_wiki2html* ------------------------------------------------------------------------------- -Key Default value~ -custom_wiki2html '' - -Description~ -The full path to an user-provided script that converts a wiki page to HTML. -Vimwiki calls the provided |vimwiki-option-custom_wiki2html| script from the -command-line, using '!' invocation. - -The following arguments, in this order, are passed to the -|vimwiki-option-custom_wiki2html| script: - -1. force : [0/1] overwrite an existing file -2. syntax : the syntax chosen for this wiki -3. extension : the file extension for this wiki -4. output_dir : the full path of the output directory, i.e. 'path_html' -5. input_file : the full path of the wiki page -6. css_file : the full path of the css file for this wiki - -For an example and further instructions, refer to the following script: - - $VIMHOME/autoload/vimwiki/customwiki2html.sh - -To use the internal wiki2html converter, use an empty string (the default). - - -*vimwiki-option-list_margin* ------------------------------------------------------------------------------- -Key Default value~ -list_margin -1 - -Description~ -Width of left-hand margin for lists. When negative, the current |shiftwidth| -is used. This affects the behavior of the list manipulation commands -|VimwikiListChangeLevel| and local mappings |vimwiki_gll|, |vimwiki_glm|, -|vimwiki_glstar|, |vimwiki_gl8|, |vimwiki_gl#|, |vimwiki_gl3|, -|vimwiki_gl-| and |vimwiki_gl1|. - - - ------------------------------------------------------------------------------- -11.4 Global Options *viwmiki-global-options* - - -Global options are configured using the following pattern: > - - let g:option_name = option_value - - ------------------------------------------------------------------------------ -*g:vimwiki_hl_headers* - -Highlight headers with =Reddish=, ==Greenish==, ===Blueish=== colors. - -Value Description~ -1 Use VimwikiHeader1-VimwikiHeader6 group colors to highlight - different header levels. -0 Use |hl-Title| color for headers. -Default: 0 - - ------------------------------------------------------------------------------- -*g:vimwiki_hl_cb_checked* - -Checked list items can be highlighted with a color: - - * [X] the whole line can be highlighted with the option set to 1. - * [ ] I wish vim could use strikethru. - -Value Description~ -1 Highlight checked [X] check box with |group-name| "Comment". -0 Don't. - -Default: 0 - - ------------------------------------------------------------------------------- -*g:vimwiki_global_ext* - -Control the creation of |vimwiki-temporary-wiki|s. - -If a file with a registered extension (see |vimwiki-register-extension|) is -opened in a directory that is: 1) not listed in |g:vimwiki_list|, and 2) not a -subdirectory of any such directory, then: - -Value Description~ -1 make temporary wiki and append it to |g:vimwiki_list|. -0 don't make temporary wiki in that dir. - -If your preferred wiki extension is .txt then you can > - let g:vimwiki_global_ext = 0 -to restrict vimwiki's operation to only those paths listed in g:vimwiki_list. -Other text files wouldn't be treated as wiki pages. - -Default: 1 - - ------------------------------------------------------------------------------- -*g:vimwiki_ext2syntax* *vimwiki-register-extension* - -A many-to-one map between file extensions and syntaxes whose purpose is to -register the extensions with vimwiki. - -E.g.: > - let g:vimwiki_ext2syntax = {'.md': 'markdown', - \ '.mkd': 'markdown', - \ '.wiki': 'media'} - -An extension that is registered with vimwiki can trigger creation of a -|vimwiki-temporary-wiki| with the associated syntax. File extensions used in -|g:vimwiki_list| are automatically registered with vimwiki using the default -syntax. - -Default: {'.md': 'markdown'} - ------------------------------------------------------------------------------- -*g:vimwiki_auto_checkbox* - -If on, creates checkbox while toggling list item. - -Value Description~ -0 Do not create checkbox. -1 Create checkbox. - -Default: 1 - -E.g.: -Press (|:VimwikiToggleListItem|) on a list item without checkbox to -create it: > - * List item -Result: > - * [ ] List item - - ------------------------------------------------------------------------------- -*g:vimwiki_menu* - -GUI menu of available wikies to select. - -Value Description~ -'' No menu -'Vimwiki' Top level menu "Vimwiki" -'Plugin.Vimwiki' "Vimwiki" submenu of top level menu "Plugin" -etc. - -Default: 'Vimwiki' - - ------------------------------------------------------------------------------- -*g:vimwiki_listsyms* - -String of 5 symbols for list items with checkboxes. -Default value is ' .oOX'. - -g:vimwiki_listsyms[0] is for 0% done items. -g:vimwiki_listsyms[4] is for 100% done items. - - ------------------------------------------------------------------------------- -*g:vimwiki_use_mouse* - -Use local mouse mappings from |vimwiki-local-mappings|. - -Value Description~ -0 Do not use mouse mappings. -1 Use mouse mappings. - -Default: 0 - - ------------------------------------------------------------------------------- -*g:vimwiki_folding* - -Enable/disable vimwiki's folding/outline functionality. Folding in vimwiki -uses the 'expr' foldmethod which is very flexible but really slow. - -Value Description~ -0 Disable folding. -1 Enable folding. - -Default: 0 - - ------------------------------------------------------------------------------- -*g:vimwiki_fold_lists* - -Enable/disable folding of list subitems. - -Value Description~ -0 Disable list subitem's folding. -1 Enable list subitem's folding. - -Default: 0 - - ------------------------------------------------------------------------------- -*g:vimwiki_list_ignore_newline* - -This is HTML related. -Convert newlines to
s in multiline list items. - -Value Description~ -0 Newlines in a list item are converted to
s. -1 Ignore newlines. - -Default: 1 - - ------------------------------------------------------------------------------- -*g:vimwiki_use_calendar* - -Create new or open existing diary wiki-file for the date selected in Calendar. -See |vimwiki-calendar|. - -Value Description~ -0 Do not use calendar. -1 Use calendar. - -Default: 1 - - ------------------------------------------------------------------------------- -*VimwikiLinkHandler* - -A customizable link handler, |VimwikiLinkHandler|, can be defined to override -Vimwiki's opening of links. Each recognized link, whether it is a wikilink, -wiki-include link or a weblink, is first passed to |VimwikiLinkHandler| to see -if it can be handled. The return value 1/0 indicates success. - -If the link is not handled successfully, the behaviour of Vimwiki depends on -the scheme. Wiki:, diary: or schemeless links are opened in Vim. All others, -including local: and file: schemes, are opened with a system default handler; -i.e. Linux (!xdg-open), Mac (!open), and Windows (!start). - -You can redefine |VimwikiLinkHandler| function to do something else: > - - function! VimwikiLinkHandler(link) - try - let browser = 'C:\Program Files\Firefox\firefox.exe' - execute '!start "'.browser.'" ' . a:link - return 1 - catch - echo "This can happen for a variety of reasons ..." - endtry - return 0 - endfunction - -A second example handles two new schemes, 'vlocal:' and 'vfile:', which behave -similar to 'local:' and 'file:' schemes, but are always opened with Vim: > - - function! VimwikiLinkHandler(link) "{{{ Use Vim to open links with the - " 'vlocal:' or 'vfile:' schemes. E.g.: - " 1) [[vfile:///~/Code/PythonProject/abc123.py]], and - " 2) [[vlocal:./|Wiki Home]] - let link = a:link - if link =~ "vlocal:" || link =~ "vfile:" - let link = link[1:] - else - return 0 - endif - let [idx, scheme, path, subdir, lnk, ext, url] = - \ vimwiki#base#resolve_scheme(link, 0) - if g:vimwiki_debug - echom 'LinkHandler: idx='.idx.', scheme=[v]'.scheme.', path='.path. - \ ', subdir='.subdir.', lnk='.lnk.', ext='.ext.', url='.url - endif - if url == '' - echom 'Vimwiki Error: Unable to resolve link!' - return 0 - else - call vimwiki#base#edit_file('tabnew', url, [], 0) - return 1 - endif - endfunction " }}} - - ------------------------------------------------------------------------------ -*VimwikiWikiIncludeHandler*~ - -Vimwiki includes the contents of a wiki-include URL as an image by default. - -A trial feature allows you to supply your own handler for wiki-include links. -The handler should return the empty string when it does not recognize or -cannot otherwise convert the link. A customized handler might look like this: > - - " Convert {{URL|#|ID}} -> URL#ID - function! VimwikiWikiIncludeHandler(value) "{{{ - let str = a:value - - " complete URL - let url_0 = matchstr(str, g:vimwiki_rxWikiInclMatchUrl) - " URL parts - let [scheme, path, subdir, lnk, ext, url] = - \ vimwiki#base#resolve_scheme(url_0, VimwikiGet('ext')) - let arg1 = matchstr(str, VimwikiWikiInclMatchArg(1)) - let arg2 = matchstr(str, VimwikiWikiInclMatchArg(2)) - - if arg1 =~ '#' - return url.'#'.arg2 - endif - - " Return the empty string when unable to process link - return '' - endfunction "}}} -< - ------------------------------------------------------------------------------- -*g:vimwiki_table_mappings* - -Enable/disable table mappings for INSERT mode. - -Value Description~ -0 Disable table mappings. -1 Enable table mappings. - -Default: 1 - - ------------------------------------------------------------------------------- -*g:vimwiki_table_auto_fmt* - -Enable/disable table auto formatting after leaving INSERT mode. - -Value Description~ -0 Disable table auto formatting. -1 Enable table auto formatting. - -Default: 1 - - ------------------------------------------------------------------------------- -*g:vimwiki_w32_dir_enc* - -Convert directory name from current |encoding| into 'g:vimwiki_w32_dir_enc' -before it is created. - -If you have 'enc=utf-8' and set up > - let g:vimwiki_w32_dir_enc = 'cp1251' -< -then following the next link with : > - [[привет/мир]] -> -would convert utf-8 'привет' to cp1251 and create directory with that name. - -Default: '' - - ------------------------------------------------------------------------------- -*g:vimwiki_CJK_length* - -Use special method to calculate correct length of the strings with double-wide -characters (to align table cells properly). - -Value Description~ -0 Do not use it. -1 Use it. - -Default: 0 - -Note: Vim73 has a new function |strdisplaywidth|, so for Vim73 users this -option is obsolete. - - ------------------------------------------------------------------------------- -*g:vimwiki_dir_link* - -This option is about what to do with links to directories -- [[directory/]], -[[papers/]], etc. - -Value Description~ -'' Open 'directory/' using standard netrw plugin. -'index' Open 'directory/index.wiki', create if needed. -'main' Open 'directory/main.wiki', create if needed. -etc. - -Default: '' (empty string) - - ------------------------------------------------------------------------------- -*g:vimwiki_html_header_numbering* - -Set this option if you want headers to be auto-numbered in HTML. - -E.g.: > - 1 Header1 - 1.1 Header2 - 1.2 Header2 - 1.2.1 Header3 - 1.2.2 Header3 - 1.3 Header2 - 2 Header1 - 3 Header1 -etc. - -Value Description~ -0 Header numbering is off. -1 Header numbering is on. Headers are numbered starting from - header level 1. -2 Header numbering is on. Headers are numbered starting from - header level 2. -etc. -Example when g:vimwiki_html_header_numbering = 2: > - Header1 - 1 Header2 - 2 Header2 - 2.1 Header3 - 2.1.1 Header4 - 2.1.2 Header4 - 2.2 Header3 - 3 Header2 - 4 Header2 -etc. - -Default: 0 - - ------------------------------------------------------------------------------- -*g:vimwiki_html_header_numbering_sym* - -Ending symbol for |g:vimwiki_html_header_numbering|. - -Value Description~ -'.' Dot will be added after a header's number. -')' Closing bracket will be added after a header's number. -etc. - -With - let g:vimwiki_html_header_numbering_sym = '.' -headers would look like: > - 1. Header1 - 1.1. Header2 - 1.2. Header2 - 1.2.1. Header3 - 1.2.2. Header3 - 1.3. Header2 - 2. Header1 - 3. Header1 - - -Default: '' (empty) - - ------------------------------------------------------------------------------- -*g:vimwiki_valid_html_tags* - -Comma-separated list of HTML tags that can be used in vimwiki. - -Default: 'b,i,s,u,sub,sup,kbd,br,hr' - - ------------------------------------------------------------------------------- -*g:vimwiki_user_htmls* - -Comma-separated list of HTML files that have no corresponding wiki files and -should not be deleted after |:VimwikiAll2HTML|. - -Default: '' - -Example: -Consider you have 404.html and search.html in your vimwiki 'path_html'. -With: > - let g:vimwiki_user_htmls = '404.html,search.html' -they would not be deleted after |:VimwikiAll2HTML|. - - ------------------------------------------------------------------------------- -*g:vimwiki_conceallevel* - -In vim73 |conceallevel| is local to window, thus if you open viwmiki buffer in -a new tab or window, it would be set to default value. - -Vimwiki sets |conceallevel| to g:vimwiki_conceallevel everytime vimwiki buffer -is entered. - -Default: 2 - - ------------------------------------------------------------------------------- -*g:vimwiki_url_mingain* - -The minimum number of characters that should be gained by concealing URLs. If -the length of the concealed part of the URL would be less than -|g:vimwiki_url_mingain|, the URL is not concealed at all. -The conceal feature works only with vim >= 7.3. - -Default: 12 - - ------------------------------------------------------------------------------- -*g:vimwiki_url_maxsave* - -The maximum number of characters that is retained at the end after concealing -URLs. At most there will be |g:vimwiki_url_maxsave| characters left at the end of the URL. -However, it could be less when one of /,#,? can be found at the end. -In that case the URL will be concealed right before the last occurrence of one -of these characters. -The conceal feature works only with vim >= 7.3. Beware: when using the default -'wrap' option, the effect is not always pleasing. - -Default: 15 - - ------------------------------------------------------------------------------- -*g:vimwiki_debug* - -Controls verbosity of debugging output, for example, the diagnostic -information about HTML conversion. - -Value Description~ -0 Do not show debug messages. -1 Show debug messages. - -Default: 0 - ------------------------------------------------------------------------------- -*g:vimwiki_diary_months* - -It is a |Dictionary| with the numbers of months and corresponding names. Diary -uses it. - -Redefine it in your .vimrc to get localized months in your diary: -let g:vimwiki_diary_months = { - \ 1: 'Январь', 2: 'Февраль', 3: 'Март', - \ 4: 'Апрель', 5: 'Май', 6: 'Июнь', - \ 7: 'Июль', 8: 'Август', 9: 'Сентябрь', - \ 10: 'Октябрь', 11: 'Ноябрь', 12: 'Декабрь' - \ } - -Default: -let g:vimwiki_diary_months = { - \ 1: 'January', 2: 'February', 3: 'March', - \ 4: 'April', 5: 'May', 6: 'June', - \ 7: 'July', 8: 'August', 9: 'September', - \ 10: 'October', 11: 'November', 12: 'December' - \ } - - -============================================================================== -12. Help *vimwiki-help* - -Your help in making vimwiki better is really appreciated! -Any help, whether it is a spelling correction or a code snippet to patch -- -everything is welcomed. - -Issues can be filed at http://code.google.com/p/vimwiki/issues . - - -============================================================================== -13. Developers *vimwiki-developers* - - - Maxim Kim as original author. - - Stuart Andrews - - Tomas Pospichal - - See the http://code.google.com/p/vimwiki/people/list for the others. - -Web: http://code.google.com/p/vimwiki/ -Mail-List: https://groups.google.com/forum/#!forum/vimwiki -Vim plugins: http://www.vim.org/scripts/script.php?script_id=2226 - - -============================================================================== -14. Changelog *vimwiki-changelog* - -2.0.1 'stu'~ - - * Follow (i.e. open target of) markdown reference-style links. - * Bug fixes. - - -2.0 'stu'~ - -This release is partly incompatible with previous. - * -Summary ~ - - * Quick page-link creation. - * Redesign of link syntaxes (!) - * No more CamelCase links. Check the ways to convert them - https://groups.google.com/forum/?fromgroups#!topic/vimwiki/NdS9OBG2dys - * No more [[link][desc]] links. - * No more [http://link description] links. - * No more plain image links. Use transclusions. - * No more image links identified by extension. Use transclusions. - * Interwiki links. See |vimwiki-syntax-schemes|. - * Link schemes. See |vimwiki-syntax-schemes|. - * Transclusions. See |vimwiki-syntax-transclude|. - * Normalize link command. See |vimwiki_+|. - * Improved diary organization and generation. See |vimwiki-diary|. - * List manipulation. See |vimwiki-list-manipulation|. - * Markdown support. - * Mathjax support. See |vimwiki-syntax-math|. - * Improved handling of special characters and punctuation in filenames and - urls. - * Back links command: list links referring to the current page. - * Highlighting nonexisted links are off by default. - * Table syntax change. Row separator uses | instead of +. - * Fold multilined list items. - * Custom wiki to HTML converters. See |vimwiki-option-custom_wiki2html|. - * Conceal long weblinks. See |g:vimwiki_url_mingain|. - * Option to disable table mappings. See |g:vimwiki_table_mappings|. - -For detailed information see issues list on -http://code.google.com/p/vimwiki/issues/list - - -1.2~ - * Issue 70: Table spanning cell support. - * Issue 72: Do not convert again for unchanged file. |:VimwikiAll2HTML| - converts only changed wiki files. - * Issue 117: |VimwikiDiaryIndex| command that opens diary index wiki page. - * Issue 120: Links in headers are not highlighted in vimwiki but are - highlighted in HTML. - * Issue 138: Added possibility to remap table-column move bindings. See - |:VimwikiTableMoveColumnLeft| and |:VimwikiTableMoveColumnRight| - commands. For remap instructions see |vimwiki_| - and |vimwiki_|. - * Issue 125: Problem with 'o' command given while at the of the file. - * Issue 131: FileType is not set up when GUIEnter autocommand is used in - vimrc. Use 'nested' in 'au GUIEnter * nested VimwikiIndex' - * Issue 132: Link to perl (or any non-wiki) file in vimwiki subdirectory - doesn't work as intended. - * Issue 135: %title and %toc used together cause TOC to appear in an - unexpected place in HTML. - * Issue 139: |:VimwikiTabnewLink| command is added. - * Fix of g:vimwiki_stripsym = '' (i.e. an empty string) -- it removes bad - symbols from filenames. - * Issue 145: With modeline 'set ft=vimwiki' links are not correctly - highlighted when open wiki files. - * Issue 146: Filetype difficulty with ".txt" as a vimwiki extension. - * Issue 148: There are no mailto links. - * Issue 151: Use location list instead of quickfix list for :VimwikiSearch - command result. Use :lopen instead of :copen, :lnext instead of :cnext - etc. - * Issue 152: Add the list of HTML files that would not be deleted after - |:VimwikiAll2HTML|. - * Issue 153: Delete HTML files that has no corresponding wiki ones with - |:VimwikiAll2HTML|. - * Issue 156: Add multiple HTML templates. See - |vimwiki-option-template_path|. Options html_header and html_footer are - no longer exist. - * Issue 173: When virtualedit=all option is enabled the 'o' command behave - strange. - * Issue 178: Problem with alike wikie's paths. - * Issue 182: Browser command does not quote url. - * Issue 183: Spelling error highlighting is not possible with nested - syntaxes. - * Issue 184: Wrong foldlevel in some cases. - * Issue 195: Page renaming issue. - * Issue 196: vim: modeline bug -- syn=vim doesn't work. - * Issue 199: Generated HTML for sublists is invalid. - * Issue 200: Generated HTML for todo lists does not show completion status - the fix relies on CSS, thus your old stylesheets need to be updated!; - may not work in obsolete browsers or font-deficient systems. - * Issue 205: Block code: highlighting differs from processing. Inline code - block {{{ ... }}} is removed. Use `...` instead. - * Issue 208: Default highlight colors are problematic in many - colorschemes. Headers are highlighted as |hl-Title| by default, use - |g:vimwiki_hl_headers| to restore previous default Red, Green, Blue or - custom header colors. Some other changes in highlighting. - * Issue 209: Wild comments slow down html generation. Comments are - changed, use %% to comment out entire line. - * Issue 210: HTML: para enclose header. - * Issue 214: External links containing Chinese characters get trimmed. - * Issue 218: Command to generate HTML file and open it in webbrowser. See - |:Vimwiki2HTMLBrowse|(bind to whh) - * NEW: Added wh mapping to call |:Vimwiki2HTML| - - -... - -39 releases - -... - -0.1~ - * First public version. - -============================================================================== -15. License *vimwiki-license* - -The MIT Licence -http://www.opensource.org/licenses/mit-license.php - -Copyright (c) 2008-2010 Maxim Kim - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - - - vim:tw=78:ts=8:ft=help diff --git a/bundle/vimwiki/ftplugin/vimwiki.vim b/bundle/vimwiki/ftplugin/vimwiki.vim deleted file mode 100644 index bf6e7b5..0000000 --- a/bundle/vimwiki/ftplugin/vimwiki.vim +++ /dev/null @@ -1,475 +0,0 @@ -" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79 -" Vimwiki filetype plugin file -" Author: Maxim Kim -" Home: http://code.google.com/p/vimwiki/ - -if exists("b:did_ftplugin") - finish -endif -let b:did_ftplugin = 1 " Don't load another plugin for this buffer - -" UNDO list {{{ -" Reset the following options to undo this plugin. -let b:undo_ftplugin = "setlocal ". - \ "suffixesadd< isfname< comments< ". - \ "autowriteall< ". - \ "formatoptions< foldtext< ". - \ "foldmethod< foldexpr< commentstring< " -" UNDO }}} - -" MISC STUFF {{{ - -setlocal autowriteall -setlocal commentstring=%%%s - -if g:vimwiki_conceallevel && exists("+conceallevel") - let &conceallevel = g:vimwiki_conceallevel -endif - -" MISC }}} - -" GOTO FILE: gf {{{ -execute 'setlocal suffixesadd='.VimwikiGet('ext') -setlocal isfname-=[,] -" gf}}} - -" Autocreate list items {{{ -" for list items, and list items with checkboxes -setlocal formatoptions+=tnro -setlocal formatoptions-=cq -if VimwikiGet('syntax') == 'default' - setl comments=b:*,b:#,b:- - setl formatlistpat=^\\s*[*#-]\\s* -elseif VimwikiGet('syntax') == 'markdown' - setlocal comments=fb:*,fb:-,fb:+,nb:> commentstring=\ >\ %s - setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+j -else - setl comments=n:*,n:# -endif - -if !empty(&langmap) - " Valid only if langmap is a comma separated pairs of chars - let l_o = matchstr(&langmap, '\C,\zs.\zeo,') - if l_o - exe 'nnoremap '.l_o.' :call vimwiki#lst#kbd_oO("o")a' - endif - - let l_O = matchstr(&langmap, '\C,\zs.\zeO,') - if l_O - exe 'nnoremap '.l_O.' :call vimwiki#lst#kbd_oO("O")a' - endif -endif - -" COMMENTS }}} - -" FOLDING for headers and list items using expr fold method. {{{ -function! VimwikiFoldLevel(lnum) "{{{ - let line = getline(a:lnum) - - " Header folding... - if line =~ g:vimwiki_rxHeader - let n = vimwiki#u#count_first_sym(line) - return '>'.n - endif - - let base_level = s:get_base_level(a:lnum) - - " List item folding... - if g:vimwiki_fold_lists - let nnline = getline(a:lnum + 1) - - let rx_list_item = '\('. - \ g:vimwiki_rxListBullet.'\|'.g:vimwiki_rxListNumber. - \ '\)' - - - if line =~ rx_list_item - let [nnum, nline] = s:find_forward(rx_list_item, a:lnum) - let level = s:get_li_level(a:lnum) - let leveln = s:get_li_level(nnum) - let adj = s:get_li_level(s:get_start_list(rx_list_item, a:lnum)) - - if leveln > level - return ">".(base_level+leveln-adj) - " check if multilined list item - elseif (nnum-a:lnum) > 1 - \ && nline =~ rx_list_item && nnline !~ '^\s*$' - return ">".(base_level+level+1-adj) - else - return (base_level+level-adj) - endif - else - " process multilined list items - let [pnum, pline] = s:find_backward(rx_list_item, a:lnum) - if pline =~ rx_list_item - if indent(a:lnum) >= indent(pnum) && line !~ '^\s*$' - let level = s:get_li_level(pnum) - let adj = s:get_li_level(s:get_start_list(rx_list_item, pnum)) - return (base_level+level+1-adj) - endif - endif - endif - endif - - return base_level -endfunction "}}} - -function! s:get_base_level(lnum) "{{{ - let lnum = a:lnum - 1 - while lnum > 0 - if getline(lnum) =~ g:vimwiki_rxHeader - return vimwiki#u#count_first_sym(getline(lnum)) - endif - let lnum -= 1 - endwhile - return 0 -endfunction "}}} - -function! s:find_forward(rx_item, lnum) "{{{ - let lnum = a:lnum + 1 - - while lnum <= line('$') - let line = getline(lnum) - if line =~ a:rx_item - \ || line =~ '^\S' - \ || line =~ g:vimwiki_rxHeader - break - endif - let lnum += 1 - endwhile - - return [lnum, getline(lnum)] -endfunction "}}} - -function! s:find_backward(rx_item, lnum) "{{{ - let lnum = a:lnum - 1 - - while lnum > 1 - let line = getline(lnum) - if line =~ a:rx_item - \ || line =~ '^\S' - break - endif - let lnum -= 1 - endwhile - - return [lnum, getline(lnum)] -endfunction "}}} - -function! s:get_li_level(lnum) "{{{ - if VimwikiGet('syntax') == 'media' - let level = vimwiki#u#count_first_sym(getline(a:lnum)) - else - let level = (indent(a:lnum) / &sw) - endif - return level -endfunction "}}} - -function! s:get_start_list(rx_item, lnum) "{{{ - let lnum = a:lnum - while lnum >= 1 - let line = getline(lnum) - if line !~ a:rx_item && line =~ '^\S' - return nextnonblank(lnum + 1) - endif - let lnum -= 1 - endwhile - return 0 -endfunction "}}} - -function! VimwikiFoldText() "{{{ - let line = substitute(getline(v:foldstart), '\t', - \ repeat(' ', &tabstop), 'g') - return line.' ['.(v:foldend - v:foldstart).']' -endfunction "}}} - -" FOLDING }}} - -" COMMANDS {{{ -command! -buffer Vimwiki2HTML - \ silent w - \ let res = vimwiki#html#Wiki2HTML(expand(VimwikiGet('path_html')), - \ expand('%')) - \ - \ if res != '' | echo 'Vimwiki: HTML conversion is done.' | endif -command! -buffer Vimwiki2HTMLBrowse - \ silent w - \ call vimwiki#base#system_open_link(vimwiki#html#Wiki2HTML( - \ expand(VimwikiGet('path_html')), - \ expand('%'))) -command! -buffer VimwikiAll2HTML - \ call vimwiki#html#WikiAll2HTML(expand(VimwikiGet('path_html'))) - -command! -buffer VimwikiNextLink call vimwiki#base#find_next_link() -command! -buffer VimwikiPrevLink call vimwiki#base#find_prev_link() -command! -buffer VimwikiDeleteLink call vimwiki#base#delete_link() -command! -buffer VimwikiRenameLink call vimwiki#base#rename_link() -command! -buffer VimwikiFollowLink call vimwiki#base#follow_link('nosplit') -command! -buffer VimwikiGoBackLink call vimwiki#base#go_back_link() -command! -buffer VimwikiSplitLink call vimwiki#base#follow_link('split') -command! -buffer VimwikiVSplitLink call vimwiki#base#follow_link('vsplit') - -command! -buffer -nargs=? VimwikiNormalizeLink call vimwiki#base#normalize_link() - -command! -buffer VimwikiTabnewLink call vimwiki#base#follow_link('tabnew') - -command! -buffer -range VimwikiToggleListItem call vimwiki#lst#ToggleListItem(, ) - -command! -buffer VimwikiGenerateLinks call vimwiki#base#generate_links() - -command! -buffer -nargs=0 VimwikiBacklinks call vimwiki#base#backlinks() -command! -buffer -nargs=0 VWB call vimwiki#base#backlinks() - -exe 'command! -buffer -nargs=* VimwikiSearch lvimgrep '. - \ escape(VimwikiGet('path').'**/*'.VimwikiGet('ext'), ' ') - -exe 'command! -buffer -nargs=* VWS lvimgrep '. - \ escape(VimwikiGet('path').'**/*'.VimwikiGet('ext'), ' ') - -command! -buffer -nargs=1 VimwikiGoto call vimwiki#base#goto("") - - -" list commands -command! -buffer -nargs=* VimwikiListChangeLevel call vimwiki#lst#change_level() - -" table commands -command! -buffer -nargs=* VimwikiTable call vimwiki#tbl#create() -command! -buffer VimwikiTableAlignQ call vimwiki#tbl#align_or_cmd('gqq') -command! -buffer VimwikiTableAlignW call vimwiki#tbl#align_or_cmd('gww') -command! -buffer VimwikiTableMoveColumnLeft call vimwiki#tbl#move_column_left() -command! -buffer VimwikiTableMoveColumnRight call vimwiki#tbl#move_column_right() - -" diary commands -command! -buffer VimwikiDiaryNextDay call vimwiki#diary#goto_next_day() -command! -buffer VimwikiDiaryPrevDay call vimwiki#diary#goto_prev_day() - -" COMMANDS }}} - -" KEYBINDINGS {{{ -if g:vimwiki_use_mouse - nmap - nmap - nnoremap <2-LeftMouse> :call vimwiki#base#follow_link("nosplit", "\2-LeftMouse>") - nnoremap :VimwikiSplitLink - nnoremap :VimwikiVSplitLink - nnoremap :VimwikiGoBackLink -endif - - -if !hasmapto('Vimwiki2HTML') - nmap wh Vimwiki2HTML -endif -nnoremap