diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2c66cd4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+vim/plugged
diff --git a/vim/autoload/pathogen.vim b/vim/autoload/pathogen.vim
deleted file mode 100644
index 2e295da..0000000
--- a/vim/autoload/pathogen.vim
+++ /dev/null
@@ -1,250 +0,0 @@
-" pathogen.vim - path option manipulation
-" Maintainer: Tim Pope
-" Version: 2.0
-
-" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
-"
-" For management of individually installed plugins in ~/.vim/bundle (or
-" ~\vimfiles\bundle), adding `call pathogen#infect()` to your .vimrc
-" prior to `filetype plugin indent on` is the only other setup necessary.
-"
-" The API is documented inline below. For maximum ease of reading,
-" :set foldmethod=marker
-
-if exists("g:loaded_pathogen") || &cp
- finish
-endif
-let g:loaded_pathogen = 1
-
-" Point of entry for basic default usage. Give a directory name to invoke
-" pathogen#runtime_append_all_bundles() (defaults to "bundle"), or a full path
-" to invoke pathogen#runtime_prepend_subdirectories(). Afterwards,
-" pathogen#cycle_filetype() is invoked.
-function! pathogen#infect(...) abort " {{{1
- let source_path = a:0 ? a:1 : 'bundle'
- if source_path =~# '[\\/]'
- call pathogen#runtime_prepend_subdirectories(source_path)
- else
- call pathogen#runtime_append_all_bundles(source_path)
- endif
- call pathogen#cycle_filetype()
-endfunction " }}}1
-
-" Split a path into a list.
-function! pathogen#split(path) abort " {{{1
- if type(a:path) == type([]) | return a:path | endif
- let split = split(a:path,'\\\@"),'!isdirectory(v:val)')) && (!filereadable(dir.sep.'doc'.sep.'tags') || filewritable(dir.sep.'doc'.sep.'tags'))
- helptags `=dir.'/doc'`
- endif
- endfor
-endfunction " }}}1
-
-command! -bar Helptags :call pathogen#helptags()
-
-" Like findfile(), but hardcoded to use the runtimepath.
-function! pathogen#runtime_findfile(file,count) "{{{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) " {{{1
- if exists('*fnameescape')
- return fnameescape(a:string)
- elseif a:string ==# '-'
- return '\-'
- else
- return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
- endif
-endfunction " }}}1
-
-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'"
- elseif a:lcd
- let path = file[0:-strlen(a:file)-2]
- execute 'lcd `=path`'
- return a:cmd.' '.pathogen#fnameescape(a:file)
- else
- return a:cmd.' '.pathogen#fnameescape(file)
- 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(,'edit',,0)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(,'edit',,0)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(,'edit',,1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(,'split',,1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(,'vsplit',,1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(,'tabedit',,1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(,'pedit',,1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(,'read',,1)
-
-" vim:set et sw=2:
diff --git a/vimrc b/vimrc
index f3efde6..5fe8c7c 100644
--- a/vimrc
+++ b/vimrc
@@ -1,5 +1,5 @@
" Use pathogen to use search for plug-ins
-call pathogen#infect()
+" call pathogen#infect()
" Basics
set t_Co=256 " Use 256 colors
@@ -8,6 +8,25 @@ set nocompatible " Get out of vi-compatible mode
set background=dark " I am using a dark background
syntax on " Syntax highlighting on
+call plug#begin('~/.vim/plugged')
+
+Plug 'SirVer/ultisnips'
+Plug 'editorconfig/editorconfig-vim'
+Plug 'fatih/vim-go', { 'tag': '*' }
+Plug 'hashivim/vim-hashicorp-tools'
+Plug 'mdempsky/gocode'
+Plug 'prettier/vim-prettier', { 'tag': '*' }
+Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
+Plug 'vim-scripts/CSApprox'
+Plug 'w0rp/ale', { 'tag': '*' }
+Plug 'rust-lang/rust.vim'
+Plug 'pangloss/vim-javascript'
+Plug 'tpope/vim-surround'
+Plug 'Quramy/tsuquyomi'
+Plug 'sheerun/vim-wombat-scheme'
+
+call plug#end()
+
" General
"colorscheme solarized
colorscheme wombat