-set runtimepath+=$XDG_DATA_HOME/vim/vundle
-call vundle#rc('$XDG_DATA_HOME/vim')
-
-Plugin 'gmarik/vundle'
-
-Plugin 'bling/vim-airline'
-Plugin 'elzr/vim-json'
-Plugin 'rking/ag.vim'
-Plugin 'http://git.code.sf.net/p/vim-latex/vim-latex'
-Plugin 'kien/ctrlp.vim'
-Plugin 'kshenoy/vim-signature'
-Plugin 'majutsushi/tagbar'
-Plugin 'scrooloose/nerdtree'
-Plugin 'scrooloose/syntastic'
-Plugin 'sjl/gundo.vim'
-Plugin 'tomtom/tcomment_vim'
-Plugin 'tpope/vim-endwise'
-Plugin 'tpope/vim-fugitive'
-Plugin 'tpope/vim-repeat'
-Plugin 'tpope/vim-surround'
-Plugin 'tpope/vim-unimpaired'
-Plugin 'valloric/youcompleteme'
-
-Plugin 'ompugao/ros.vim'
-Plugin 'ompugao/ctrlp-ros'
-
-Plugin 'firef0x/pkgbuild.vim'
-Plugin 'derekwyatt/vim-fswitch'
-" seems to have problems right now... may be add later?
-" Plugin 'jalcine/cmake.vim'
-" Plugin 'powerman/vim-plugin-viewdoc'
-
-Plugin 'airblade/vim-gitgutter'
-Plugin 'raimondi/delimitmate'
-Plugin 'sirver/ultisnips'
-Plugin 'lokaltog/vim-easymotion'
-Plugin 'junegunn/vim-easy-align'
-Plugin 'chrisbra/checkattach'
-
-" remove entries first
-set runtimepath -=$HOME/.vim
-set runtimepath -=$HOME/.vim/after
-set runtimepath -=$XDG_CONFIG_HOME/vim
-set runtimepath -=$XDG_CONFIG_HOME/vim/after
-" then prepend and append them
-set runtimepath ^=$XDG_CONFIG_HOME/vim
-set runtimepath +=$XDG_CONFIG_HOME/vim/after
+call plug#begin('$XDG_DATA_HOME/vim')
+" This does not update vim-plug, use PlugUpgrade instead
+Plug 'junegunn/vim-plug'
+
+Plug 'airblade/vim-gitgutter' " {{{
+" prefer other signs such as ycm diags
+let g:gitgutter_sign_priority = 1
+" don't clobber other signs
+let g:gitgutter_sign_allow_clobber = 0
+"}}}
+Plug 'alepez/vim-gtest'
+Plug 'alx741/vinfo'
+Plug 'andrewradev/switch.vim'
+Plug 'bling/vim-airline'
+Plug 'chrisbra/checkattach'
+Plug 'derekwyatt/vim-fswitch'
+Plug 'elzr/vim-json'
+Plug 'firef0x/pkgbuild.vim'
+Plug 'junegunn/vim-easy-align'
+Plug 'justinmk/vim-sneak'
+Plug 'klen/python-mode'
+Plug 'kshenoy/vim-signature'
+Plug 'majutsushi/tagbar'
+Plug 'octol/vim-cpp-enhanced-highlight'
+Plug 'raimondi/delimitmate'
+Plug 'sgeb/vim-diff-fold'
+Plug 'shougo/unite.vim'
+Plug 'shougo/vimproc.vim', {'do': 'make'}
+Plug 'sjl/gundo.vim'
+Plug 'thinca/vim-qfreplace'
+Plug 'tomtom/tcomment_vim'
+Plug 'tpope/vim-abolish'
+Plug 'tpope/vim-endwise'
+Plug 'tpope/vim-eunuch'
+Plug 'tpope/vim-fugitive'
+Plug 'tpope/vim-repeat'
+Plug 'tpope/vim-scriptease'
+Plug 'tpope/vim-speeddating'
+Plug 'tpope/vim-surround' "investigate vim-sandwich
+Plug 'tpope/vim-unimpaired'
+Plug 'tweekmonster/spellrotate.vim'
+Plug 'valloric/youcompleteme', { 'do': './install.py --clangd-completer --clang-completer' }
+Plug 'vim-scripts/mediawiki.vim'
+Plug 'vim-scripts/replacewithregister'
+Plug 'vim-scripts/yankring.vim'
+Plug 'wincent/loupe'
+
+" colorschemes
+Plug 'morhetz/gruvbox' " {{{2
+let g:gruvbox_contrast_dark = 'hard'
+let g:gruvbox_contrast_light = 'soft'
+
+Plug 'arcticicestudio/nord-vim' " {{{2
+let g:nord_bold = 1
+let g:nord_italic = 1
+let g:nord_italic_comments = 1
+let g:nord_underline = 1
+let g:nord_uniform_status_lines = 0
+let g:nord_uniform_diff_background = 0
+let g:nord_cursor_line_number_background = 0
+let g:nord_bold_vertical_split_line = 0
+
+"}}}
+
+" snippets
+Plug 'sirver/ultisnips'
+Plug 'honza/vim-snippets'
+
+" text objects
+Plug 'kana/vim-textobj-user'
+Plug 'julian/vim-textobj-variable-segment'
+Plug 'sgur/vim-textobj-parameter'
+Plug 'kana/vim-operator-user'
+
+" staging
+" Check LucHermites plugins: https://github.com/LucHermitte/lh-cpp
+Plug 'dense-analysis/ale' " {{{2
+let g:ale_echo_msg_format = '[%linter%] %code: %%s'
+
+Plug 'git@github.com:/ram-z/vim-orgmode', { 'branch': 'dev' } " {{{2
+Plug 'vim-scripts/syntaxrange'
+
+let g:org_agenda_files = ['~/org/*.org']
+
+Plug 'neovimhaskell/haskell-vim' " {{{2
+let g:haskell_enable_quantification = 1 " to enable highlighting of `forall`
+let g:haskell_enable_recursivedo = 1 " to enable highlighting of `mdo` and `rec`
+let g:haskell_enable_arrowsyntax = 1 " to enable highlighting of `proc`
+let g:haskell_enable_pattern_synonyms = 1 " to enable highlighting of `pattern`
+let g:haskell_enable_typeroles = 1 " to enable highlighting of type roles
+let g:haskell_enable_static_pointers = 1 " to enable highlighting of `static`
+let g:haskell_backpack = 1 " to enable highlighting of backpack keywords
+" }}}
+
+Plug 'aklt/plantuml-syntax'
+
+Plug 'mtth/scratch.vim' " {{{2
+ let g:scratch_no_mappings = 1
+"}}}
+
+Plug 'vim-utils/vim-man' " {{{2
+let g:man_width = 80
+"}}}
+
+call plug#end()