[vim] reset config
change
commit 686cb54f5e9ea61245a033f5a063ac38d95cec09
author Alpha Chen <alpha.chen@gmail.com>
date
parent 162db2b5
diff --git a/.gitmodules b/.gitmodules
index 876669a6..dd12f329 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,90 +1,9 @@
-[submodule ".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/pack/kejadlen/start/vim-textobj-line
-	url = git://github.com/kana/vim-textobj-line.git
-[submodule ".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/pack/kejadlen/start/vim-textobj-rubyblock
-	url = git://github.com/nelstrom/vim-textobj-rubyblock.git
-[submodule ".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/pack/kejadlen/start/vim-colors-solarized
-	url = git://github.com/altercation/vim-colors-solarized.git
-[submodule ".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/pack/kejadlen/start/vim-surround
-	url = git://github.com/tpope/vim-surround.git
-[submodule ".vim/bundle/tabular"]
-	path = .vim/pack/kejadlen/start/tabular
-	url = git://github.com/godlygeek/tabular.git
-[submodule ".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/pack/kejadlen/start/vim-coffee-script
-	url = git://github.com/kchmck/vim-coffee-script.git
-[submodule ".vim/bundle/gundo"]
-	path = .vim/pack/kejadlen/start/gundo
-	url = git://github.com/sjl/gundo.vim.git
-[submodule ".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/pack/kejadlen/start/ctrlp
-	url = git://github.com/ctrlpvim/ctrlp.vim.git
-[submodule ".vim/bundle/vinegar"]
-	path = .vim/pack/kejadlen/start/vinegar
-	url = git://github.com/tpope/vim-vinegar.git
-[submodule ".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/pack/kejadlen/start/vim-tmux-navigator
-	url = git://github.com/christoomey/vim-tmux-navigator.git
 [submodule "src/powerline"]
 	path = src/powerline
-	url = git://github.com/powerline/powerline.git
+	url = https://github.com/powerline/powerline.git
 [submodule "src/prezto"]
 	path = src/prezto
-	url = git://github.com/kejadlen/prezto.git
-[submodule ".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/pack/kejadlen/start/vim-sleuth
-	url = git://github.com/tpope/vim-sleuth.git
-[submodule ".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/pack/kejadlen/start/vim-sensible
-	url = git://github.com/tpope/vim-sensible.git
-[submodule ".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/pack/kejadlen/start/incsearch.vim
-	url = git://github.com/haya14busa/incsearch.vim
-[submodule ".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/pack/kejadlen/start/rust.vim
-	url = git://github.com/rust-lang/rust.vim.git
-[submodule ".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/pack/kejadlen/start/vim-rake
-	url = git@github.com:tpope/vim-rake.git
+	url = https://github.com/kejadlen/prezto.git
 [submodule "Alfred.alfredpreferences/workflows/emoji.alfredworkflow"]
 	path = Alfred.alfredpreferences/workflows/emoji.alfredworkflow
 	url = git@github.com:kejadlen/emoji.alfredworkflow
@@ -100,15 +19,51 @@
 [submodule "Alfred.alfredpreferences/workflows/alphred.alfredworkflow"]
 	path = Alfred.alfredpreferences/workflows/alphred.alfredworkflow
 	url = git@github.com:kejadlen/alphred.alfredworkflow.git
-[submodule "src/swift"]
-	path = src/swift
-	url = git@github.com:apple/swift.git
-[submodule ".vim/bundle/vim-fugitive"]
-	path = .vim/pack/kejadlen/start/vim-fugitive
-	url = git@github.com:tpope/vim-fugitive.git
-[submodule ".vim/pack/kejadlen/start/elm-vim"]
-	path = .vim/pack/kejadlen/start/elm-vim
-	url = git@github.com:ElmCast/elm-vim.git
-[submodule ".vim/pack/kejadlen/start/vim-startify"]
-	path = .vim/pack/kejadlen/start/vim-startify
-	url = git@github.com:mhinz/vim-startify.git
+[submodule ".vim/pack/alpha/start/vim-commentary"]
+	path = .vim/pack/alpha/start/vim-commentary
+	url = https://github.com/tpope/vim-commentary.git
+[submodule ".vim/pack/alpha/start/vim-sensible"]
+	path = .vim/pack/alpha/start/vim-sensible
+	url = https://github.com/tpope/vim-sensible.git
+[submodule ".vim/pack/alpha/start/vim-surround"]
+	path = .vim/pack/alpha/start/vim-surround
+	url = https://github.com/tpope/vim-surround.git
+[submodule ".vim/pack/alpha/start/vim-sleuth"]
+	path = .vim/pack/alpha/start/vim-sleuth
+	url = https://github.com/tpope/vim-sleuth.git
+[submodule ".vim/pack/alpha/start/vim-tmux-navigator"]
+	path = .vim/pack/alpha/start/vim-tmux-navigator
+	url = https://github.com/christoomey/vim-tmux-navigator.git
+[submodule ".vim/pack/alpha/start/vim-unimpaired"]
+	path = .vim/pack/alpha/start/vim-unimpaired
+	url = https://github.com/tpope/vim-unimpaired.git
+[submodule ".vim/pack/alpha/start/vim-colors-solarized"]
+	path = .vim/pack/alpha/start/vim-colors-solarized
+	url = https://github.com/altercation/vim-colors-solarized.git
+[submodule ".vim/pack/alpha/start/rust.vim"]
+	path = .vim/pack/alpha/start/rust.vim
+	url = https://github.com/rust-lang/rust.vim.git
+[submodule ".vim/pack/alpha/start/incsearch.vim"]
+	path = .vim/pack/alpha/start/incsearch.vim
+	url = https://github.com/haya14busa/incsearch.vim.git
+[submodule ".vim/pack/alpha/start/vim-vinegar"]
+	path = .vim/pack/alpha/start/vim-vinegar
+	url = https://github.com/tpope/vim-vinegar.git
+[submodule ".vim/pack/alpha/start/vim-dispatch"]
+	path = .vim/pack/alpha/start/vim-dispatch
+	url = https://github.com/tpope/vim-dispatch.git
+[submodule ".vim/pack/alpha/start/vim-endwise"]
+	path = .vim/pack/alpha/start/vim-endwise
+	url = https://github.com/tpope/vim-endwise.git
+[submodule ".vim/pack/alpha/start/vim-ruby"]
+	path = .vim/pack/alpha/start/vim-ruby
+	url = https://github.com/vim-ruby/vim-ruby.git
+[submodule ".vim/pack/alpha/start/vim-repeat"]
+	path = .vim/pack/alpha/start/vim-repeat
+	url = https://github.com/tpope/vim-repeat.git
+[submodule ".vim/pack/alpha/start/vim-textobj-user"]
+	path = .vim/pack/alpha/start/vim-textobj-user
+	url = https://github.com/kana/vim-textobj-user.git
+[submodule ".vim/pack/alpha/start/vim-textobj-rubyblock"]
+	path = .vim/pack/alpha/start/vim-textobj-rubyblock
+	url = https://github.com/nelstrom/vim-textobj-rubyblock.git
diff --git a/.tmux.conf b/.tmux.conf
index 9b24653e..b21e4d2f 100644
--- a/.tmux.conf
+++ b/.tmux.conf
@@ -51,13 +51,13 @@ bind C-c new-window -c '#{pane_current_path}';
 bind v split-window -h -c '#{pane_current_path}';
 bind s split-window -v -c '#{pane_current_path}';
 
-# Smart pane switching with awareness of vim splits
-bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-h) || tmux select-pane -L"
-bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-j) || tmux select-pane -D"
-bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-k) || tmux select-pane -U"
-bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-l) || tmux select-pane -R"
-bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys 'C-\\') || tmux select-pane -l"
-bind C-l send-keys 'C-l'
+is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
+    | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
+bind-key -n C-h if-shell "$is_vim" "send-keys C-h"  "select-pane -L"
+bind-key -n C-j if-shell "$is_vim" "send-keys C-j"  "select-pane -D"
+bind-key -n C-k if-shell "$is_vim" "send-keys C-k"  "select-pane -U"
+bind-key -n C-l if-shell "$is_vim" "send-keys C-l"  "select-pane -R"
+bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
 
 bind -r < resize-pane -L 3
 bind -r > resize-pane -R 3
diff --git a/.vim/after/ftplugin/cpp.vim b/.vim/after/ftplugin/cpp.vim
deleted file mode 100644
index 938afbc7..00000000
--- a/.vim/after/ftplugin/cpp.vim
+++ /dev/null
@@ -1,4 +0,0 @@
-setlocal tabstop=4
-setlocal softtabstop=4
-setlocal shiftwidth=4
-setlocal noexpandtab
diff --git a/.vim/after/ftplugin/gitconfig.vim b/.vim/after/ftplugin/gitconfig.vim
deleted file mode 100644
index bbd8967d..00000000
--- a/.vim/after/ftplugin/gitconfig.vim
+++ /dev/null
@@ -1 +0,0 @@
-setlocal noexpandtab
diff --git a/.vim/after/ftplugin/go.vim b/.vim/after/ftplugin/go.vim
deleted file mode 100644
index d6a1ebb2..00000000
--- a/.vim/after/ftplugin/go.vim
+++ /dev/null
@@ -1,8 +0,0 @@
-setlocal tabstop=4
-setlocal softtabstop=4
-setlocal shiftwidth=4
-setlocal noexpandtab
-setlocal commentstring=//\ %s
-setlocal foldmethod=syntax
-compiler go
-let b:dispatch="go test -v"
diff --git a/.vim/after/ftplugin/objc.vim b/.vim/after/ftplugin/objc.vim
deleted file mode 100644
index 938afbc7..00000000
--- a/.vim/after/ftplugin/objc.vim
+++ /dev/null
@@ -1,4 +0,0 @@
-setlocal tabstop=4
-setlocal softtabstop=4
-setlocal shiftwidth=4
-setlocal noexpandtab
diff --git a/.vim/after/ftplugin/openscad.vim b/.vim/after/ftplugin/openscad.vim
deleted file mode 100644
index 6b79341d..00000000
--- a/.vim/after/ftplugin/openscad.vim
+++ /dev/null
@@ -1,5 +0,0 @@
-setlocal tabstop=2
-setlocal softtabstop=2
-setlocal shiftwidth=2
-setlocal expandtab
-setlocal commentstring=//\ %s
diff --git a/.vim/after/ftplugin/python.vim b/.vim/after/ftplugin/python.vim
deleted file mode 100644
index 3776f28c..00000000
--- a/.vim/after/ftplugin/python.vim
+++ /dev/null
@@ -1,4 +0,0 @@
-setlocal tabstop=4
-setlocal softtabstop=4
-setlocal shiftwidth=4
-" setlocal nosmartindent
diff --git a/.vim/after/ftplugin/ruby.vim b/.vim/after/ftplugin/ruby.vim
index 59dcb5af..ce07d87a 100644
--- a/.vim/after/ftplugin/ruby.vim
+++ b/.vim/after/ftplugin/ruby.vim
@@ -1,2 +1,2 @@
-setlocal foldmethod=syntax
-setlocal foldlevelstart=5
+highlight rubyDefine ctermbg=235
+set foldmethod=syntax
diff --git a/.vim/after/ftplugin/rust.vim b/.vim/after/ftplugin/rust.vim
deleted file mode 100644
index 16ffc979..00000000
--- a/.vim/after/ftplugin/rust.vim
+++ /dev/null
@@ -1 +0,0 @@
-setlocal foldmethod=syntax
diff --git a/.vim/after/ftplugin/taskpaper.vim b/.vim/after/ftplugin/taskpaper.vim
deleted file mode 100644
index bbd8967d..00000000
--- a/.vim/after/ftplugin/taskpaper.vim
+++ /dev/null
@@ -1 +0,0 @@
-setlocal noexpandtab
diff --git a/.vim/after/ftplugin/vimwiki.vim b/.vim/after/ftplugin/vimwiki.vim
deleted file mode 100644
index 0161d6f4..00000000
--- a/.vim/after/ftplugin/vimwiki.vim
+++ /dev/null
@@ -1 +0,0 @@
-nmap <leader><space> <Plug>VimwikiToggleListItem
diff --git a/.vim/ftdetect/applescript.vim b/.vim/ftdetect/applescript.vim
deleted file mode 100644
index 3949e9a3..00000000
--- a/.vim/ftdetect/applescript.vim
+++ /dev/null
@@ -1 +0,0 @@
-au BufRead,BufNewFile *.applescript setf applescript
diff --git a/.vim/ftdetect/bats.vim b/.vim/ftdetect/bats.vim
deleted file mode 100644
index ddabe33c..00000000
--- a/.vim/ftdetect/bats.vim
+++ /dev/null
@@ -1 +0,0 @@
-au BufRead,BufNewFile *.bats setf sh
diff --git a/.vim/ftdetect/markdown.vim b/.vim/ftdetect/markdown.vim
new file mode 100644
index 00000000..ad2e510e
--- /dev/null
+++ b/.vim/ftdetect/markdown.vim
@@ -0,0 +1 @@
+autocmd BufRead,BufNewFile *.md setlocal spell
diff --git a/.vim/ftdetect/openscad.vim b/.vim/ftdetect/openscad.vim
deleted file mode 100644
index e5ee3329..00000000
--- a/.vim/ftdetect/openscad.vim
+++ /dev/null
@@ -1 +0,0 @@
-au BufRead,BufNewFile *.scad setf openscad
diff --git a/.vim/ftdetect/ragel.vim b/.vim/ftdetect/ragel.vim
deleted file mode 100644
index 957f9608..00000000
--- a/.vim/ftdetect/ragel.vim
+++ /dev/null
@@ -1 +0,0 @@
-au BufRead,BufNewFile *.rl setf ragel
diff --git a/.vim/pack/kejadlen/start/incsearch.vim b/.vim/pack/alpha/start/incsearch.vim
similarity index 100%
rename from .vim/pack/kejadlen/start/incsearch.vim
rename to .vim/pack/alpha/start/incsearch.vim
diff --git a/.vim/pack/kejadlen/start/rust.vim b/.vim/pack/alpha/start/rust.vim
similarity index 100%
rename from .vim/pack/kejadlen/start/rust.vim
rename to .vim/pack/alpha/start/rust.vim
diff --git a/.vim/pack/kejadlen/start/vim-colors-solarized b/.vim/pack/alpha/start/vim-colors-solarized
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-colors-solarized
rename to .vim/pack/alpha/start/vim-colors-solarized
diff --git a/.vim/pack/kejadlen/start/vim-commentary b/.vim/pack/alpha/start/vim-commentary
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-commentary
rename to .vim/pack/alpha/start/vim-commentary
diff --git a/.vim/pack/kejadlen/start/vim-dispatch b/.vim/pack/alpha/start/vim-dispatch
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-dispatch
rename to .vim/pack/alpha/start/vim-dispatch
diff --git a/.vim/pack/alpha/start/vim-endwise b/.vim/pack/alpha/start/vim-endwise
new file mode 160000
index 00000000..d5655263
--- /dev/null
+++ b/.vim/pack/alpha/start/vim-endwise
@@ -0,0 +1 @@
+Subproject commit d5655263af8b3611a2bcb907a9963831a88d154b
diff --git a/.vim/pack/kejadlen/start/vim-repeat b/.vim/pack/alpha/start/vim-repeat
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-repeat
rename to .vim/pack/alpha/start/vim-repeat
diff --git a/.vim/pack/alpha/start/vim-ruby b/.vim/pack/alpha/start/vim-ruby
new file mode 160000
index 00000000..96510b06
--- /dev/null
+++ b/.vim/pack/alpha/start/vim-ruby
@@ -0,0 +1 @@
+Subproject commit 96510b067e57bbfc9f0da0697f61c7d30ee6477f
diff --git a/.vim/pack/kejadlen/start/vim-sensible b/.vim/pack/alpha/start/vim-sensible
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-sensible
rename to .vim/pack/alpha/start/vim-sensible
diff --git a/.vim/pack/kejadlen/start/vim-sleuth b/.vim/pack/alpha/start/vim-sleuth
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-sleuth
rename to .vim/pack/alpha/start/vim-sleuth
diff --git a/.vim/pack/kejadlen/start/vim-surround b/.vim/pack/alpha/start/vim-surround
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-surround
rename to .vim/pack/alpha/start/vim-surround
diff --git a/.vim/pack/kejadlen/start/vim-textobj-rubyblock b/.vim/pack/alpha/start/vim-textobj-rubyblock
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-textobj-rubyblock
rename to .vim/pack/alpha/start/vim-textobj-rubyblock
diff --git a/.vim/pack/kejadlen/start/vim-textobj-user b/.vim/pack/alpha/start/vim-textobj-user
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-textobj-user
rename to .vim/pack/alpha/start/vim-textobj-user
diff --git a/.vim/pack/kejadlen/start/vim-tmux-navigator b/.vim/pack/alpha/start/vim-tmux-navigator
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-tmux-navigator
rename to .vim/pack/alpha/start/vim-tmux-navigator
diff --git a/.vim/pack/kejadlen/start/vim-unimpaired b/.vim/pack/alpha/start/vim-unimpaired
similarity index 100%
rename from .vim/pack/kejadlen/start/vim-unimpaired
rename to .vim/pack/alpha/start/vim-unimpaired
diff --git a/.vim/pack/kejadlen/start/vinegar b/.vim/pack/alpha/start/vim-vinegar
similarity index 100%
rename from .vim/pack/kejadlen/start/vinegar
rename to .vim/pack/alpha/start/vim-vinegar
diff --git a/.vim/pack/kejadlen/opt/vim-go b/.vim/pack/kejadlen/opt/vim-go
deleted file mode 160000
index 362e15ab..00000000
--- a/.vim/pack/kejadlen/opt/vim-go
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 362e15ab492853ff9582ea5856878e1a5b64ed18
diff --git a/.vim/pack/kejadlen/start/argtextobj.vim b/.vim/pack/kejadlen/start/argtextobj.vim
deleted file mode 160000
index f3fbe427..00000000
--- a/.vim/pack/kejadlen/start/argtextobj.vim
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f3fbe427f7b4ec436416a5816d714dc917dc530b
diff --git a/.vim/pack/kejadlen/start/camelcasemotion/.VimballRecord b/.vim/pack/kejadlen/start/camelcasemotion/.VimballRecord
deleted file mode 100644
index bed3bef8..00000000
--- a/.vim/pack/kejadlen/start/camelcasemotion/.VimballRecord
+++ /dev/null
@@ -1 +0,0 @@
-camelcasemotion.vba: call delete('/Users/alpha/.vim/bundle/camelcasemotion//autoload/camelcasemotion.vim')|call delete('/Users/alpha/.vim/bundle/camelcasemotion//plugin/camelcasemotion.vim')|call delete('/Users/alpha/.vim/bundle/camelcasemotion//doc/camelcasemotion.txt')
diff --git a/.vim/pack/kejadlen/start/camelcasemotion/autoload/camelcasemotion.vim b/.vim/pack/kejadlen/start/camelcasemotion/autoload/camelcasemotion.vim
deleted file mode 100644
index 41e26c9f..00000000
--- a/.vim/pack/kejadlen/start/camelcasemotion/autoload/camelcasemotion.vim
+++ /dev/null
@@ -1,173 +0,0 @@
-" camelcasemotion.vim: Motion through CamelCaseWords and underscore_notation. 
-"
-" DEPENDENCIES:
-"   - Requires Vim 7.0 or higher. 
-"
-" Copyright: (C) 2007-2009 by Ingo Karkat
-"   The VIM LICENSE applies to this script; see ':help copyright'. 
-"
-" Maintainer:	Ingo Karkat <ingo@karkat.de>
-" REVISION	DATE		REMARKS 
-"   1.50.001	05-May-2009	Do not create mappings for select mode;
-"				according to|Select-mode|, printable character
-"				commands should delete the selection and insert
-"				the typed characters. 
-"				Moved functions from plugin to separate autoload
-"				script. 
-"   				file creation
-
-"- functions ------------------------------------------------------------------"
-function! s:Move( direction, count, mode )
-    " Note: There is no inversion of the regular expression character class
-    " 'keyword character' (\k). We need an inversion "non-keyword" defined as
-    " "any non-whitespace character that is not a keyword character" (e.g.
-    " [!@#$%^&*()]). This can be specified via a non-whitespace character in
-    " whose place no keyword character matches (\k\@!\S). 
-
-    "echo "count is " . a:count
-    let l:i = 0
-    while l:i < a:count
-	if a:direction == 'e'
-	    " "Forward to end" motion. 
-	    "call search( '\>\|\(\a\|\d\)\+\ze_', 'We' )
-	    " end of ...
-	    " number | ACRONYM followed by CamelCase or number | CamelCase | underscore_notation | non-keyword | word
-	    call search( '\d\+\|\u\+\ze\%(\u\l\|\d\)\|\u\l\+\|\%(\a\|\d\)\+\ze_\|\%(\k\@!\S\)\+\|\%(_\@!\k\)\+\>', 'We' )
-	    " Note: word must be defined as '\k\>'; '\>' on its own somehow
-	    " dominates over the previous branch. Plus, \k must exclude the
-	    " underscore, or a trailing one will be incorrectly moved over:
-	    " '\%(_\@!\k\)'. 
-	    if a:mode == 'o'
-		" Note: Special additional treatment for operator-pending mode
-		" "forward to end" motion. 
-		" The difference between normal mode, operator-pending and visual
-		" mode is that in the latter two, the motion must go _past_ the
-		" final "word" character, so that all characters of the "word" are
-		" selected. This is done by appending a 'l' motion after the
-		" search for the next "word". 
-		"
-		" In operator-pending mode, the 'l' motion only works properly
-		" at the end of the line (i.e. when the moved-over "word" is at
-		" the end of the line) when the 'l' motion is allowed to move
-		" over to the next line. Thus, the 'l' motion is added
-		" temporarily to the global 'whichwrap' setting. 
-		" Without this, the motion would leave out the last character in
-		" the line. I've also experimented with temporarily setting
-		" "set virtualedit=onemore" , but that didn't work. 
-		let l:save_ww = &whichwrap
-		set whichwrap+=l
-		normal! l
-		let &whichwrap = l:save_ww
-	    endif
-	else
-	    " Forward (a:direction == '') and backward (a:direction == 'b')
-	    " motion. 
-
-	    let l:direction = (a:direction == 'w' ? '' : a:direction)
-
-	    " CamelCase: Jump to beginning of either (start of word, Word, WORD,
-	    " 123). 
-	    " Underscore_notation: Jump to the beginning of an underscore-separated
-	    " word or number. 
-	    "call search( '\<\|\u', 'W' . l:direction )
-	    "call search( '\<\|\u\(\l\+\|\u\+\ze\u\)\|\d\+', 'W' . l:direction )
-	    "call search( '\<\|\u\(\l\+\|\u\+\ze\u\)\|\d\+\|_\zs\(\a\|\d\)\+', 'W' . l:direction )
-	    " beginning of ...
-	    " word | empty line | non-keyword after whitespaces | non-whitespace after word | number | ACRONYM followed by CamelCase or number | CamelCase | underscore followed by ACRONYM, Camel, lowercase or number
-	    call search( '\<\D\|^$\|\%(^\|\s\)\+\zs\k\@!\S\|\>\S\|\d\+\|\u\+\ze\%(\u\l\|\d\)\|\u\l\+\|_\zs\%(\u\+\|\u\l\+\|\l\+\|\d\+\)', 'W' . l:direction )
-	    " Note: word must be defined as '\<\D' to avoid that a word like
-	    " 1234Test is moved over as [1][2]34[T]est instead of [1]234[T]est
-	    " because \< matches with zero width, and \d\+ will then start
-	    " matching '234'. To fix that, we make \d\+ be solely responsible
-	    " for numbers by taken this away from \< via \<\D. (An alternative
-	    " would be to replace \d\+ with \D\%#\zs\d\+, but that one is more
-	    " complex.) All other branches are not affected, because they match
-	    " multiple characters and not the same character multiple times. 
-	endif
-	let l:i = l:i + 1
-    endwhile
-endfunction
-
-function! camelcasemotion#Motion( direction, count, mode )
-"*******************************************************************************
-"* PURPOSE:
-"   Perform the motion over CamelCaseWords or underscore_notation. 
-"* ASSUMPTIONS / PRECONDITIONS:
-"   none
-"* EFFECTS / POSTCONDITIONS:
-"   Move cursor / change selection. 
-"* INPUTS:
-"   a:direction	one of 'w', 'b', 'e'
-"   a:count	number of "words" to move over
-"   a:mode	one of 'n', 'o', 'v', 'iv' (latter one is a special visual mode
-"		when inside the inner "word" text objects. 
-"* RETURN VALUES: 
-"   none
-"*******************************************************************************
-    " Visual mode needs special preparations and postprocessing; 
-    " normal and operator-pending mode breeze through to s:Move(). 
-
-    if a:mode == 'v'
-	" Visual mode was left when calling this function. Reselecting the current
-	" selection returns to visual mode and allows to call search() and issue
-	" normal mode motions while staying in visual mode. 
-	normal! gv
-    endif
-    if a:mode == 'v' || a:mode == 'iv'
-
-	" Note_1a:
-	if &selection != 'exclusive' && a:direction == 'w'
-	    normal! l
-	endif
-    endif
-
-    call s:Move( a:direction, a:count, a:mode )
-
-    if a:mode == 'v' || a:mode == 'iv'
-	" Note: 'selection' setting. 
-	if &selection == 'exclusive' && a:direction == 'e'
-	    " When set to 'exclusive', the "forward to end" motion (',e') does not
-	    " include the last character of the moved-over "word". To include that, an
-	    " additional 'l' motion is appended to the motion; similar to the
-	    " special treatment in operator-pending mode. 
-	    normal! l
-	elseif &selection != 'exclusive' && a:direction != 'e'
-	    " Note_1b:
-	    " The forward and backward motions move to the beginning of the next "word".
-	    " When 'selection' is set to 'inclusive' or 'old', this is one character too far. 
-	    " The appended 'h' motion undoes this. Because of this backward step,
-	    " though, the forward motion finds the current "word" again, and would
-	    " be stuck on the current "word". An 'l' motion before the CamelCase
-	    " motion (see Note_1a) fixes that. 
-	    normal! h
-	endif
-    endif
-endfunction
-
-function! camelcasemotion#InnerMotion( direction, count )
-    " If the cursor is positioned on the first character of a CamelWord, the
-    " backward motion would move to the previous word, which would result in a
-    " wrong selection. To fix this, first move the cursor to the right, so that
-    " the backward motion definitely will cover the current "word" under the
-    " cursor. 
-    normal! l
-    
-    " Move "word" backwards, enter visual mode, then move "word" forward. This
-    " selects the inner "word" in visual mode; the operator-pending mode takes
-    " this selection as the area covered by the motion. 
-    if a:direction == 'b'
-	" Do not do the selection backwards, because the backwards "word" motion
-	" in visual mode + selection=inclusive has an off-by-one error. 
-	call camelcasemotion#Motion( 'b', a:count, 'n' )
-	normal! v
-	" We decree that 'b' is the opposite of 'e', not 'w'. This makes more
-	" sense at the end of a line and for underscore_notation. 
-	call camelcasemotion#Motion( 'e', a:count, 'iv' )
-    else
-	call camelcasemotion#Motion( 'b', 1, 'n' )
-	normal! v
-	call camelcasemotion#Motion( a:direction, a:count, 'iv' )
-    endif
-endfunction
-
-" vim: set sts=4 sw=4 noexpandtab ff=unix fdm=syntax :
diff --git a/.vim/pack/kejadlen/start/camelcasemotion/doc/camelcasemotion.txt b/.vim/pack/kejadlen/start/camelcasemotion/doc/camelcasemotion.txt
deleted file mode 100644
index 4fdf612b..00000000
--- a/.vim/pack/kejadlen/start/camelcasemotion/doc/camelcasemotion.txt
+++ /dev/null
@@ -1,183 +0,0 @@
-*camelcasemotion.txt*   Motion through CamelCaseWords and underscore_notation. 
-
-		     CAMEL CASE MOTION    by Ingo Karkat
-							 *camelcasemotion.vim*
-description			|camelcasemotion-description|
-usage	    			|camelcasemotion-usage|
-installation   			|camelcasemotion-installation|
-configuration  			|camelcasemotion-configuration|
-known problems			|camelcasemotion-known-problems|
-todo				|camelcasemotion-todo|
-history				|camelcasemotion-history|
-
-==============================================================================
-DESCRIPTION					 *camelcasemotion-description*
-
-Vim provides many built-in motions, e.g. to move to the next word, or end of
-the current word. Most programming languages use either CamelCase
-("anIdentifier") or underscore_notation ("an_identifier") naming conventions
-for identifiers. The best way to navigate inside those identifiers using Vim
-built-in motions is the [count]f{char} motion, i.e. f{uppercase-char} or f_,
-respectively. But we can make this easier: 
-
-This script defines motions|,w|,|,b| and|,e|(similar to |w|,|b|,|e|), which do
-not move word-wise (forward/backward), but Camel-wise; i.e. to word boundaries
-and uppercase letters. The motions also work on underscore notation, where
-words are delimited by underscore ('_') characters. From here on, both
-CamelCase and underscore_notation entities are referred to as "words" (in
-double quotes). Just like with the regular motions, a [count] can be prepended
-to move over multiple "words" at once. Outside of "words" (e.g. in non-keyword
-characters like // or ;), the new motions move just like the regular motions. 
-
-Vim provides a built-in|iw|text object called 'inner word', which works in
-operator-pending and visual mode. Analog to that, this script defines inner
-"word" motions |i,w|,|i,b| and|i,e|, which select the "word" (or multiple
-"words" if a [count] is given) where the cursor is located. 
-
-==============================================================================
-USAGE						       *camelcasemotion-usage*
-								*,w* *,b* *,e*
-Use the new motions|,w|,|,b| and|,e| in normal mode, operator-pending mode
-(cp.|operator|), and visual mode. For example, type 'bc,w' to change 'Camel'
-in 'CamelCase' to something else. 
-
-
-EXAMPLE: motions
-Given the following CamelCase identifiers in a source code fragment:
-    set Script31337PathAndNameWithoutExtension11=%~dpn0 ~
-    set Script31337PathANDNameWITHOUTExtension11=%~dpn0 ~
-and the corresponding identifiers in underscore_notation:
-    set script_31337_path_and_name_without_extension_11=%~dpn0 ~
-    set SCRIPT_31337_PATH_AND_NAME_WITHOUT_EXTENSION_11=%~dpn0 ~
-
-,w moves to ([x] is cursor position): [s]et, [s]cript, [3]1337, [p]ath,
-    [a]nd, [n]ame, [w]ithout, [e]xtension, [1]1, [d]pn0, dpn[0], [s]et
-,b moves to: [d]pn0, [1]1, [e]xtension, [w]ithout, ...
-,e moves to: se[t], scrip[t], 3133[7], pat[h], an[d], nam[e], withou[t],
-    extensio[n], 1[1], dpn[0]
-
-
-EXAMPLE: inner motions
-Given the following identifier, with the cursor positioned at [x]:
-    script_31337_path_and_na[m]e_without_extension_11 ~
-
-v3i,w selects script_31337_path_and_[name_without_extension_]11
-v3i,b selects script_31337_[path_and_name]_without_extension_11
-v3i,e selects script_31337_path_and_[name_without_extension]_11
-Instead of visual mode, you can also use c3i,w to change, d3i,w to delete,
-gU3i,w to upper-case, and so on. 
-
-==============================================================================
-INSTALLATION					*camelcasemotion-installation*
-
-This script is packaged as a|vimball|. If you have the "gunzip" decompressor
-in your PATH, simply edit the *.vba.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 camelcasemotion.vba.gz
-    :so %
-To uninstall, use the|:RmVimball|command. 
-
-DEPENDENCIES					*camelcasemotion-dependencies*
-
-- Requires Vim 7.0 or higher. 
-
-==============================================================================
-CONFIGURATION				       *camelcasemotion-configuration*
-
-If you want to use different mappings, map your keys to the
-<Plug>CamelCaseMotion_? mapping targets _before_ sourcing this script (e.g. in
-your|vimrc|).  
-
-EXAMPLE: Replace the default|w|,|b| and|e| mappings instead of defining
-additional mappings|,w|,|,b| and|,e|: >
-    map <silent> w <Plug>CamelCaseMotion_w
-    map <silent> b <Plug>CamelCaseMotion_b
-    map <silent> e <Plug>CamelCaseMotion_e
-    sunmap w
-    sunmap b
-    sunmap e
-
-EXAMPLE: Replace default|iw|text-object and define|ib|and |ie|motions: >
-    omap <silent> iw <Plug>CamelCaseMotion_iw
-    xmap <silent> iw <Plug>CamelCaseMotion_iw
-    omap <silent> ib <Plug>CamelCaseMotion_ib
-    xmap <silent> ib <Plug>CamelCaseMotion_ib
-    omap <silent> ie <Plug>CamelCaseMotion_ie
-    xmap <silent> ie <Plug>CamelCaseMotion_ie
-
-==============================================================================
-KNOWN PROBLEMS				      *camelcasemotion-known-problems*
-
-- A degenerate CamelCaseWord containing '\U\u\d' (e.g. "MaP1Roblem") confuses
-  the operator-pending and visual mode ,e mapping if 'selection' is not set to
-  "exclusive". It'll skip "P" and select "P1" in one step. As a workaround,
-  use ',w' instead of ',e'; those two mappings have the same effect inside
-  CamelCaseWords, anyway. 
-- The operator-pending and visual mode ,e mapping doesn't work properly when
-  it reaches the end of the buffer; the final character of the moved-over
-  "word" remains. As a workaround, use the default 'e' motion instead of ',e'. 
-- When the Vim setting 'selection' is not set to "exclusive", a
-  forward-backward combination in visual mode (e.g. 'v,w,b') selects one
-  additional character to the left, instead of only the character where the
-  motion started. Likewise, extension of the visual selection from the front
-  end is off by one additional character. 
-
-==============================================================================
-TODO							*camelcasemotion-todo*
-
-==============================================================================
-HISTORY						     *camelcasemotion-history*
-
-1.50	05-May-2009
-- Do not create mappings for select mode; according to|Select-mode|, printable
-  character commands should delete the selection and insert the typed
-  characters. Now using :xmap to only target visual mode. 
-- Moved functions from plugin to separate autoload script. 
-- Split off documentation into separate help file. 
-
-1.40	30-Jun-2008
-BF: Now using :normal! to be independent from any user mappings. Thanks to
-Neil Walker for the patch.
-
-1.40	19-May-2008
-BF: Wrong forward motion stop at the second digit if a word starts with
-multiple numbers (e.g. 1234.56789). Thanks to Wasim Ahmed for reporting this.
-
-1.40	24-Apr-2008
-ENH: Added inner "word" text objects 'i,w' etc. that work analoguous to the
-built-in |iw| text object. Thanks to David Kotchan for this suggestion.
-
-1.30	20-Apr-2008
-The motions now also stop at non-keyword boundaries, just like the regular
-motions. This has no effect inside a CamelCaseWord or inside
-underscore_notation, but it makes the motions behave like the regular motions
-(which is important if you replace the default motions). Thanks to Mun Johl
-for reporting this. 
-
-1.30	09-Apr-2008
-- Allowing users to use mappings different than ,w ,b ,e by defining
-  <Plug>CamelCaseMotion_? target mappings. This can even be used to replace
-  the default 'w', 'b' and 'e' mappings, as suggested by Mun Johl.
-- Now requires VIM 7.0 or higher. 
-
-1.20	29-May-2007
-ENH: The visual mode motions now also (mostly) work with the (default) setting
-'set selection=inclusive', instead of selecting one character too much. 
-
-1.10	28-May-2007
-Incorporated major improvements and simplifications done by Joseph Barker. 
-
-1.00	22-May-2007
-First published version. 
-
-0.01	11-Oct-2005
-Started development based on vimtip #1016 by Anthony Van Ham. 
-
-==============================================================================
-Copyright: (C) 2007-2009 by Ingo Karkat
-The VIM LICENSE applies to this script; see|copyright|. 
-
-Maintainer:	Ingo Karkat <ingo@karkat.de>
-==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
diff --git a/.vim/pack/kejadlen/start/camelcasemotion/doc/tags b/.vim/pack/kejadlen/start/camelcasemotion/doc/tags
deleted file mode 100644
index 5d466c1c..00000000
--- a/.vim/pack/kejadlen/start/camelcasemotion/doc/tags
+++ /dev/null
@@ -1,13 +0,0 @@
-,b	camelcasemotion.txt	/*,b*
-,e	camelcasemotion.txt	/*,e*
-,w	camelcasemotion.txt	/*,w*
-camelcasemotion-configuration	camelcasemotion.txt	/*camelcasemotion-configuration*
-camelcasemotion-dependencies	camelcasemotion.txt	/*camelcasemotion-dependencies*
-camelcasemotion-description	camelcasemotion.txt	/*camelcasemotion-description*
-camelcasemotion-history	camelcasemotion.txt	/*camelcasemotion-history*
-camelcasemotion-installation	camelcasemotion.txt	/*camelcasemotion-installation*
-camelcasemotion-known-problems	camelcasemotion.txt	/*camelcasemotion-known-problems*
-camelcasemotion-todo	camelcasemotion.txt	/*camelcasemotion-todo*
-camelcasemotion-usage	camelcasemotion.txt	/*camelcasemotion-usage*
-camelcasemotion.txt	camelcasemotion.txt	/*camelcasemotion.txt*
-camelcasemotion.vim	camelcasemotion.txt	/*camelcasemotion.vim*
diff --git a/.vim/pack/kejadlen/start/camelcasemotion/plugin/camelcasemotion.vim b/.vim/pack/kejadlen/start/camelcasemotion/plugin/camelcasemotion.vim
deleted file mode 100644
index b996af20..00000000
--- a/.vim/pack/kejadlen/start/camelcasemotion/plugin/camelcasemotion.vim
+++ /dev/null
@@ -1,204 +0,0 @@
-" camelcasemotion.vim: Motion through CamelCaseWords and underscore_notation. 
-"
-" DEPENDENCIES:
-"   - Requires Vim 7.0 or higher. 
-"
-" Copyright: (C) 2007-2009 by Ingo Karkat
-"   The VIM LICENSE applies to this script; see ':help copyright'. 
-"
-" Source: Based on vimtip #1016 by Anthony Van Ham. 
-" Maintainer:	Ingo Karkat <ingo@karkat.de>
-" REVISION	DATE		REMARKS 
-"   1.50.019	05-May-2009	Do not create mappings for select mode;
-"				according to|Select-mode|, printable character
-"				commands should delete the selection and insert
-"				the typed characters. 
-"   				Moved functions from plugin to separate autoload
-"				script. 
-"   				Split off documentation into separate help file. 
-"   				Now cleaning up Create...Mappings functions. 
-"   1.40.018	30-Jun-2008	Minor: Removed unnecessary <script> from
-"				mappings. 
-"   1.40.017	19-May-2008	BF: Now using :normal! to be independent from
-"				any user mappings. Thanks to Neil Walker for the
-"				patch. 
-"   1.40.016	28-Apr-2008	BF: Wrong forward motion stop at the second
-"				digit if a word starts with multiple numbers
-"				(e.g. 1234.56789). Thanks to Wasim Ahmed for
-"				reporting this. 
-"   1.40.015	24-Apr-2008	ENH: Added inner "word" text objects 'i,w' etc.
-"				that work analogous to the built-in 'iw' text
-"				object. Thanks to David Kotchan for this
-"				suggestion. 
-"   1.30.014	20-Apr-2008	The motions now also stop at non-keyword
-"				boundaries, just like the regular motions. This
-"				has no effect inside a CamelCaseWord or inside
-"				underscore_notation, but it makes the motions
-"				behave like the regular motions (which is
-"				important if you replace the default motions). 
-"				Thanks to Mun Johl for reporting this. 
-"				Now using non-capturing parentheses \%() in the
-"				patterns. 
-"   1.30.013	09-Apr-2008	Refactored away s:VisualCamelCaseMotion(). 
-"				Allowing users to use mappings different than
-"				,w ,b ,e by defining <Plug>CamelCaseMotion_?
-"				target mappings. This can even be used to
-"				replace the default 'w', 'b' and 'e' mappings,
-"				as suggested by Mun Johl. 
-"				Mappings are now created in a generic function. 
-"				Now requires Vim 7.0 or higher. 
-"   1.20.012	02-Jun-2007	BF: Corrected motions through mixed
-"				CamelCase_and_UnderScore words by re-ordering
-"				and narrowing the search patterns.  
-"   1.20.011	02-Jun-2007	Thanks again to Joseph Barker for discussing the
-"				complicated visual mode mapping on the vim-dev
-"				mailing list and coming up with a great
-"				simplification:
-"				Removed s:CheckForChangesToTheSelectionSetting().
-"				Introduced s:VisualCamelCaseMotion(), which
-"				handles the differences depending on the
-"				'selection' setting. 
-"				Visual mode mappings now directly map to the
-"				s:VisualCamelCaseMotion() function; no mark is
-"				clobbered, the complex mapping with the inline
-"				expression has been retired. 
-"   1.20.010	29-May-2007	BF: The operator-pending and visual mode ,e
-"				mapping doesn't work properly when it reaches
-"				the end of line; the final character of the
-"				moved-over "word" remains. Fixed this problem
-"				unless the "word" is at the very end of the
-"				buffer. 
-"				ENH: The visual mode motions now also (mostly)
-"				work with the (default) setting
-"				'set selection=inclusive', instead of selecting
-"				one character too much. 
-"				ENH: All mappings will check for changes to the
-"				'selection' setting and remap the visual mode
-"				mappings via function
-"				s:SetupVisualModeMappings(). We cannot rely on
-"				the setting while sourcing camelcasemotion.vim
-"				because the mswin.vim script may be sourced
-"				afterwards, and its 'behave mswin' changes
-"				'selection'. 
-"				Refactored the arguments of function 
-"				s:CamelCaseMotion(...). 
-"   1.10.009	28-May-2007	BF: Degenerate CamelCaseWords that consist of
-"				only a single uppercase letter (e.g. "P" in
-"				"MapPRoblem") are skipped by all motions. Thanks
-"				to Joseph Barker for reporting this. 
-"				BF: In CamelCaseWords that consist of uppercase
-"				letters followed by decimals (e.g.
-"				"MyUPPER123Problem", the uppercase "word" is
-"				skipped by all motions. 
-"   1.10.008	28-May-2007	Incorporated major improvements and
-"				simplifications done by Joseph Barker:
-"				Operator-pending and visual mode motions now
-"				accept [count] of more than 9. 
-"				Visual selections can now be extended from
-"				either end. 
-"				Instead of misusing the :[range], the special
-"				variable v:count1 is used. Custom commands are
-"				not needed anymore. 
-"				Operator-pending and visual mode mappings are
-"				now generic: There's only a single mapping for
-"				,w that can be repeated, rather than having a
-"				separate mapping for 1,w 2,w 3,w ...
-"   1.00.007	22-May-2007	Added documentation for publication. 
-"	006	20-May-2007	BF: visual mode [1,2,3],e on pure CamelCase
-"				mistakenly marks [2,4,6] words. If the cursor is
-"				on a uppercase letter, the search pattern
-"				'\u\l\+' doesn't match at the cursor position,
-"				so another match won. Changed search pattern
-"				from '\l\+', 
-"	005	16-May-2007	Added support for underscore notation. 
-"				Added support for "forward to end of word"
-"				(',e') motion. 
-"	004	16-May-2007	Improved search pattern so that
-"				UppercaseWORDSInBetween and digits are handled,
-"				too. 
-"	003	15-May-2007	Changed mappings from <Leader>w to ,w; 
-"				other \w mappings interfere here, because it's
-"				irritating when the cursor jump doesn't happen
-"				immediately, because Vim waits whether the
-"				mapping is complete. ,w is faster to type that
-"				\w (and, because of the left-right touch,
-"				preferred over gw). 
-"				Added visual mode mappings. 
-"	0.02	15-Feb-2006	BF: missing <SID> for omaps. 
-"	0.01	11-Oct-2005	file creation
-
-" Avoid installing twice or when in compatible mode
-if exists('g:loaded_camelcasemotion') || (v:version < 700)
-    finish
-endif
-let g:loaded_camelcasemotion = 1
-
-"- mappings -------------------------------------------------------------------
-" The count is passed into the function through the special variable 'v:count1',
-" which is easier than misusing the :[range] that :call supports. 
-" <C-U> is used to delete the unused range. 
-" Another option would be to use a custom 'command! -count=1', but that doesn't
-" work with the normal mode mapping: When a count is typed before the mapping,
-" the ':' will convert a count of 3 into ':.,+2MyCommand', but ':3MyCommand'
-" would be required to use -count and <count>. 
-"
-" We do not provide the fourth "backward to end" motion (,E), because it is
-" seldomly used. 
-
-function! s:CreateMotionMappings()
-    " Create mappings according to this template:
-    " (* stands for the mode [nov], ? for the underlying motion [wbe].) 
-    "
-    " *noremap <Plug>CamelCaseMotion_? :<C-U>call camelcasemotion#Motion('?',v:count1,'*')<CR>
-    " if ! hasmapto('<Plug>CamelCaseMotion_?', '*')
-    "	  *map <silent> ,? <Plug>CamelCaseMotion_?
-    " endif
-
-    for l:mode in ['n', 'o', 'v']
-	for l:motion in ['w', 'b', 'e']
-	    let l:targetMapping = '<Plug>CamelCaseMotion_' . l:motion
-	    execute l:mode . 'noremap ' . l:targetMapping . ' :<C-U>call camelcasemotion#Motion(''' . l:motion . ''',v:count1,''' . l:mode . ''')<CR>'
-	    if ! hasmapto(l:targetMapping, l:mode)
-		execute (l:mode ==# 'v' ? 'x' : l:mode) . 'map <silent> ,' . l:motion . ' ' . l:targetMapping 
-	    endif
-	endfor
-    endfor
-endfunction
-
-" To create a text motion, a mapping for operator-pending mode needs to be
-" defined. This mapping should move the cursor according to the implemented
-" motion, or mark the covered text via a visual selection. As inner text motions
-" need to mark both to the left and right of the cursor position, the visual
-" selection needs to be used. 
-"
-" Vim's built-in inner text objects also work in visual mode; they have
-" different behavior depending on whether visual mode has just been entered or
-" whether text has already been selected. 
-" We deviate from that and always override the existing selection. 
-function! s:CreateInnerMotionMappings()
-    " Create mappings according to this template:
-    " (* stands for the mode [ov], ? for the underlying motion [wbe].) 
-    "
-    " *noremap <Plug>CamelCaseMotion_i? :<C-U>call camelcasemotion#InnerMotion('?',v:count1)<CR>
-    " if ! hasmapto('<Plug>CamelCaseInnerMotion_i?', '*')
-    "	  *map <silent> i,? <Plug>CamelCaseInnerMotion_i?
-    " endif
-
-    for l:mode in ['o', 'v']
-	for l:motion in ['w', 'b', 'e']
-	    let l:targetMapping = '<Plug>CamelCaseMotion_i' . l:motion
-	    execute l:mode . 'noremap ' . l:targetMapping . ' :<C-U>call camelcasemotion#InnerMotion(''' . l:motion . ''',v:count1)<CR>'
-	    if ! hasmapto(l:targetMapping, l:mode)
-		execute (l:mode ==# 'v' ? 'x' : l:mode) . 'map <silent> i,' . l:motion . ' ' . l:targetMapping 
-	    endif
-	endfor
-    endfor
-endfunction
-
-call s:CreateMotionMappings()
-call s:CreateInnerMotionMappings()
-
-delfunction s:CreateMotionMappings
-delfunction s:CreateInnerMotionMappings
-
-" vim: set sts=4 sw=4 noexpandtab ff=unix fdm=syntax :
diff --git a/.vim/pack/kejadlen/start/ctrlp b/.vim/pack/kejadlen/start/ctrlp
deleted file mode 160000
index 7fa89fec..00000000
--- a/.vim/pack/kejadlen/start/ctrlp
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7fa89fec125ce60a341f7c37dd769a8a31c49359
diff --git a/.vim/pack/kejadlen/start/elm-vim b/.vim/pack/kejadlen/start/elm-vim
deleted file mode 160000
index b47d013d..00000000
--- a/.vim/pack/kejadlen/start/elm-vim
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b47d013d1fdfecc9e19df8034439b8e379813696
diff --git a/.vim/pack/kejadlen/start/gundo b/.vim/pack/kejadlen/start/gundo
deleted file mode 160000
index b4f3624d..00000000
--- a/.vim/pack/kejadlen/start/gundo
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b4f3624d01ffdfd7bdcd2e19128fffe768fe6262
diff --git a/.vim/pack/kejadlen/start/swift b/.vim/pack/kejadlen/start/swift
deleted file mode 120000
index 6d2e6f42..00000000
--- a/.vim/pack/kejadlen/start/swift
+++ /dev/null
@@ -1 +0,0 @@
-../../src/swift/utils/vim
\ No newline at end of file
diff --git a/.vim/pack/kejadlen/start/tabular b/.vim/pack/kejadlen/start/tabular
deleted file mode 160000
index 00e1e7fc..00000000
--- a/.vim/pack/kejadlen/start/tabular
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 00e1e7fcdbc6d753e0bc8043e0d2546fa81bf367
diff --git a/.vim/pack/kejadlen/start/vim-coffee-script b/.vim/pack/kejadlen/start/vim-coffee-script
deleted file mode 160000
index aace5c23..00000000
--- a/.vim/pack/kejadlen/start/vim-coffee-script
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit aace5c23d812a205c93e87ff79df72d9366928df
diff --git a/.vim/pack/kejadlen/start/vim-endwise b/.vim/pack/kejadlen/start/vim-endwise
deleted file mode 160000
index 0ed0e734..00000000
--- a/.vim/pack/kejadlen/start/vim-endwise
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0ed0e734cd58873f842ff581d5c746463788bd4a
diff --git a/.vim/pack/kejadlen/start/vim-fugitive b/.vim/pack/kejadlen/start/vim-fugitive
deleted file mode 160000
index 87c1bda4..00000000
--- a/.vim/pack/kejadlen/start/vim-fugitive
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 87c1bda4d5573185a1f79c42a919c4b62bc34c42
diff --git a/.vim/pack/kejadlen/start/vim-indent-object b/.vim/pack/kejadlen/start/vim-indent-object
deleted file mode 160000
index 1d3e4aac..00000000
--- a/.vim/pack/kejadlen/start/vim-indent-object
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 1d3e4aac0117d57c3e1aaaa7e5a99f1d7553e01b
diff --git a/.vim/pack/kejadlen/start/vim-projectionist b/.vim/pack/kejadlen/start/vim-projectionist
deleted file mode 160000
index cf4f2f01..00000000
--- a/.vim/pack/kejadlen/start/vim-projectionist
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit cf4f2f013d493ca1bfe612e200ecd77ce51fbd3d
diff --git a/.vim/pack/kejadlen/start/vim-rake b/.vim/pack/kejadlen/start/vim-rake
deleted file mode 160000
index 82ad4554..00000000
--- a/.vim/pack/kejadlen/start/vim-rake
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 82ad45543f0d13dfa7d3f59ca4cd54d0e145417f
diff --git a/.vim/pack/kejadlen/start/vim-rsi b/.vim/pack/kejadlen/start/vim-rsi
deleted file mode 160000
index b689ee42..00000000
--- a/.vim/pack/kejadlen/start/vim-rsi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b689ee4276d82feb21b21661a6500755ff6b2fde
diff --git a/.vim/pack/kejadlen/start/vim-ruby b/.vim/pack/kejadlen/start/vim-ruby
deleted file mode 160000
index 4a03334b..00000000
--- a/.vim/pack/kejadlen/start/vim-ruby
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 4a03334baf5be506c01eb441dc0a166cee61c057
diff --git a/.vim/pack/kejadlen/start/vim-startify b/.vim/pack/kejadlen/start/vim-startify
deleted file mode 160000
index 2e89a6ec..00000000
--- a/.vim/pack/kejadlen/start/vim-startify
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2e89a6ec2b34d55bf3b85a3df863da5156bce2d5
diff --git a/.vim/pack/kejadlen/start/vim-textobj-line b/.vim/pack/kejadlen/start/vim-textobj-line
deleted file mode 160000
index 0a78169a..00000000
--- a/.vim/pack/kejadlen/start/vim-textobj-line
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0a78169a33c7ea7718b9fa0fad63c11c04727291
diff --git a/.vimrc b/.vimrc
index baa49551..ebb33032 100644
--- a/.vimrc
+++ b/.vimrc
@@ -1,12 +1,7 @@
-set nocompatible
-
-if filereadable(glob("~/.vimrc.before"))
-  source ~/.vimrc.before
-endif
-
-""" mappings
+""" Mappings
 
 let mapleader="\<Space>"
+
 noremap <up> <nop>
 noremap <down> <nop>
 noremap <left> <nop>
@@ -14,96 +9,35 @@ noremap <right> <nop>
 
 nnoremap ' `
 nnoremap ` '
-" nnoremap \ ,
 nnoremap Y y$
-nnoremap <leader>/ :noh<cr>
-" nnoremap gt :exec tabpagenr('$') == 1 ? 'bn' : 'tabnext'<cr>
-" nnoremap gT :exec tabpagenr('$') == 1 ? 'bp' : 'tabprevious'<cr>
-" nnoremap <C-n> :exec tabpagenr('$') == 1 ? 'bn' : 'tabnext'<cr>
-" nnoremap <C-p> :exec tabpagenr('$') == 1 ? 'bp' : 'tabprevious'<cr>
-cnoremap w!! w !sudo tee % > /dev/null
-" inoremap <bs> <nop>
-inoremap <esc> <nop>
-inoremap <C-c> <esc>
-inoremap <C-[> <esc>
-" inoremap jk <esc>
-command W w
-nnoremap <C-h> <C-w><C-h>
-nnoremap <C-j> <C-w><C-j>
-nnoremap <C-k> <C-w><C-k>
-nnoremap <C-l> <C-w><C-l>
+nnoremap <leader>/ :nohlsearch<cr>
 
 " don't unindent lines starting with #
 inoremap # X#
 
-" don't change the cursor position when joining lines
-" nnoremap J mzJ`z
+""" Commands
 
-""" buffers
+set undolevels=1000
+set wildmode=list:longest,full
 
-set hidden
+""" Display
 
-" programming
-syntax enable
-set number
-set ttyfast
-set lazyredraw
-set modelines=1
-
-" has to go after syntax enable
 let g:solarized_termcolors=256
-set background=dark
 colorscheme solarized
+set background=dark
 highlight Normal ctermbg=235
-highlight rubyDefine ctermbg=235
-set noshowmode
-
-" has to go after solarized
-highlight LongLine term=reverse cterm=reverse ctermfg=1 guifg=Black guibg=Yellow
-match LongLine /\%101v./
-
-" searching
-set gdefault
-set hlsearch
-set ignorecase
-set smartcase
-
-" incsearch.vim
-augroup incsearch-keymap
-    autocmd!
-    autocmd VimEnter * call s:incsearch_keymap()
-augroup END
-function! s:incsearch_keymap()
-    IncSearchNoreMap <C-f> <Right>
-    IncSearchNoreMap <C-b> <Left>
-endfunction
-let g:incsearch#auto_nohlsearch = 1
-let g:incsearch#consistent_n_direction = 1
-let g:incsearch#magic = '\v'
-let g:incsearch#emacs_like_keymap = 1
-map /  <Plug>(incsearch-forward)
-map ?  <Plug>(incsearch-backward)
-map g/ <Plug>(incsearch-stay)
-map n  <Plug>(incsearch-nohl-n)
-map N  <Plug>(incsearch-nohl-N)
-map *  <Plug>(incsearch-nohl-*)
-map #  <Plug>(incsearch-nohl-#)
-map g* <Plug>(incsearch-nohl-g*)
-map g# <Plug>(incsearch-nohl-g#)
 
-" encoding
-set encoding=utf8
-set fileencoding=utf8
-set fileformat=unix
+" highlight LongLine term=reverse cterm=reverse ctermfg=1 guifg=Black guibg=Yellow
+" match LongLine /\%101v./
 
-" reading
+set foldlevelstart=4
 set linebreak
-set autoread
-" set ttyfast
 set list
-let &listchars = "tab:\u21e5 ,trail:\u2423,extends:\u21c9,precedes:\u21c7,nbsp:\u00b7"
-
-" autogroups
+let &listchars="tab:\u21e5 ,trail:\u2423,extends:\u21c9,precedes:\u21c7,nbsp:\u00b7"
+set number
+" set ttyfast
+set splitbelow
+set splitright
 
 augroup CursorLine
   au!
@@ -111,128 +45,95 @@ augroup CursorLine
   au WinLeave * setlocal nocursorline
 augroup END
 
-if v:version >= 700
-  augroup BufferScrolling
-    au!
-    au BufLeave * if !&diff | let b:winview = winsaveview() | endif
-    au BufEnter * if exists('b:winview') && !&diff | call winrestview(b:winview) | unlet! b:winview | endif
-  augroup END
-endif
-
-" folding
-" set foldmethod=indent
-" set foldlevel=3
-" set nofoldenable
-
-" view
-set viewdir=$HOME/.vim_view//
-" " au BufWinLeave ?* mkview
-" au BufWritePost,BufLeave,WinLeave ?* mkview " for tabs
-" au BufWinEnter ?* silent loadview
+""" Editing
 
-" jump to last cursor position when opening a file
-autocmd BufReadPost *
-\ if line("'\"") > 0 && line("'\"") <= line("$") |
-\   exe "normal g'\"" |
-\ endif
-
-" diffing
-set diffopt=filler,context:5
+set noesckeys
+set virtualedit=block
 
-" command mode
-set undolevels=1000
-set wildmode=list:longest
+function! RestoreCursor()
+  if line("'\"") <= line("$")
+    normal! g`"zz
+    return 1
+  endif
+endfunction
 
-" backup
-set nobackup
-" set backupdir=$HOME/.vim_backup//
-set directory=$HOME/.vim_tmp//
+augroup RestoreCursor
+  autocmd!
+  autocmd BufWinEnter * call RestoreCursor()
+augroup END
 
-" shell
-" set title
-" set titleold=
+""" GUI
 
-" customize syntax highlighting
-" highlight MatchParen ctermbg=
-" highlight MatchParen cterm=bold ctermbg=none ctermfg=none
-" highlight Folded ctermfg=1 ctermbg=NONE
-" highlight FoldColumn ctermfg=1 ctermbg=NONE
-highlight clear Search
-" highlight Search ctermfg=6 ctermbg=9 term=underline cterm=underline gui=underline
+if has("gui_running")
+  set background=light
 
-set wildignore+=*.pyc,*/bower_components/*,*/python2.7/*,*/share/doc/*,*/target/*
+  " causes flickering in the terminal for some reason
+  set macligatures
+end
+set guicursor+=a:blinkon0 " disable blinking
+set guifont=Source\ Code\ Pro\ for\ Powerline:h13
+set guioptions-=T
+set macmeta
+set mousehide
 
-" blessed silence
-set visualbell
-" set t_vb
+""" Persistence
 
-" move into blank spaces in visual block mode
-set virtualedit=block
+set directory=~/.vim_tmp
+set encoding=utf8
+set fileencoding=utf8
+set fileformat=unix
+set nobackup
+set undodir=~/.vim_undo
+set undofile
 
-" splits
-set splitbelow
-set splitright
+""" Search
 
-" http://stackoverflow.com/questions/2158516/delay-before-o-opens-a-new-line
-set noesckeys
+set gdefault
+set hlsearch
+set smartcase
 
-" scratch
-noremap <leader>s :Scratch<cr>
-let g:scratchBackupFile='$HOME/.vim/.scratch'
+""" Plugins
 
-" CtrlP
-let g:ctrlp_map = '<leader>p'
-let g:ctrlp_match_window='bottom,order:btt,min:1,max:20'
-let g:ctrlp_working_path_mode='ra'
-let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
+" incsearch
+let g:incsearch#auto_nohlsearch = 1
+map /  <Plug>(incsearch-forward)
+map ?  <Plug>(incsearch-backward)
+map g/ <Plug>(incsearch-stay)
+map n  <Plug>(incsearch-nohl-n)
+map N  <Plug>(incsearch-nohl-N)
+map *  <Plug>(incsearch-nohl-*)
+map #  <Plug>(incsearch-nohl-#)
+map g* <Plug>(incsearch-nohl-g*)
+map g# <Plug>(incsearch-nohl-g#)
 
 " Powerline
 python from powerline.vim import setup as powerline_setup
 python powerline_setup()
 python del powerline_setup
 
-" vim-projectionist
-nnoremap <leader>a :A<cr>
-
-" rust.vim
-" let g:rustfmt_autosave = 1
-
-" vim-markdown
-let g:markdown_fenced_languages = ['ruby']
-
-" vim-go
-if !empty($GOPATH)
-  packadd vim-go
-endif
-
-" Expand %% into the directory of the current file
-cnoremap <expr> %% getcmdtype() == ':' ? expand('%:h').'/' : '%%'  
-
 " ripgrep
 if executable('rg')
   set grepprg=rg\ --no-heading\ --vimgrep
   set grepformat=%f:%l:%c:%m
 endif
 
-" vim-dispatch
-nnoremap <leader>d :Dispatch<CR>
-
-" vim-startify
-let g:startify_custom_header = []
-
-if has("gui_running")
-  set background=light
-  set guicursor+=a:blinkon0 " disable blinking
-  set guifont=Source\ Code\ Pro\ for\ Powerline:h13
-  set guioptions-=T
-  set macligatures
-  set macmeta
-  set mousehide
-end
-
-set undofile
-set undodir=$HOME/.vim_undo//
+""" Selecta
+
+" Run a given vim command on the results of fuzzy selecting from a given shell
+" command. See usage below.
+function! SelectaCommand(choice_command, selecta_args, vim_command)
+  try
+    let selection = system(a:choice_command . " | selecta " . a:selecta_args)
+  catch /Vim:Interrupt/
+    " Swallow the ^C so that the redraw below happens; otherwise there will be
+    " leftovers from selecta on the screen
+    redraw!
+    return
+  endtry
+  redraw!
+  exec a:vim_command . " " . selection
+endfunction
 
-if filereadable(glob("~/.vimrc.local"))
-  source ~/.vimrc.local
-endif
+" Find all files in all non-dot directories starting in the working directory.
+" Fuzzy select one of those. Open the selected file with :e.
+nnoremap <leader>f :call SelectaCommand("find * -type f", "", ":e")<cr>
diff --git a/src/swift b/src/swift
deleted file mode 160000
index cca7dcab..00000000
--- a/src/swift
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit cca7dcab524ea90e85dc3cfae985b3bbb01a5e11