+call plug#begin('$XDG_DATA_HOME/vim')
+" This does not update vim-plug, use PlugUpgrade instead
+Plug 'junegunn/vim-plug'
+
+Plug 'airblade/vim-gitgutter'
+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'
+
+" 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'
+let g:ale_c_parse_compile_commands = 1
+let g:ale_cpp_parse_compile_commands = 1
+" don't use loclist as it's being populated by ycm
+" (might want to enable for other filetypes)
+let g:ale_set_loclist = 0
+let g:ale_cpp_gcc_options = ''
+let g:ale_linters_ignore = { 'cpp': ['clangd', 'clangtidy', 'clang'] }
+
+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'
+
+call plug#end()
+
+filetype plugin indent on
+
+" colorscheme {{{1
+syntax on
+set background=dark
+let g:gruvbox_contrast_dark = 'hard'
+let g:gruvbox_contrast_light = 'soft'
+colorscheme gruvbox
+" override the background to be black
+highligh Normal ctermbg=None
+
+" options {{{1
+" moving around, searching and patterns {{{2