[vim] use vim8 packages instead of pathogen
change
commit 277c59392ac85a526a03ecaf79642101ebbaf9ef
author Alpha Chen <alpha.chen@gmail.com>
date
parent c3c8be8e
diff --git a/.gitmodules b/.gitmodules
index 7a43e7b1..1f2d7395 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,53 +1,53 @@
 [submodule ".vim/bundle/vim-textobj-user"]
-	path = .vim/bundle/vim-textobj-user
+	path = .vim/pack/kejadlen/start/vim-textobj-user
 	url = git://github.com/kana/vim-textobj-user.git
 [submodule ".vim/bundle/vim-textobj-line"]
-	path = .vim/bundle/vim-textobj-line
+	path = .vim/pack/kejadlen/start/vim-textobj-line
 	url = git://github.com/kana/vim-textobj-line.git
 [submodule ".vim/bundle/argtextobj.vim"]
-	path = .vim/bundle/argtextobj.vim
+	path = .vim/pack/kejadlen/start/argtextobj.vim
 	url = git://github.com/vim-scripts/argtextobj.vim.git
 [submodule ".vim/bundle/vim-textobj-rubyblock"]
-	path = .vim/bundle/vim-textobj-rubyblock
+	path = .vim/pack/kejadlen/start/vim-textobj-rubyblock
 	url = git://github.com/nelstrom/vim-textobj-rubyblock.git
 [submodule ".vim/bundle/vim-indent-object"]
-	path = .vim/bundle/vim-indent-object
+	path = .vim/pack/kejadlen/start/vim-indent-object
 	url = git://github.com/michaeljsmith/vim-indent-object.git
 [submodule ".vim/bundle/vim-colors-solarized"]
-	path = .vim/bundle/vim-colors-solarized
+	path = .vim/pack/kejadlen/start/vim-colors-solarized
 	url = git://github.com/altercation/vim-colors-solarized.git
 [submodule ".vim/bundle/vim-repeat"]
-	path = .vim/bundle/vim-repeat
+	path = .vim/pack/kejadlen/start/vim-repeat
 	url = git://github.com/tpope/vim-repeat.git
 [submodule ".vim/bundle/vim-surround"]
-	path = .vim/bundle/vim-surround
+	path = .vim/pack/kejadlen/start/vim-surround
 	url = git://github.com/tpope/vim-surround.git
 [submodule ".vim/bundle/tabular"]
-	path = .vim/bundle/tabular
+	path = .vim/pack/kejadlen/start/tabular
 	url = git://github.com/godlygeek/tabular.git
 [submodule ".vim/bundle/vim-ruby"]
-	path = .vim/bundle/vim-ruby
+	path = .vim/pack/kejadlen/start/vim-ruby
 	url = git://github.com/vim-ruby/vim-ruby.git
 [submodule ".vim/bundle/vim-coffee-script"]
-	path = .vim/bundle/vim-coffee-script
+	path = .vim/pack/kejadlen/start/vim-coffee-script
 	url = git://github.com/kchmck/vim-coffee-script.git
 [submodule ".vim/bundle/gundo"]
-	path = .vim/bundle/gundo
+	path = .vim/pack/kejadlen/start/gundo
 	url = git://github.com/sjl/gundo.vim.git
 [submodule ".vim/bundle/vim-dispatch"]
-	path = .vim/bundle/vim-dispatch
+	path = .vim/pack/kejadlen/start/vim-dispatch
 	url = git://github.com/tpope/vim-dispatch.git
 [submodule ".vim/bundle/ctrlp"]
-	path = .vim/bundle/ctrlp
+	path = .vim/pack/kejadlen/start/ctrlp
 	url = git://github.com/ctrlpvim/ctrlp.vim.git
 [submodule ".vim/bundle/vinegar"]
-	path = .vim/bundle/vinegar
+	path = .vim/pack/kejadlen/start/vinegar
 	url = git://github.com/tpope/vim-vinegar.git
 [submodule ".vim/bundle/go"]
-	path = .vim/bundle/go
+	path = .vim/pack/kejadlen/opt/vim-go
 	url = git://github.com/fatih/vim-go.git
 [submodule ".vim/bundle/vim-tmux-navigator"]
-	path = .vim/bundle/vim-tmux-navigator
+	path = .vim/pack/kejadlen/start/vim-tmux-navigator
 	url = git://github.com/christoomey/vim-tmux-navigator.git
 [submodule "src/powerline"]
 	path = src/powerline
@@ -56,34 +56,34 @@
 	path = src/prezto
 	url = git://github.com/kejadlen/prezto.git
 [submodule ".vim/bundle/vim-endwise"]
-	path = .vim/bundle/vim-endwise
+	path = .vim/pack/kejadlen/start/vim-endwise
 	url = git://github.com/tpope/vim-endwise.git
 [submodule ".vim/bundle/vim-sleuth"]
-	path = .vim/bundle/vim-sleuth
+	path = .vim/pack/kejadlen/start/vim-sleuth
 	url = git://github.com/tpope/vim-sleuth.git
 [submodule ".vim/bundle/vim-rsi"]
-	path = .vim/bundle/vim-rsi
+	path = .vim/pack/kejadlen/start/vim-rsi
 	url = git://github.com/tpope/vim-rsi.git
 [submodule ".vim/bundle/vim-sensible"]
-	path = .vim/bundle/vim-sensible
+	path = .vim/pack/kejadlen/start/vim-sensible
 	url = git://github.com/tpope/vim-sensible.git
 [submodule ".vim/bundle/vim-unimpaired"]
-	path = .vim/bundle/vim-unimpaired
+	path = .vim/pack/kejadlen/start/vim-unimpaired
 	url = git://github.com/tpope/vim-unimpaired.git
 [submodule ".vim/bundle/incsearch.vim"]
-	path = .vim/bundle/incsearch.vim
+	path = .vim/pack/kejadlen/start/incsearch.vim
 	url = git://github.com/haya14busa/incsearch.vim
 [submodule ".vim/bundle/vim-commentary"]
-	path = .vim/bundle/vim-commentary
+	path = .vim/pack/kejadlen/start/vim-commentary
 	url = git://github.com/tpope/vim-commentary.git
 [submodule ".vim/bundle/rust.vim"]
-	path = .vim/bundle/rust.vim
+	path = .vim/pack/kejadlen/start/rust.vim
 	url = git://github.com/rust-lang/rust.vim.git
 [submodule ".vim/bundle/vim-projectionist"]
-	path = .vim/bundle/vim-projectionist
+	path = .vim/pack/kejadlen/start/vim-projectionist
 	url = git://github.com/tpope/vim-projectionist.git
 [submodule ".vim/bundle/vim-rake"]
-	path = .vim/bundle/vim-rake
+	path = .vim/pack/kejadlen/start/vim-rake
 	url = git@github.com:tpope/vim-rake.git
 [submodule "Alfred.alfredpreferences/workflows/emoji.alfredworkflow"]
 	path = Alfred.alfredpreferences/workflows/emoji.alfredworkflow
@@ -104,5 +104,5 @@
 	path = src/swift
 	url = git@github.com:apple/swift.git
 [submodule ".vim/bundle/vim-fugitive"]
-	path = .vim/bundle/vim-fugitive
+	path = .vim/pack/kejadlen/start/vim-fugitive
 	url = git@github.com:tpope/vim-fugitive.git
diff --git a/.vim/autoload/pathogen.vim b/.vim/autoload/pathogen.vim
deleted file mode 100644
index 16c21feb..00000000
--- a/.vim/autoload/pathogen.vim
+++ /dev/null
@@ -1,328 +0,0 @@
-" pathogen.vim - path option manipulation
-" Maintainer:   Tim Pope <http://tpo.pe/>
-" Version:      2.2
-
-" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
-"
-" For management of individually installed plugins in ~/.vim/bundle (or
-" ~\vimfiles\bundle), adding `call pathogen#infect()` to the top of your
-" .vimrc 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
-
-function! s:warn(msg)
-  if &verbose
-    echohl WarningMsg
-    echomsg a:msg
-    echohl NONE
-  endif
-endfunction
-
-" Point of entry for basic default usage.  Give a relative path to invoke
-" pathogen#incubate() (defaults to "bundle/{}"), or an absolute path to invoke
-" pathogen#surround().  For backwards compatibility purposes, a full path that
-" does not end in {} or * is given to pathogen#runtime_prepend_subdirectories()
-" instead.
-function! pathogen#infect(...) abort " {{{1
-  for path in a:0 ? reverse(copy(a:000)) : ['bundle/{}']
-    if path =~# '^[^\\/]\+$'
-      call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
-      call pathogen#incubate(path . '/{}')
-    elseif path =~# '^[^\\/]\+[\\/]\%({}\|\*\)$'
-      call pathogen#incubate(path)
-    elseif path =~# '[\\/]\%({}\|\*\)$'
-      call pathogen#surround(path)
-    else
-      call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
-      call pathogen#surround(path . '/{}')
-    endif
-  endfor
-  call pathogen#cycle_filetype()
-  return ''
-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,'\\\@<!\%(\\\\\)*\zs,')
-  return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
-endfunction " }}}1
-
-" Convert a list to a path.
-function! pathogen#join(...) abort " {{{1
-  if type(a:1) == type(1) && a:1
-    let i = 1
-    let space = ' '
-  else
-    let i = 0
-    let space = ''
-  endif
-  let path = ""
-  while i < a:0
-    if type(a:000[i]) == type([])
-      let list = a:000[i]
-      let j = 0
-      while j < len(list)
-        let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
-        let path .= ',' . escaped
-        let j += 1
-      endwhile
-    else
-      let path .= "," . a:000[i]
-    endif
-    let i += 1
-  endwhile
-  return substitute(path,'^,','','')
-endfunction " }}}1
-
-" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
-function! pathogen#legacyjoin(...) abort " {{{1
-  return call('pathogen#join',[1] + a:000)
-endfunction " }}}1
-
-" Remove duplicates from a list.
-function! pathogen#uniq(list) abort " {{{1
-  let i = 0
-  let seen = {}
-  while i < len(a:list)
-    if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
-      call remove(a:list,i)
-    elseif a:list[i] ==# ''
-      let i += 1
-      let empty = 1
-    else
-      let seen[a:list[i]] = 1
-      let i += 1
-    endif
-  endwhile
-  return a:list
-endfunction " }}}1
-
-" \ on Windows unless shellslash is set, / everywhere else.
-function! pathogen#separator() abort " {{{1
-  return !exists("+shellslash") || &shellslash ? '/' : '\'
-endfunction " }}}1
-
-" Convenience wrapper around glob() which returns a list.
-function! pathogen#glob(pattern) abort " {{{1
-  let files = split(glob(a:pattern),"\n")
-  return map(files,'substitute(v:val,"[".pathogen#separator()."/]$","","")')
-endfunction "}}}1
-
-" Like pathogen#glob(), only limit the results to directories.
-function! pathogen#glob_directories(pattern) abort " {{{1
-  return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
-endfunction "}}}1
-
-" Turn filetype detection off and back on again if it was already enabled.
-function! pathogen#cycle_filetype() " {{{1
-  if exists('g:did_load_filetypes')
-    filetype off
-    filetype on
-  endif
-endfunction " }}}1
-
-" Check if a bundle is disabled.  A bundle is considered disabled if it ends
-" in a tilde or its basename or full name is included in the list
-" g:pathogen_disabled.
-function! pathogen#is_disabled(path) " {{{1
-  if a:path =~# '\~$'
-    return 1
-  elseif !exists("g:pathogen_disabled")
-    return 0
-  endif
-  let sep = pathogen#separator()
-  let blacklist = g:pathogen_disabled
-  return index(blacklist, strpart(a:path, strridx(a:path, sep)+1)) != -1 && index(blacklist, a:path) != 1
-endfunction "}}}1
-
-" Prepend the given directory to the runtime path and append its corresponding
-" after directory.  If the directory is already included, move it to the
-" outermost position.  Wildcards are added as is.  Ending a path in /{} causes
-" all subdirectories to be added (except those in g:pathogen_disabled).
-function! pathogen#surround(path) abort " {{{1
-  let sep = pathogen#separator()
-  let rtp = pathogen#split(&rtp)
-  if a:path =~# '[\\/]{}$'
-    let path = fnamemodify(a:path[0:-4], ':p:s?[\\/]\=$??')
-    let before = filter(pathogen#glob_directories(path.sep.'*'), '!pathogen#is_disabled(v:val)')
-    let after  = filter(reverse(pathogen#glob_directories(path.sep."*".sep."after")), '!pathogen#is_disabled(v:val[0:-7])')
-    call filter(rtp,'v:val[0:strlen(path)-1] !=# path')
-  else
-    let path = fnamemodify(a:path, ':p:s?[\\/]\=$??')
-    let before = [path]
-    let after = [path . sep . 'after']
-    call filter(rtp, 'index(before + after, v:val) == -1')
-  endif
-  let &rtp = pathogen#join(before, rtp, after)
-  return &rtp
-endfunction " }}}1
-
-" Prepend all subdirectories of path to the rtp, and append all 'after'
-" directories in those subdirectories.  Deprecated.
-function! pathogen#runtime_prepend_subdirectories(path) " {{{1
-  call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#surround('.string(a:path.'/{}').')')
-  return pathogen#surround(a:path . pathogen#separator() . '{}')
-endfunction " }}}1
-
-" For each directory in the runtime path, add a second entry with the given
-" argument appended.  If the argument ends in '/{}', add a separate entry for
-" each subdirectory.  The default argument is 'bundle/{}', which means that
-" .vim/bundle/*, $VIM/vimfiles/bundle/*, $VIMRUNTIME/bundle/*,
-" $VIM/vim/files/bundle/*/after, and .vim/bundle/*/after will be added (on
-" UNIX).
-function! pathogen#incubate(...) abort " {{{1
-  let sep = pathogen#separator()
-  let name = a:0 ? a:1 : 'bundle/{}'
-  if "\n".s:done_bundles =~# "\\M\n".name."\n"
-    return ""
-  endif
-  let s:done_bundles .= name . "\n"
-  let list = []
-  for dir in pathogen#split(&rtp)
-    if dir =~# '\<after$'
-      if name =~# '{}$'
-        let list +=  filter(pathogen#glob_directories(substitute(dir,'after$',name[0:-3],'').'*[^~]'.sep.'after'), '!pathogen#is_disabled(v:val[0:-7])') + [dir]
-      else
-        let list += [dir, substitute(dir, 'after$', '', '') . name . sep . 'after']
-      endif
-    else
-      if name =~# '{}$'
-        let list +=  [dir] + filter(pathogen#glob_directories(dir.sep.name[0:-3].'*[^~]'), '!pathogen#is_disabled(v:val)')
-      else
-        let list += [dir . sep . name, dir]
-      endif
-    endif
-  endfor
-  let &rtp = pathogen#join(pathogen#uniq(list))
-  return 1
-endfunction " }}}1
-
-" Deprecated alias for pathogen#incubate().
-function! pathogen#runtime_append_all_bundles(...) abort " {{{1
-  if a:0
-    call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#incubate('.string(a:1.'/{}').')')
-  else
-    call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#incubate()')
-  endif
-  return call('pathogen#incubate', map(copy(a:000),'v:val . "/{}"'))
-endfunction
-
-let s:done_bundles = ''
-" }}}1
-
-" Invoke :helptags on all non-$VIM doc directories in runtimepath.
-function! pathogen#helptags() abort " {{{1
-  let sep = pathogen#separator()
-  for glob in pathogen#split(&rtp)
-    for dir in split(glob(glob), "\n")
-      if (dir.sep)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir.sep.'doc') == 2 && !empty(filter(split(glob(dir.sep.'doc'.sep.'*'),"\n>"),'!isdirectory(v:val)')) && (!filereadable(dir.sep.'doc'.sep.'tags') || filewritable(dir.sep.'doc'.sep.'tags'))
-        helptags `=dir.'/doc'`
-      endif
-    endfor
-  endfor
-endfunction " }}}1
-
-command! -bar Helptags :call pathogen#helptags()
-
-" Execute the given command.  This is basically a backdoor for --remote-expr.
-function! pathogen#execute(...) abort " {{{1
-  for command in a:000
-    execute command
-  endfor
-  return ''
-endfunction " }}}1
-
-" Like findfile(), but hardcoded to use the runtimepath.
-function! pathogen#runtime_findfile(file,count) abort "{{{1
-  let rtp = pathogen#join(1,pathogen#split(&rtp))
-  let file = findfile(a:file,rtp,a:count)
-  if file ==# ''
-    return ''
-  else
-    return fnamemodify(file,':p')
-  endif
-endfunction " }}}1
-
-" Backport of fnameescape().
-function! pathogen#fnameescape(string) abort " {{{1
-  if exists('*fnameescape')
-    return fnameescape(a:string)
-  elseif a:string ==# '-'
-    return '\-'
-  else
-    return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
-  endif
-endfunction " }}}1
-
-if exists(':Vedit')
-  finish
-endif
-
-let s:vopen_warning = 0
-
-function! s:find(count,cmd,file,lcd) " {{{1
-  let rtp = pathogen#join(1,pathogen#split(&runtimepath))
-  let file = pathogen#runtime_findfile(a:file,a:count)
-  if file ==# ''
-    return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'"
-  endif
-  if !s:vopen_warning
-    let s:vopen_warning = 1
-    let warning = '|echohl WarningMsg|echo "Install scriptease.vim to continue using :V'.a:cmd.'"|echohl NONE'
-  else
-    let warning = ''
-  endif
-  if a:lcd
-    let path = file[0:-strlen(a:file)-2]
-    execute 'lcd `=path`'
-    return a:cmd.' '.pathogen#fnameescape(a:file) . warning
-  else
-    return a:cmd.' '.pathogen#fnameescape(file) . warning
-  endif
-endfunction " }}}1
-
-function! s:Findcomplete(A,L,P) " {{{1
-  let sep = pathogen#separator()
-  let cheats = {
-        \'a': 'autoload',
-        \'d': 'doc',
-        \'f': 'ftplugin',
-        \'i': 'indent',
-        \'p': 'plugin',
-        \'s': 'syntax'}
-  if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0])
-    let request = cheats[a:A[0]].a:A[1:-1]
-  else
-    let request = a:A
-  endif
-  let pattern = substitute(request,'/\|\'.sep,'*'.sep,'g').'*'
-  let found = {}
-  for path in pathogen#split(&runtimepath)
-    let path = expand(path, ':p')
-    let matches = split(glob(path.sep.pattern),"\n")
-    call map(matches,'isdirectory(v:val) ? v:val.sep : v:val')
-    call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]')
-    for match in matches
-      let found[match] = 1
-    endfor
-  endfor
-  return sort(keys(found))
-endfunction " }}}1
-
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve       :execute s:find(<count>,'edit<bang>',<q-args>,0)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit    :execute s:find(<count>,'edit<bang>',<q-args>,0)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen    :execute s:find(<count>,'edit<bang>',<q-args>,1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit   :execute s:find(<count>,'split',<q-args>,<bang>1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit  :execute s:find(<count>,'vsplit',<q-args>,<bang>1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit   :execute s:find(<count>,'pedit',<q-args>,<bang>1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread    :execute s:find(<count>,'read',<q-args>,<bang>1)
-
-" vim:set et sw=2:
diff --git a/.vim/colors/desert256.vim b/.vim/colors/desert256.vim
deleted file mode 100644
index 7a97742c..00000000
--- a/.vim/colors/desert256.vim
+++ /dev/null
@@ -1,338 +0,0 @@
-" Vim color file
-" Maintainer: Henry So, Jr. <henryso@panix.com>
-
-" These are the colors of the "desert" theme by Hans Fugal with a few small
-" modifications (namely that I lowered the intensity of the normal white and
-" made the normal and nontext backgrounds black), modified to work with 88-
-" and 256-color xterms.
-"
-" The original "desert" theme is available as part of the vim distribution or
-" at http://hans.fugal.net/vim/colors/.
-"
-" The real feature of this color scheme, with a wink to the "inkpot" theme, is
-" the programmatic approximation of the gui colors to the palettes of 88- and
-" 256- color xterms.  The functions that do this (folded away, for
-" readability) are calibrated to the colors used for Thomas E. Dickey's xterm
-" (version 200), which is available at http://dickey.his.com/xterm/xterm.html.
-"
-" I struggled with trying to parse the rgb.txt file to avoid the necessity of
-" converting color names to #rrggbb form, but decided it was just not worth
-" the effort.  Maybe someone seeing this may decide otherwise...
-
-set background=dark
-if version > 580
-    " no guarantees for version 5.8 and below, but this makes it stop
-    " complaining
-    hi clear
-    if exists("syntax_on")
-        syntax reset
-    endif
-endif
-let g:colors_name="desert256"
-
-if has("gui_running") || &t_Co == 88 || &t_Co == 256
-    " functions {{{
-    " returns an approximate grey index for the given grey level
-    fun <SID>grey_number(x)
-        if &t_Co == 88
-            if a:x < 23
-                return 0
-            elseif a:x < 69
-                return 1
-            elseif a:x < 103
-                return 2
-            elseif a:x < 127
-                return 3
-            elseif a:x < 150
-                return 4
-            elseif a:x < 173
-                return 5
-            elseif a:x < 196
-                return 6
-            elseif a:x < 219
-                return 7
-            elseif a:x < 243
-                return 8
-            else
-                return 9
-            endif
-        else
-            if a:x < 14
-                return 0
-            else
-                let l:n = (a:x - 8) / 10
-                let l:m = (a:x - 8) % 10
-                if l:m < 5
-                    return l:n
-                else
-                    return l:n + 1
-                endif
-            endif
-        endif
-    endfun
-
-    " returns the actual grey level represented by the grey index
-    fun <SID>grey_level(n)
-        if &t_Co == 88
-            if a:n == 0
-                return 0
-            elseif a:n == 1
-                return 46
-            elseif a:n == 2
-                return 92
-            elseif a:n == 3
-                return 115
-            elseif a:n == 4
-                return 139
-            elseif a:n == 5
-                return 162
-            elseif a:n == 6
-                return 185
-            elseif a:n == 7
-                return 208
-            elseif a:n == 8
-                return 231
-            else
-                return 255
-            endif
-        else
-            if a:n == 0
-                return 0
-            else
-                return 8 + (a:n * 10)
-            endif
-        endif
-    endfun
-
-    " returns the palette index for the given grey index
-    fun <SID>grey_color(n)
-        if &t_Co == 88
-            if a:n == 0
-                return 16
-            elseif a:n == 9
-                return 79
-            else
-                return 79 + a:n
-            endif
-        else
-            if a:n == 0
-                return 16
-            elseif a:n == 25
-                return 231
-            else
-                return 231 + a:n
-            endif
-        endif
-    endfun
-
-    " returns an approximate color index for the given color level
-    fun <SID>rgb_number(x)
-        if &t_Co == 88
-            if a:x < 69
-                return 0
-            elseif a:x < 172
-                return 1
-            elseif a:x < 230
-                return 2
-            else
-                return 3
-            endif
-        else
-            if a:x < 75
-                return 0
-            else
-                let l:n = (a:x - 55) / 40
-                let l:m = (a:x - 55) % 40
-                if l:m < 20
-                    return l:n
-                else
-                    return l:n + 1
-                endif
-            endif
-        endif
-    endfun
-
-    " returns the actual color level for the given color index
-    fun <SID>rgb_level(n)
-        if &t_Co == 88
-            if a:n == 0
-                return 0
-            elseif a:n == 1
-                return 139
-            elseif a:n == 2
-                return 205
-            else
-                return 255
-            endif
-        else
-            if a:n == 0
-                return 0
-            else
-                return 55 + (a:n * 40)
-            endif
-        endif
-    endfun
-
-    " returns the palette index for the given R/G/B color indices
-    fun <SID>rgb_color(x, y, z)
-        if &t_Co == 88
-            return 16 + (a:x * 16) + (a:y * 4) + a:z
-        else
-            return 16 + (a:x * 36) + (a:y * 6) + a:z
-        endif
-    endfun
-
-    " returns the palette index to approximate the given R/G/B color levels
-    fun <SID>color(r, g, b)
-        " get the closest grey
-        let l:gx = <SID>grey_number(a:r)
-        let l:gy = <SID>grey_number(a:g)
-        let l:gz = <SID>grey_number(a:b)
-
-        " get the closest color
-        let l:x = <SID>rgb_number(a:r)
-        let l:y = <SID>rgb_number(a:g)
-        let l:z = <SID>rgb_number(a:b)
-
-        if l:gx == l:gy && l:gy == l:gz
-            " there are two possibilities
-            let l:dgr = <SID>grey_level(l:gx) - a:r
-            let l:dgg = <SID>grey_level(l:gy) - a:g
-            let l:dgb = <SID>grey_level(l:gz) - a:b
-            let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
-            let l:dr = <SID>rgb_level(l:gx) - a:r
-            let l:dg = <SID>rgb_level(l:gy) - a:g
-            let l:db = <SID>rgb_level(l:gz) - a:b
-            let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
-            if l:dgrey < l:drgb
-                " use the grey
-                return <SID>grey_color(l:gx)
-            else
-                " use the color
-                return <SID>rgb_color(l:x, l:y, l:z)
-            endif
-        else
-            " only one possibility
-            return <SID>rgb_color(l:x, l:y, l:z)
-        endif
-    endfun
-
-    " returns the palette index to approximate the 'rrggbb' hex string
-    fun <SID>rgb(rgb)
-        let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
-        let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
-        let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
-
-        return <SID>color(l:r, l:g, l:b)
-    endfun
-
-    " sets the highlighting for the given group
-    fun <SID>X(group, fg, bg, attr)
-        if a:fg != ""
-            exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg)
-        endif
-        if a:bg != ""
-            exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg)
-        endif
-        if a:attr != ""
-            exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
-        endif
-    endfun
-    " }}}
-
-    call <SID>X("Normal", "cccccc", "000000", "")
-
-    " highlight groups
-    call <SID>X("Cursor", "708090", "f0e68c", "")
-    "CursorIM
-    "Directory
-    "DiffAdd
-    "DiffChange
-    "DiffDelete
-    "DiffText
-    "ErrorMsg
-    call <SID>X("VertSplit", "c2bfa5", "7f7f7f", "reverse")
-    call <SID>X("Folded", "ffd700", "4d4d4d", "")
-    call <SID>X("FoldColumn", "d2b48c", "4d4d4d", "")
-    call <SID>X("IncSearch", "708090", "f0e68c", "")
-    "LineNr
-    call <SID>X("ModeMsg", "daa520", "", "")
-    call <SID>X("MoreMsg", "2e8b57", "", "")
-    call <SID>X("NonText", "addbe7", "000000", "bold")
-    call <SID>X("Question", "00ff7f", "", "")
-    call <SID>X("Search", "f5deb3", "cd853f", "")
-    call <SID>X("SpecialKey", "9acd32", "", "")
-    call <SID>X("StatusLine", "c2bfa5", "000000", "reverse")
-    call <SID>X("StatusLineNC", "c2bfa5", "7f7f7f", "reverse")
-    call <SID>X("Title", "cd5c5c", "", "")
-    call <SID>X("Visual", "6b8e23", "f0e68c", "reverse")
-    "VisualNOS
-    call <SID>X("WarningMsg", "fa8072", "", "")
-    "WildMenu
-    "Menu
-    "Scrollbar
-    "Tooltip
-
-    " syntax highlighting groups
-    call <SID>X("Comment", "87ceeb", "", "")
-    call <SID>X("Constant", "ffa0a0", "", "")
-    call <SID>X("Identifier", "98fb98", "", "none")
-    call <SID>X("Statement", "f0e68c", "", "bold")
-    call <SID>X("PreProc", "cd5c5c", "", "")
-    call <SID>X("Type", "bdb76b", "", "bold")
-    call <SID>X("Special", "ffdead", "", "")
-    "Underlined
-    call <SID>X("Ignore", "666666", "", "")
-    "Error
-    call <SID>X("Todo", "ff4500", "eeee00", "")
-
-    " delete functions {{{
-    delf <SID>X
-    delf <SID>rgb
-    delf <SID>color
-    delf <SID>rgb_color
-    delf <SID>rgb_level
-    delf <SID>rgb_number
-    delf <SID>grey_color
-    delf <SID>grey_level
-    delf <SID>grey_number
-    " }}}
-else
-    " color terminal definitions
-    hi SpecialKey    ctermfg=darkgreen
-    hi NonText       cterm=bold ctermfg=darkblue
-    hi Directory     ctermfg=darkcyan
-    hi ErrorMsg      cterm=bold ctermfg=7 ctermbg=1
-    hi IncSearch     cterm=NONE ctermfg=yellow ctermbg=green
-    hi Search        cterm=NONE ctermfg=grey ctermbg=blue
-    hi MoreMsg       ctermfg=darkgreen
-    hi ModeMsg       cterm=NONE ctermfg=brown
-    hi LineNr        ctermfg=3
-    hi Question      ctermfg=green
-    hi StatusLine    cterm=bold,reverse
-    hi StatusLineNC  cterm=reverse
-    hi VertSplit     cterm=reverse
-    hi Title         ctermfg=5
-    hi Visual        cterm=reverse
-    hi VisualNOS     cterm=bold,underline
-    hi WarningMsg    ctermfg=1
-    hi WildMenu      ctermfg=0 ctermbg=3
-    hi Folded        ctermfg=darkgrey ctermbg=NONE
-    hi FoldColumn    ctermfg=darkgrey ctermbg=NONE
-    hi DiffAdd       ctermbg=4
-    hi DiffChange    ctermbg=5
-    hi DiffDelete    cterm=bold ctermfg=4 ctermbg=6
-    hi DiffText      cterm=bold ctermbg=1
-    hi Comment       ctermfg=darkcyan
-    hi Constant      ctermfg=brown
-    hi Special       ctermfg=5
-    hi Identifier    ctermfg=6
-    hi Statement     ctermfg=3
-    hi PreProc       ctermfg=5
-    hi Type          ctermfg=2
-    hi Underlined    cterm=underline ctermfg=5
-    hi Ignore        ctermfg=darkgrey
-    hi Error         cterm=bold ctermfg=7 ctermbg=1
-endif
-
-" vim: set fdl=0 fdm=marker:
diff --git a/.vim/indent/python.vim b/.vim/indent/python.vim
deleted file mode 100644
index 32c773cf..00000000
--- a/.vim/indent/python.vim
+++ /dev/null
@@ -1,196 +0,0 @@
-" Python indent file
-" Language:	    Python
-" Maintainer:	    Eric Mc Sween <em@tomcom.de>
-" Original Author:  David Bustos <bustos@caltech.edu> 
-" Last Change:      2004 Jun 07
-
-" Only load this indent file when no other was loaded.
-if exists("b:did_indent")
-    finish
-endif
-let b:did_indent = 1
-
-setlocal expandtab
-setlocal nolisp
-setlocal autoindent
-setlocal indentexpr=GetPythonIndent(v:lnum)
-setlocal indentkeys=!^F,o,O,<:>,0),0],0},=elif,=except
-
-let s:maxoff = 50
-
-" Find backwards the closest open parenthesis/bracket/brace.
-function! s:SearchParensPair()
-    let line = line('.')
-    let col = col('.')
-    
-    " Skip strings and comments and don't look too far
-    let skip = "line('.') < " . (line - s:maxoff) . " ? dummy :" .
-                \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? ' .
-                \ '"string\\|comment"'
-
-    " Search for parentheses
-    call cursor(line, col)
-    let parlnum = searchpair('(', '', ')', 'bW', skip)
-    let parcol = col('.')
-
-    " Search for brackets
-    call cursor(line, col)
-    let par2lnum = searchpair('\[', '', '\]', 'bW', skip)
-    let par2col = col('.')
-
-    " Search for braces
-    call cursor(line, col)
-    let par3lnum = searchpair('{', '', '}', 'bW', skip)
-    let par3col = col('.')
-
-    " Get the closest match
-    if par2lnum > parlnum || (par2lnum == parlnum && par2col > parcol)
-        let parlnum = par2lnum
-        let parcol = par2col
-    endif
-    if par3lnum > parlnum || (par3lnum == parlnum && par3col > parcol)
-        let parlnum = par3lnum
-        let parcol = par3col
-    endif 
-
-    " Put the cursor on the match
-    if parlnum > 0
-        call cursor(parlnum, parcol)
-    endif
-    return parlnum
-endfunction
-
-" Find the start of a multi-line statement
-function! s:StatementStart(lnum)
-    let lnum = a:lnum
-    while 1
-        if getline(lnum - 1) =~ '\\$'
-            let lnum = lnum - 1
-        else
-            call cursor(lnum, 1)
-            let maybe_lnum = s:SearchParensPair()
-            if maybe_lnum < 1
-                return lnum
-            else
-                let lnum = maybe_lnum
-            endif
-        endif
-    endwhile
-endfunction
-
-" Find the block starter that matches the current line
-function! s:BlockStarter(lnum, block_start_re)
-    let lnum = a:lnum
-    let maxindent = 10000       " whatever
-    while lnum > 1
-        let lnum = prevnonblank(lnum - 1)
-        if indent(lnum) < maxindent
-            if getline(lnum) =~ a:block_start_re
-                return lnum
-            else 
-                let maxindent = indent(lnum)
-                " It's not worth going further if we reached the top level
-                if maxindent == 0
-                    return -1
-                endif
-            endif
-        endif
-    endwhile
-    return -1
-endfunction
-                
-function! GetPythonIndent(lnum)
-
-    " First line has indent 0
-    if a:lnum == 1
-        return 0
-    endif
-    
-    " If we can find an open parenthesis/bracket/brace, line up with it.
-    call cursor(a:lnum, 1)
-    let parlnum = s:SearchParensPair()
-    if parlnum > 0
-        let parcol = col('.')
-        let closing_paren = match(getline(a:lnum), '^\s*[])}]') != -1
-        if match(getline(parlnum), '[([{]\s*$', parcol - 1) != -1
-            if closing_paren
-                return indent(parlnum)
-            else
-                return indent(parlnum) + &shiftwidth
-            endif
-        else
-            if closing_paren
-                return parcol - 1
-            else
-                return parcol
-            endif
-        endif
-    endif
-    
-    " Examine this line
-    let thisline = getline(a:lnum)
-    let thisindent = indent(a:lnum)
-
-    " If the line starts with 'elif' or 'else', line up with 'if' or 'elif'
-    if thisline =~ '^\s*\(elif\|else\)\>'
-        let bslnum = s:BlockStarter(a:lnum, '^\s*\(if\|elif\)\>')
-        if bslnum > 0
-            return indent(bslnum)
-        else
-            return -1
-        endif
-    endif
-        
-    " If the line starts with 'except' or 'finally', line up with 'try'
-    " or 'except'
-    if thisline =~ '^\s*\(except\|finally\)\>'
-        let bslnum = s:BlockStarter(a:lnum, '^\s*\(try\|except\)\>')
-        if bslnum > 0
-            return indent(bslnum)
-        else
-            return -1
-        endif
-    endif
-    
-    " Examine previous line
-    let plnum = a:lnum - 1
-    let pline = getline(plnum)
-    let sslnum = s:StatementStart(plnum)
-    
-    " If the previous line is blank, keep the same indentation
-    if pline =~ '^\s*$'
-        return -1
-    endif
-    
-    " If this line is explicitly joined, try to find an indentation that looks
-    " good. 
-    if pline =~ '\\$'
-        let compound_statement = '^\s*\(if\|while\|for\s.*\sin\|except\)\s*'
-        let maybe_indent = matchend(getline(sslnum), compound_statement)
-        if maybe_indent != -1
-            return maybe_indent
-        else
-            return indent(sslnum) + &sw * 2
-        endif
-    endif
-    
-    " If the previous line ended with a colon, indent relative to
-    " statement start.
-    if pline =~ ':\s*$'
-        return indent(sslnum) + &sw
-    endif
-
-    " If the previous line was a stop-execution statement or a pass
-    if getline(sslnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\)\>'
-        " See if the user has already dedented
-        if indent(a:lnum) > indent(sslnum) - &sw
-            " If not, recommend one dedent
-            return indent(sslnum) - &sw
-        endif
-        " Otherwise, trust the user
-        return -1
-    endif
-
-    " In all other cases, line up with the start of the previous statement.
-    return indent(sslnum)
-endfunction
diff --git a/.vim/bundle/go b/.vim/pack/kejadlen/opt/vim-go
similarity index 100%
rename from .vim/bundle/go
rename to .vim/pack/kejadlen/opt/vim-go
diff --git a/.vim/bundle/argtextobj.vim b/.vim/pack/kejadlen/start/argtextobj.vim
similarity index 100%
rename from .vim/bundle/argtextobj.vim
rename to .vim/pack/kejadlen/start/argtextobj.vim
diff --git a/.vim/bundle/camelcasemotion/.VimballRecord b/.vim/pack/kejadlen/start/camelcasemotion/.VimballRecord
similarity index 100%
rename from .vim/bundle/camelcasemotion/.VimballRecord
rename to .vim/pack/kejadlen/start/camelcasemotion/.VimballRecord
diff --git a/.vim/bundle/camelcasemotion/autoload/camelcasemotion.vim b/.vim/pack/kejadlen/start/camelcasemotion/autoload/camelcasemotion.vim
similarity index 100%
rename from .vim/bundle/camelcasemotion/autoload/camelcasemotion.vim
rename to .vim/pack/kejadlen/start/camelcasemotion/autoload/camelcasemotion.vim
diff --git a/.vim/bundle/camelcasemotion/doc/camelcasemotion.txt b/.vim/pack/kejadlen/start/camelcasemotion/doc/camelcasemotion.txt
similarity index 100%
rename from .vim/bundle/camelcasemotion/doc/camelcasemotion.txt
rename to .vim/pack/kejadlen/start/camelcasemotion/doc/camelcasemotion.txt
diff --git a/.vim/bundle/camelcasemotion/doc/tags b/.vim/pack/kejadlen/start/camelcasemotion/doc/tags
similarity index 100%
rename from .vim/bundle/camelcasemotion/doc/tags
rename to .vim/pack/kejadlen/start/camelcasemotion/doc/tags
diff --git a/.vim/bundle/camelcasemotion/plugin/camelcasemotion.vim b/.vim/pack/kejadlen/start/camelcasemotion/plugin/camelcasemotion.vim
similarity index 100%
rename from .vim/bundle/camelcasemotion/plugin/camelcasemotion.vim
rename to .vim/pack/kejadlen/start/camelcasemotion/plugin/camelcasemotion.vim
diff --git a/.vim/bundle/ctrlp b/.vim/pack/kejadlen/start/ctrlp
similarity index 100%
rename from .vim/bundle/ctrlp
rename to .vim/pack/kejadlen/start/ctrlp
diff --git a/.vim/bundle/gundo b/.vim/pack/kejadlen/start/gundo
similarity index 100%
rename from .vim/bundle/gundo
rename to .vim/pack/kejadlen/start/gundo
diff --git a/.vim/bundle/incsearch.vim b/.vim/pack/kejadlen/start/incsearch.vim
similarity index 100%
rename from .vim/bundle/incsearch.vim
rename to .vim/pack/kejadlen/start/incsearch.vim
diff --git a/.vim/bundle/rust.vim b/.vim/pack/kejadlen/start/rust.vim
similarity index 100%
rename from .vim/bundle/rust.vim
rename to .vim/pack/kejadlen/start/rust.vim
diff --git a/.vim/bundle/swift b/.vim/pack/kejadlen/start/swift
similarity index 100%
rename from .vim/bundle/swift
rename to .vim/pack/kejadlen/start/swift
diff --git a/.vim/bundle/tabular b/.vim/pack/kejadlen/start/tabular
similarity index 100%
rename from .vim/bundle/tabular
rename to .vim/pack/kejadlen/start/tabular
diff --git a/.vim/bundle/vim-coffee-script b/.vim/pack/kejadlen/start/vim-coffee-script
similarity index 100%
rename from .vim/bundle/vim-coffee-script
rename to .vim/pack/kejadlen/start/vim-coffee-script
diff --git a/.vim/bundle/vim-colors-solarized b/.vim/pack/kejadlen/start/vim-colors-solarized
similarity index 100%
rename from .vim/bundle/vim-colors-solarized
rename to .vim/pack/kejadlen/start/vim-colors-solarized
diff --git a/.vim/bundle/vim-commentary b/.vim/pack/kejadlen/start/vim-commentary
similarity index 100%
rename from .vim/bundle/vim-commentary
rename to .vim/pack/kejadlen/start/vim-commentary
diff --git a/.vim/bundle/vim-dispatch b/.vim/pack/kejadlen/start/vim-dispatch
similarity index 100%
rename from .vim/bundle/vim-dispatch
rename to .vim/pack/kejadlen/start/vim-dispatch
diff --git a/.vim/bundle/vim-endwise b/.vim/pack/kejadlen/start/vim-endwise
similarity index 100%
rename from .vim/bundle/vim-endwise
rename to .vim/pack/kejadlen/start/vim-endwise
diff --git a/.vim/bundle/vim-fugitive b/.vim/pack/kejadlen/start/vim-fugitive
similarity index 100%
rename from .vim/bundle/vim-fugitive
rename to .vim/pack/kejadlen/start/vim-fugitive
diff --git a/.vim/bundle/vim-indent-object b/.vim/pack/kejadlen/start/vim-indent-object
similarity index 100%
rename from .vim/bundle/vim-indent-object
rename to .vim/pack/kejadlen/start/vim-indent-object
diff --git a/.vim/bundle/vim-projectionist b/.vim/pack/kejadlen/start/vim-projectionist
similarity index 100%
rename from .vim/bundle/vim-projectionist
rename to .vim/pack/kejadlen/start/vim-projectionist
diff --git a/.vim/bundle/vim-rake b/.vim/pack/kejadlen/start/vim-rake
similarity index 100%
rename from .vim/bundle/vim-rake
rename to .vim/pack/kejadlen/start/vim-rake
diff --git a/.vim/bundle/vim-repeat b/.vim/pack/kejadlen/start/vim-repeat
similarity index 100%
rename from .vim/bundle/vim-repeat
rename to .vim/pack/kejadlen/start/vim-repeat
diff --git a/.vim/bundle/vim-rsi b/.vim/pack/kejadlen/start/vim-rsi
similarity index 100%
rename from .vim/bundle/vim-rsi
rename to .vim/pack/kejadlen/start/vim-rsi
diff --git a/.vim/bundle/vim-ruby b/.vim/pack/kejadlen/start/vim-ruby
similarity index 100%
rename from .vim/bundle/vim-ruby
rename to .vim/pack/kejadlen/start/vim-ruby
diff --git a/.vim/bundle/vim-sensible b/.vim/pack/kejadlen/start/vim-sensible
similarity index 100%
rename from .vim/bundle/vim-sensible
rename to .vim/pack/kejadlen/start/vim-sensible
diff --git a/.vim/bundle/vim-sleuth b/.vim/pack/kejadlen/start/vim-sleuth
similarity index 100%
rename from .vim/bundle/vim-sleuth
rename to .vim/pack/kejadlen/start/vim-sleuth
diff --git a/.vim/bundle/vim-surround b/.vim/pack/kejadlen/start/vim-surround
similarity index 100%
rename from .vim/bundle/vim-surround
rename to .vim/pack/kejadlen/start/vim-surround
diff --git a/.vim/bundle/vim-textobj-line b/.vim/pack/kejadlen/start/vim-textobj-line
similarity index 100%
rename from .vim/bundle/vim-textobj-line
rename to .vim/pack/kejadlen/start/vim-textobj-line
diff --git a/.vim/bundle/vim-textobj-rubyblock b/.vim/pack/kejadlen/start/vim-textobj-rubyblock
similarity index 100%
rename from .vim/bundle/vim-textobj-rubyblock
rename to .vim/pack/kejadlen/start/vim-textobj-rubyblock
diff --git a/.vim/bundle/vim-textobj-user b/.vim/pack/kejadlen/start/vim-textobj-user
similarity index 100%
rename from .vim/bundle/vim-textobj-user
rename to .vim/pack/kejadlen/start/vim-textobj-user
diff --git a/.vim/bundle/vim-tmux-navigator b/.vim/pack/kejadlen/start/vim-tmux-navigator
similarity index 100%
rename from .vim/bundle/vim-tmux-navigator
rename to .vim/pack/kejadlen/start/vim-tmux-navigator
diff --git a/.vim/bundle/vim-unimpaired b/.vim/pack/kejadlen/start/vim-unimpaired
similarity index 100%
rename from .vim/bundle/vim-unimpaired
rename to .vim/pack/kejadlen/start/vim-unimpaired
diff --git a/.vim/bundle/vinegar b/.vim/pack/kejadlen/start/vinegar
similarity index 100%
rename from .vim/bundle/vinegar
rename to .vim/pack/kejadlen/start/vinegar
diff --git a/.vim/syntax/applescript.vim b/.vim/syntax/applescript.vim
deleted file mode 100644
index 96610846..00000000
--- a/.vim/syntax/applescript.vim
+++ /dev/null
@@ -1,245 +0,0 @@
-" Vim syntax file
-" Language:    AppleScript
-" Maintainer:  Jim Eberle <jim.eberle@fastnlight.com>
-" Last Change: Mar 18, 2010
-" URL:         http://www.fastnlight.com/syntax/applescript.vim
-
-" Use :syn w/in a buffer to see language element breakdown
-
-if version < 600
-  syntax clear
-elseif exists("b:current_syntax")
-  finish
-endif
-
-" --- Statement ---
-syn keyword scptStmt get set count copy run global local prop property
-syn keyword scptStmt close put delete duplicate exists
-syn keyword scptStmt launch open print quit make move reopen save
-syn keyword scptStmt saving into
-hi def link scptStmt Statement
-
-" --- Type ---
-syn keyword scptType text string number integer real color date
-hi def link scptType Type
-
-" --- Operator ---
-syn keyword scptOp div mod not and or as
-syn match   scptOp "[-+*/^&]"
-" MacRoman single char :- (divide)
-exec 'syn match scptOp "'.nr2char(214).'"'
-syn match scptOp "\<\(a \)\?\(ref\( to\)\?\|reference to\)\>"
-hi def link scptOp Operator
-
-" Containment
-syn match   scptIN "\<starts\? with\>"
-syn match   scptIN "\<begins\? with\>"
-syn match   scptIN "\<ends\? with\>"
-syn match   scptIN "\<contains\>"
-syn match   scptIN "\<does not contain\>"
-syn match   scptIN "\<doesn't contain\>"
-syn match   scptIN "\<is in\>"
-syn match   scptIN "\<is contained by\>"
-syn match   scptIN "\<is not in\>"
-syn match   scptIN "\<is not contained by\>"
-syn match   scptIN "\<isn't contained by\>"
-hi def link scptIN scptOp
-
-" Equals
-syn match   scptEQ "="
-syn match   scptEQ "\<equal\>"
-syn match   scptEQ "\<equals\>"
-syn match   scptEQ "\<equal to\>"
-syn match   scptEQ "\<is\>"
-syn match   scptEQ "\<is equal to\>"
-hi def link scptEQ scptOp
-
-" Not Equals
-syn match   scptNE "\<does not equal\>"
-syn match   scptNE "\<doesn't equal\>"
-syn match   scptNE "\<is not\>"
-syn match   scptNE "\<is not equal\( to\)\?\>"
-syn match   scptNE "\<isn't\>"
-syn match   scptNE "\<isn't equal\( to\)\?\>"
-hi def link scptNE scptOp
-" MacRoman single char /=
-exec 'syn match scptNE "'.nr2char(173).'"'
-
-" Less Than
-syn match   scptLT "<"
-syn match   scptLT "\<comes before\>"
-syn match   scptLT "\(is \)\?less than"
-syn match   scptLT "\<is not greater than or equal\( to\)\?\>"
-syn match   scptLT "\<isn't greater than or equal\( to\)\?\>"
-hi def link scptLT scptOp
-
-" Greater Than
-syn match   scptGT ">"
-syn match   scptGT "\<comes after\>"
-syn match   scptGT "\(is \)\?greater than"
-syn match   scptGT "\<is not less than or equal\( to\)\?\>"
-syn match   scptGT "\<isn't less than or equal\( to\)\?\>"
-hi def link scptGT scptOp
-
-" Less Than or Equals
-syn match   scptLE "<="
-syn match   scptLE "\<does not come after\>"
-syn match   scptLE "\<doesn't come after\>"
-syn match   scptLE "\(is \)\?less than or equal\( to\)\?"
-syn match   scptLE "\<is not greater than\>"
-syn match   scptLE "\<isn't greater than\>"
-hi def link scptLE scptOp
-" MacRoman single char <=
-exec 'syn match scptLE "'.nr2char(178).'"'
-
-" Greater Than or Equals
-syn match   scptGE ">="
-syn match   scptGE "\<does not come before\>"
-syn match   scptGE "\<doesn't come before\>"
-syn match   scptGE "\(is \)\?greater than or equal\( to\)\?"
-syn match   scptGE "\<is not less than\>"
-syn match   scptGE "\<isn't less than\>"
-hi def link scptGE scptOp
-" MacRoman single char >=
-exec 'syn match scptGE "'.nr2char(179).'"'
-
-" --- Constant String ---
-syn region  scptString start=+"+ skip=+\\\\\|\\"+ end=+"+
-hi def link scptString String
-
-" --- Constant Number ---
-syn match   scptNumber "\<-\?\d\+\>"
-hi def link scptNumber Number
-
-" --- Constant Float ---
-syn match   scptFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\="
-syn match   scptFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=\>"
-syn match   scptFloat display contained "\d\+e[-+]\>"
-hi def link scptFloat Float
-
-" --- Constant Boolean ---
-syn keyword scptBoolean true false yes no ask
-hi def link scptBoolean Boolean
-
-" --- Other Constants ---
-syn keyword scptConst it me version pi result space tab anything
-syn match   scptConst "\<missing value\>"
-
-" Considering and Ignoring
-syn match   scptConst "\<application responses\>"
-syn match   scptConst "\<current application\>"
-syn match   scptConst "\<white space\>"
-syn keyword scptConst case diacriticals expansion hyphens punctuation
-hi def link scptConst Constant
-
-" Style
-syn match   scptStyle "\<all caps\>"
-syn match   scptStyle "\<all lowercase\>"
-syn match   scptStyle "\<small caps\>"
-syn keyword scptStyle bold condensed expanded hidden italic outline plain
-syn keyword scptStyle shadow strikethrough subscript superscript underline
-hi def link scptStyle scptConst
-
-" Day
-syn keyword scptDay Mon Tue Wed Thu Fri Sat Sun
-syn keyword scptDay Monday Tuesday Wednesday Thursday Friday Saturday Sunday
-syn keyword scptDay weekday
-hi def link scptDay scptConst
-
-" Month
-syn keyword scptMonth Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
-syn keyword scptMonth January February March
-syn keyword scptMonth April May June
-syn keyword scptMonth July August September
-syn keyword scptMonth October November December
-syn keyword scptMonth month
-hi def link scptMonth scptConst
-
-" Time
-syn keyword scptTime minutes hours days weeks
-hi def link scptTime scptConstant
-
-" --- Conditional ---
-syn keyword scptCond if then else
-syn match   scptCond "\<end if\>"
-hi def link scptCond Conditional
-
-" --- Repeat ---
-syn keyword scptRepeat repeat with from to by continue 
-syn match   scptRepeat "\<repeat while\>"
-syn match   scptRepeat "\<repeat until\>"
-syn match   scptRepeat "\<repeat with\>"
-syn match   scptRepeat "\<end repeat\>"
-hi def link scptRepeat Repeat
-
-" --- Exception ---
-syn keyword scptException try error
-syn match   scptException "\<on error\>"
-syn match   scptException "\<end try\>"
-syn match   scptException "\<end error\>"
-hi def link scptException Exception
-
-" --- Keyword ---
-syn keyword scptKeyword end tell times exit 
-syn keyword scptKeyword application file alias activate
-syn keyword scptKeyword script on return without given
-syn keyword scptKeyword considering ignoring items delimiters
-syn keyword scptKeyword some each every whose where id index item its
-syn keyword scptKeyword first second third fourth fifth sixth seventh
-syn keyword scptKeyword eighth ninth tenth container
-syn match   scptKeyword "\d\+\(st\|nd\|rd\|th\)"
-syn keyword scptKeyword last front back middle named thru through
-syn keyword scptKeyword before after in of the
-syn match   scptKeyword "\<text \>"
-syn match   scptKeyword "\<partial result\>"
-syn match   scptKeyword "\<but ignoring\>"
-syn match   scptKeyword "\<but considering\>"
-syn match   scptKeyword "\<with timeout\>"
-syn match   scptKeyword "\<with transaction\>"
-syn match   scptKeyword "\<do script\>"
-syn match   scptKeyword "\<POSIX path\>"
-syn match   scptKeyword "\<quoted form\>"
-syn match   scptKeyword "'s"
-hi def link scptKeyword Keyword
-
-" US Units
-syn keyword scptUnitUS quarts gallons ounces pounds inches feet yards miles
-syn match   scptUnitUS "\<square feet\>"
-syn match   scptUnitUS "\<square yards\>"
-syn match   scptUnitUS "\<square miles\>"
-syn match   scptUnitUS "\<cubic inches\>"
-syn match   scptUnitUS "\<cubic feet\>"
-syn match   scptUnitUS "\<cubic yards\>"
-syn match   scptUnitUS "\<degrees Fahrenheit\>"
-hi def link scptUnitUS scptKey
-
-" British Units
-syn keyword scptUnitBT litres centimetres metres kilometres
-syn match   scptUnitBT "\<square metres\>"
-syn match   scptUnitBT "\<square kilometres\>"
-syn match   scptUnitBT "\<cubic centimetres\>"
-syn match   scptUnitBT "\<cubic metres\>"
-hi def link scptUnitBT scptKey
-
-" Metric Units
-syn keyword scptUnitMT liters centimeters meters kilometers grams kilograms 
-syn match   scptUnitMT "\<square meters\>"
-syn match   scptUnitMT "\<square kilometers\>"
-syn match   scptUnitMT "\<cubic centimeters\>"
-syn match   scptUnitMT "\<cubic meters\>"
-syn match   scptUnitMT "\<degrees Celsius\>"
-syn match   scptUnitMT "\<degrees Kelvin\>"
-hi def link scptUnitMT scptKey
-
-" --- Comment ---
-syn match   scptComment "--.*"
-syn match   scptComment "#.*"
-syn region  scptComment start="(\*" end="\*)"
-hi def link scptComment Comment
-
-" --- Todo ---
-syn keyword scptTodo contained TODO FIXME XXX
-hi def link scptTodo Todo
-
-let b:current_syntax = "applescript"
-
diff --git a/.vim/syntax/ragel.vim b/.vim/syntax/ragel.vim
deleted file mode 100644
index fa77e438..00000000
--- a/.vim/syntax/ragel.vim
+++ /dev/null
@@ -1,149 +0,0 @@
-" Vim syntax file
-"
-" Language: Ragel
-" Author: Adrian Thurston
-
-syntax clear
-
-"
-" Outside code
-"
-
-" Comments
-syntax region ocComment start="\/\*" end="\*\/"
-syntax match ocComment "\/\/.*$"
-
-" Anything preprocessor
-syntax match ocPreproc "#\(.\|\\\n\)*$"
-syntax region ocPreproc start="#" end="[^\\]$"
-
-" Strings
-syntax match ocLiteral "'\(\\.\|[^'\\]\)*'"
-syntax match ocLiteral "\"\(\\.\|[^\"\\]\)*\""
-
-" C/C++ Keywords
-syntax keyword ocType unsigned signed void char short int long float double bool
-syntax keyword ocType inline static extern register const volatile auto
-syntax keyword ocType union enum struct class typedef
-syntax keyword ocType namespace template typename mutable
-syntax keyword ocKeyword break continue default do else for
-syntax keyword ocKeyword goto if return switch while
-syntax keyword ocKeyword new delete this using friend public private protected sizeof
-syntax keyword ocKeyword throw try catch operator typeid
-syntax keyword ocKeyword and bitor xor compl bitand and_eq or_eq xor_eq not not_eq
-syntax keyword ocKeyword static_cast dynamic_cast
-
-" Numbers
-syntax match ocNumber "[0-9][0-9]*"
-syntax match ocNumber "0x[0-9a-fA-F][0-9a-fA-F]*"
-
-" Booleans
-syntax keyword ocBoolean true false
-
-" Identifiers
-syntax match anyId "[a-zA-Z_][a-zA-Z_0-9]*"
-
-" Inline code only
-syntax keyword fsmType fpc fc fcurs fbuf fblen ftargs fstack
-syntax keyword fsmKeyword fhold fgoto fcall fret fentry fnext fexec fbreak
-
-syntax cluster rlItems contains=rlComment,rlLiteral,rlAugmentOps,rlOtherOps,rlKeywords,rlWrite,rlCodeCurly,rlCodeSemi,rlNumber,anyId,rlLabelColon,rlExprKeywords
-
-syntax region machineSpec1 matchgroup=beginRL start="%%{" end="}%%" contains=@rlItems
-syntax region machineSpec2 matchgroup=beginRL start="%%[^{]"rs=e-1 end="$" keepend contains=@rlItems
-syntax region machineSpec2 matchgroup=beginRL start="%%$" end="$" keepend contains=@rlItems
-
-" Comments
-syntax match rlComment "#.*$" contained
-
-" Literals
-syntax match rlLiteral "'\(\\.\|[^'\\]\)*'[i]*" contained
-syntax match rlLiteral "\"\(\\.\|[^\"\\]\)*\"[i]*" contained
-syntax match rlLiteral /\/\(\\.\|[^\/\\]\)*\/[i]*/ contained
-syntax match rlLiteral "\[\(\\.\|[^\]\\]\)*\]" contained
-
-" Numbers
-syntax match rlNumber "[0-9][0-9]*" contained
-syntax match rlNumber "0x[0-9a-fA-F][0-9a-fA-F]*" contained
-
-" Operators
-syntax match rlAugmentOps "[>$%@]" contained
-syntax match rlAugmentOps "<>\|<" contained
-syntax match rlAugmentOps "[>\<$%@][!\^/*~]" contained
-syntax match rlAugmentOps "[>$%]?" contained
-syntax match rlAugmentOps "<>[!\^/*~]" contained
-syntax match rlAugmentOps "=>" contained
-syntax match rlOtherOps "->" contained
-
-syntax match rlOtherOps ":>" contained
-syntax match rlOtherOps ":>>" contained
-syntax match rlOtherOps "<:" contained
-
-" Keywords
-" FIXME: Enable the range keyword post 5.17.
-" syntax keyword rlKeywords machine action context include range contained
-syntax keyword rlKeywords machine action context include import export prepush postpop contained
-syntax keyword rlExprKeywords when inwhen outwhen err lerr eof from to contained
-
-" Case Labels
-syntax keyword caseLabelKeyword case contained
-syntax cluster caseLabelItems contains=ocComment,ocPreproc,ocLiteral,ocType,ocKeyword,caseLabelKeyword,ocNumber,ocBoolean,anyId,fsmType,fsmKeyword
-syntax match caseLabelColon "case" contains=@caseLabelItems
-syntax match caseLabelColon "case[\t ]\+.*:$" contains=@caseLabelItems
-syntax match caseLabelColon "case[\t ]\+.*:[^=:]"me=e-1 contains=@caseLabelItems
-
-" Labels
-syntax match ocLabelColon "^[\t ]*[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:$" contains=anyLabel
-syntax match ocLabelColon "^[\t ]*[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:[^=:]"me=e-1 contains=anyLabel
-
-syntax match rlLabelColon "[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:$" contained contains=anyLabel
-syntax match rlLabelColon "[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:[^=:>]"me=e-1 contained contains=anyLabel
-syntax match anyLabel "[a-zA-Z_][a-zA-Z_0-9]*" contained
-
-" All items that can go in a code block.
-
-syntax cluster inlineItems contains=rlCodeCurly,ocComment,ocPreproc,ocLiteral,ocType,ocKeyword,ocNumber,ocBoolean,ocLabelColon,anyId,fsmType,fsmKeyword,caseLabelColon
-
-" Blocks of code. rlCodeCurly is recursive.
-syntax region rlCodeCurly matchgroup=NONE start="{" end="}" contained contains=@inlineItems
-syntax region rlCodeSemi matchgroup=Type start="\<alphtype\>" start="\<getkey\>" start="\<access\>" start="\<variable\>" matchgroup=NONE end=";" contained contains=@inlineItems
-
-syntax region rlWrite matchgroup=Type start="\<write\>" matchgroup=NONE end="[;)]" contained contains=rlWriteKeywords,rlWriteOptions
-
-syntax keyword rlWriteKeywords init data exec exports start error first_final contained
-syntax keyword rlWriteOptions noerror nofinal noprefix noend nocs contained
-
-"
-" Sync at the start of machine specs.
-"
-" Match The ragel delimiters only if there quotes no ahead on the same line.
-" On the open marker, use & to consume the leader.
-syntax sync match ragelSyncPat grouphere NONE "^[^\'\"%]*%%{&^[^\'\"%]*"
-syntax sync match ragelSyncPat grouphere NONE "^[^\'\"%]*%%[^{]&^[^\'\"%]*"
-syntax sync match ragelSyncPat grouphere NONE "^[^\'\"]*}%%"
-
-"
-" Specifying Groups
-"
-hi link ocComment Comment
-hi link ocPreproc Macro
-hi link ocLiteral String
-hi link ocType Type
-hi link ocKeyword Keyword
-hi link ocNumber Number
-hi link ocBoolean Boolean
-hi link rlComment Comment
-hi link rlNumber Number
-hi link rlLiteral String
-hi link rlAugmentOps Keyword
-hi link rlExprKeywords Keyword
-hi link rlWriteKeywords Keyword
-hi link rlWriteOptions Keyword
-hi link rlKeywords Type
-hi link fsmType Type
-hi link fsmKeyword Keyword
-hi link anyLabel Label
-hi link caseLabelKeyword Keyword
-hi link beginRL Type
- 
-let b:current_syntax = "ragel"
diff --git a/.vim/syntax/textile.vim b/.vim/syntax/textile.vim
deleted file mode 100644
index 48a5d657..00000000
--- a/.vim/syntax/textile.vim
+++ /dev/null
@@ -1,87 +0,0 @@
-"
-"   You will have to restart vim for this to take effect.  In any case
-"   it is a good idea to read ":he new-filetype" so that you know what
-"   is going on, and why the above lines work.
-"
-"   Written originally by Dominic Mitchell, Jan 2006.
-"   happygiraffe.net
-"
-"   Modified by Aaron Bieber, May 2007.
-"   blog.aaronbieber.com
-"
-"   Modified by Tim Harper, July 2008 - current
-"   tim.theenchanter.com
-" @(#) $Id$
-
-if version < 600
-    syntax clear
-elseif exists("b:current_syntax")
-    finish
-endif
-
-" Textile commands like "h1" are case sensitive, AFAIK.
-syn case match
-
-" Textile syntax: <http://textism.com/tools/textile/>
-
-" Inline elements.
-syn match txtEmphasis    /_[^_]\+_/
-syn match txtBold        /\*[^*]\+\*/
-syn match txtCite        /??.\+??/
-syn match txtDeleted     /-[^-]\+-/
-syn match txtInserted    /+[^+]\++/
-syn match txtSuper       /\^[^^]\+\^/
-syn match txtSub         /\~[^~]\+\~/
-syn match txtSpan        /%[^%]\+%/
-syn match txtFootnoteRef /\[[0-9]\+]/
-syn match txtCode        /@[^@]\+@/
-
-" Block elements.
-syn match txtHeader      /^h1\. .\+/
-syn match txtHeader2     /^h2\. .\+/
-syn match txtHeader3     /^h[3-6]\..\+/
-syn match txtBlockquote  /^bq\./
-syn match txtFootnoteDef /^fn[0-9]\+\./
-syn match txtListBullet  /\v^\*+ /
-syn match txtListBullet2  /\v^(\*\*)+ /
-syn match txtListNumber  /\v^#+ /
-syn match txtListNumber2  /\v^(##)+ /
-
-syn cluster txtBlockElement contains=txtHeader,txtBlockElement,txtFootnoteDef,txtListBullet,txtListNumber
-
-
-" Everything after the first colon is from RFC 2396, with extra
-" backslashes to keep vim happy...  Original:
-" ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
-"
-" Revised the pattern to exclude spaces from the URL portion of the
-" pattern. Aaron Bieber, 2007.
-syn match txtLink /"[^"]\+":\(\([^:\/?# ]\+\):\)\?\(\/\/\([^\/?# ]*\)\)\?\([^?# ]*\)\(?\([^# ]*\)\)\?\(#\([^ ]*\)\)\?/
-
-syn cluster txtInlineElement contains=txtEmphasis,txtBold,txtCite,txtDeleted,txtInserted,txtSuper,txtSub,txtSpan
-
-if version >= 508 || !exists("did_txt_syn_inits")
-    if version < 508
-        let did_txt_syn_inits = 1
-        command -nargs=+ HiLink hi link <args>
-    else
-        command -nargs=+ HiLink hi def link <args>
-    endif
-
-    HiLink txtHeader Title
-    HiLink txtHeader2 Question
-    HiLink txtHeader3 Statement
-    HiLink txtBlockquote Comment
-    HiLink txtListBullet Operator
-    HiLink txtListBullet2 Constant
-    HiLink txtListNumber Operator
-    HiLink txtListNumber2 Constant
-    HiLink txtLink String
-    HiLink txtCode Identifier
-    hi def txtEmphasis term=underline cterm=underline gui=italic
-    hi def txtBold term=bold cterm=bold gui=bold
-
-    delcommand HiLink
-endif
-
-" vim: set ai et sw=4 :
diff --git a/.vimrc b/.vimrc
index 2174b60a..5926d1b9 100644
--- a/.vimrc
+++ b/.vimrc
@@ -4,14 +4,6 @@ if filereadable(glob("~/.vimrc.before"))
   source ~/.vimrc.before
 endif
 
-" pathogen
-filetype off
-if empty($GOPATH)
-  let g:pathogen_disabled = []
-  call add(g:pathogen_disabled, 'go')
-endif
-execute pathogen#infect()
-
 """ mappings
 
 let mapleader="\<Space>"
@@ -207,6 +199,11 @@ let g:rustfmt_autosave = 1
 " vim-markdown
 let g:markdown_fenced_languages = ['ruby']
 
+" vim-go
+if !empty($GOPATH)
+  packadd vim-go
+endif
+
 " gui stuff
 set guioptions-=T
 set guifont=Consolas:h9:cANSI