--- /dev/null
+[submodule "tpope/start/vim-vinegar"]
+ path = pack/tpope/start/vim-vinegar
+ url = https://github.com/tpope/vim-vinegar.git
+[submodule "tpope/start/vim-commentary"]
+ path = pack/tpope/start/vim-commentary
+ url = https://github.com/tpope/vim-commentary.git
+[submodule "tpope/start/vim-repeat"]
+ path = pack/tpope/start/vim-repeat
+ url = https://github.com/tpope/vim-repeat.git
+[submodule "tpope/start/vim-surround"]
+ path = pack/tpope/start/vim-surround
+ url = https://github.com/tpope/vim-surround.git
+[submodule "tpope/start/vim-unimpaired"]
+ path = pack/tpope/start/vim-unimpaired
+ url = https://github.com/tpope/vim-unimpaired.git
+[submodule "tpope/start/vim-fugitive"]
+ path = pack/tpope/start/vim-fugitive
+ url = https://github.com/tpope/vim-fugitive.git
+[submodule "pack/snipmate/opt/vim-snipmate"]
+ path = pack/snipmate/opt/vim-snipmate
+ url = https://github.com/garbas/vim-snipmate.git
+[submodule "pack/snipmate/opt/vim-addon-mw-utils"]
+ path = pack/snipmate/opt/vim-addon-mw-utils
+ url = https://github.com/MarcWeber/vim-addon-mw-utils.git
+[submodule "pack/snipmate/opt/tlib_vim"]
+ path = pack/snipmate/opt/tlib_vim
+ url = https://github.com/tomtom/tlib_vim.git
+[submodule "pack/snipmate/opt/vim-snippets"]
+ path = pack/snipmate/opt/vim-snippets
+ url = https://github.com/honza/vim-snippets.git
+[submodule "pack/github/opt/vim-airline"]
+ path = pack/github/opt/vim-airline
+ url = https://github.com/vim-airline/vim-airline.git
+[submodule "pack/github/opt/tagbar"]
+ path = pack/github/opt/tagbar
+ url = https://github.com/majutsushi/tagbar.git
+[submodule "pack/github/opt/errormarker.vim"]
+ path = pack/async/opt/errormarker.vim
+ url = https://github.com/mh21/errormarker.vim.git
+[submodule "pack/github/opt/asyncrun.vim"]
+ path = pack/async/opt/asyncrun.vim
+ url = https://github.com/skywind3000/asyncrun.vim.git
+[submodule "pack/github/opt/incsearch.vim"]
+ path = pack/github/opt/incsearch.vim
+ url = https://github.com/haya14busa/incsearch.vim.git
+[submodule "pack/github/opt/ale"]
+ path = pack/async/opt/ale
+ url = https://github.com/w0rp/ale.git
+[submodule "pack/markdown/opt/vim-javascript"]
+ path = pack/syntax/opt/vim-javascript
+ url = https://github.com/pangloss/vim-javascript
+[submodule "pack/markdown/opt/vim-pandoc"]
+ path = pack/syntax/opt/vim-pandoc
+ url = https://github.com/vim-pandoc/vim-pandoc.git
+[submodule "pack/markdown/opt/vim-pandoc-syntax"]
+ path = pack/syntax/opt/vim-pandoc-syntax
+ url = https://github.com/vim-pandoc/vim-pandoc-syntax.git
+[submodule "pack/async/opt/completor.vim"]
+ path = pack/async/opt/completor.vim
+ url = https://github.com/maralla/completor.vim.git
+[submodule "pack/async/opt/validator.vim"]
+ path = pack/async/opt/validator.vim
+ url = https://github.com/maralla/validator.vim.git
+[submodule "pack/syntax/opt/vim-syntax-extra"]
+ path = pack/syntax/opt/vim-syntax-extra
+ url = https://github.com/justinmk/vim-syntax-extra.git
+[submodule "pack/github/opt/supertab"]
+ path = pack/github/opt/supertab
+ url = https://github.com/ervandew/supertab.git
+[submodule "pack/github/opt/pick.vim"]
+ path = pack/github/opt/pick.vim
+ url = https://github.com/calleerlandsson/pick.vim.git
+[submodule "pack/github/opt/Tortoise-Typing"]
+ path = pack/github/opt/Tortoise-Typing
+ url = https://github.com/thanthese/Tortoise-Typing.git
+[submodule "pack/async/opt/mesonic"]
+ path = pack/async/opt/mesonic
+ url = https://github.com/igankevich/mesonic.git
--- /dev/null
+" Use :help 'option' to see the documentation for the given option.
+set nocompatible
+filetype plugin indent on
+syntax on
+
+" indentation
+set expandtab
+set shiftwidth=2
+set softtabstop=2
+set autoindent
+set copyindent
+set smarttab
+set linebreak
+set textwidth=0
+set breakindent
+set breakindent showbreak=\ +
+set shiftround
+set formatoptions+=j
+
+" searching
+set incsearch
+set hlsearch
+set ignorecase
+set smartcase
+set showmatch
+set complete-=i
+set virtualedit=block
+if has('unnamedplus')
+ set clipboard=unnamed,unnamedplus
+endif
+
+" display
+set scrolloff=1
+set scrolljump=5
+set sidescrolloff=5
+set display+=lastline
+set lazyredraw
+set number
+set relativenumber
+set title
+set titlestring=%F
+set matchtime=2
+
+" folding
+set foldmethod=syntax
+set foldlevelstart=10
+set foldnestmax=10
+set foldopen+=search
+set foldclose=all
+
+" keyboard
+set backspace=indent,eol,start
+set ttimeoutlen=10
+set winaltkeys=no
+set noerrorbells
+set novisualbell
+set t_vb=
+
+" command/status line
+set showmode
+set showcmd
+set ruler
+set laststatus=2
+set cmdheight=2
+set shortmess=aoOTI
+set wildmenu
+set wildmode=longest:full,full
+set wildignore+=tags,*.pyc,*.jpg,*.png,*.gif,*.zip
+set wildoptions=tagfile
+
+" buffers
+set hidden
+set autoread
+"set autowrite
+"set autowriteall
+
+" temporary files
+silent !mkdir -p ~/.vim/undo
+set nobackup
+set noswapfile
+set undofile
+set undodir=~/.vim/undo
+set viminfo=
+set history=1000
+set tags=.git/tags
+set sessionoptions-=options
+let g:session_directory = "~/.vim/session"
+let g:session_autoload = "no"
+let g:session_autosave = "no"
+let g:session_command_aliases = 1
+
+" system
+set path=.,,**
+set shell=bash
+let g:is_posix = 1
+if has("win32")
+ set shell=cmd
+ set shellcmdflag=/c
+endif
+scriptencoding utf-8
+set encoding=utf-8
+set fileencoding=utf-8
+set fileencodings=utf-8,latin1,unicode
+set fileformat=unix
+set fileformats=unix,dos,mac
+set fileignorecase
+
+" colors
+set t_Co=256
+set background=dark
+highlight linenr ctermfg=grey
+highlight BadWhitespace ctermfg=red
+match BadWhitespace /\s\+$/
+
+" fonts and chars
+set list
+if has('multi_byte') && &encoding ==# 'utf-8'
+ let &listchars = 'tab:Ã\83Â\83Ã\82Â\83Ã\83Â\82Ã\82¢Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82Â\96Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82¸ ,extends:Ã\83Â\83Ã\82Â\83Ã\83Â\82Ã\82¢Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82Â\9dÃ\83Â\83Ã\82Â\82Ã\83Â\82Ã\82¯,precedes:Ã\83Â\83Ã\82Â\83Ã\83Â\82Ã\82¢Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82Â\9dÃ\83Â\83Ã\82Â\82Ã\83Â\82Ã\82®,nbsp:Ã\83Â\83Ã\82Â\83Ã\83Â\82Ã\82Â\82Ã\83Â\83Ã\82Â\82Ã\83Â\82Ã\82±'
+else
+ let &listchars = 'tab:> ,extends:>,precedes:<,nbsp:.'
+endif
+set cursorline
+let &t_ti.="\e[1 q"
+let &t_SI.="\e[5 q"
+let &t_EI.="\e[1 q"
+let &t_te.="\e[0 q"
+
+"Basic Mappings
+let mapleader = "\<space>"
+
+noremap <c-h> <c-w><c-h>
+noremap <c-j> <c-w><c-j>
+noremap <c-k> <c-w><c-k>
+noremap <c-l> <c-w><c-l>
+noremap! <C-a> <Home>
+noremap! <C-e> <End>
+
+" Normal Mode Mappings
+"nnoremap hh <nop>
+"nnoremap jj <nop>
+"nnoremap kk <nop>
+"nnoremap ll <nop>
+nnoremap ; :
+nnoremap : ;
+nnoremap n nzzzv
+nnoremap N Nzzzv
+nnoremap <silent><leader>+ :exe "resize " . (winheight(0) * 3/2)<cr>
+nnoremap <silent><leader>- :exe "resize " . (winheight(0) * 2/3)<cr>
+nnoremap <silent><leader><cr> :noh<cr>
+nnoremap <silent><leader>v :edit $MYVIMRC<cr>
+nnoremap <silent><leader>s :term<cr>
+nnoremap <silent><leader>m :wa<CR>:Make<CR>
+nnoremap <silent><leader>* :grep <cword> \| copen<cr><c-l>
+nnoremap <silent><Leader>t :TagbarToggle<CR>
+"nnoremap <silent><leader>html :-1read ~/.vim/template/html<CR>3jwf>a
+"nnoremap <silent><leader>php :-1read ~/.vim/template/php<CR>2ja
+
+"" Visual Mode Mappings
+vnoremap jk <esc>
+vnoremap <esc> <nop>
+vmap < <gv
+vmap > >gv
+
+" Insert Mode Mappings
+inoremap jk <esc>
+inoremap <esc> <nop>
+inoremap <silent><leader>m <Esc>:wa<CR>:Make<CR>i
+inoremap <C-U> <C-G>u<C-U>
+
+" Command Mode Mappings
+cnoremap <C-p> <Up>
+cnoremap <C-n> <Down>
+
+" Command aliases
+cnoreabbrev w!! w !sudo tee "%"
+
+" Termninal Mappings
+tnoremap <C-h> <C-\><C-n><C-w>h
+tnoremap <C-j> <C-\><C-n><C-w>j
+tnoremap <C-k> <C-\><C-n><C-w>k
+tnoremap <C-l> <C-\><C-n><C-w>l
+
+" Functions
+
+" Netrw
+let g:netrw_liststyle=3
+let g:netrw_banner = 0
+let g:netrw_sort_sequence = '[\/]$,*'
+let g:netrw_list_hide = '\(^\|\s\s\)\zs\.\S\+'
+"let g:netrw_winsize = 25
+"augroup ProjectDrawer
+" autocmd!
+" autocmd VimEnter * :Lexplore
+"augroup END
+
+" grep
+" file:line:coloumn:message
+set grepformat^=%f:%l:%c:%m
+set grepprg=ag\ --vimgrep\ --skip-vcs-ignores\ --path-to-ignore\ ~/.ignore\ --cpp\ --cc
+command! -nargs=1 Ngrep lvimgrep "<args>" $HOME/cloud/Notes/**/*.md
+
+function! s:CmakeInit()
+ let &errorformat="%f(%l) : %t%*\\D%n: %m,%*[^\"]\"%f\"%*\\D%l: %m,%f(%l) : %m,%*[^ ] %f %l: %m,%f:%l:%c:%m,%f(%l):%m,%f|%l| %m"
+ set makeprg=cmake
+endfunction
+command! -bang -nargs=0 -complete=file CmakeInit call s:CmakeInit(<f-args>)
+
+function! s:Doxygen()
+ set errorformat+=%f:%l:\ %m
+ set makeprg=doxygen
+endfunction
+command! -bang -nargs=0 -complete=file Doxygen call s:Doxygen(<f-args>)
+
+function! s:Iar()
+ set errorformat=%f(%l)\ :\ %m
+ set makeprg=vim-iarbuild.cmd
+endfunction
+command! -bang -nargs=0 -complete=file Iar call s:Iar(<f-args>)
+
+" Autocommands
+if has('autocmd')
+ augroup expandtabs
+ autocmd!
+ autocmd FileType c setlocal expandtab softtabstop=2 shiftwidth=2
+ autocmd FileType cpp setlocal expandtab softtabstop=2 shiftwidth=2
+ autocmd FileType make setlocal noexpandtab tabstop=8 shiftwidth=8
+ autocmd FileType python setlocal expandtab softtabstop=4 shiftwidth=4
+ \ formatoptions+=croq colorcolumn=79
+ \ cinwords=if,elif,else,for,while,try,except,finally,def,class,with
+ augroup end
+
+ augroup filetypes
+ autocmd!
+ autocmd bufnewfile,bufread *.md,*.txt set filetype=pandoc
+ autocmd bufnewfile,bufread *.gradle set filetype=groovy
+ autocmd bufnewfile,bufread *.json set filetype=json
+ autocmd bufnewfile,bufread *.yml set filetype=yaml
+ augroup end
+
+ augroup saveall
+ autocmd!
+ autocmd focuslost * wall
+ augroup end
+
+ augroup numbers
+ autocmd!
+ autocmd bufenter,focusgained,insertleave * set relativenumber
+ autocmd bufleave,focuslost,insertenter * set norelativenumber
+ augroup end
+
+ augroup vimrc
+ autocmd!
+ autocmd bufwritepost ~/.vim/gvimrc silent source %
+ autocmd bufwritepost ~/.vim/vimrc silent source %
+ autocmd bufwritepost ~/.vim/vimrc.local silent source %
+ augroup end
+
+ augroup quickfix
+" autocmd QuickFixCmdPost [^l]* nested cwindow
+" autocmd QuickFixCmdPost l* nested lwindow
+ autocmd QuickFixCmdPost * call asyncrun#quickfix_toggle(8, 1)
+ augroup end
+endif
+
+" Airline
+packadd! vim-airline
+
+let g:airline#extensions#tabline#enabled = 1
+let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
+
+" ALE
+"packadd! ale
+"let g:ale_enabled = 1
+"let g:airline#extensions#ale#enabled = 1
+
+" Tagbar
+packadd! tagbar
+
+" Gtags-Cscope
+packadd! gtags-cscope
+set csprg=gtags-cscope
+set cscopetag
+let GtagsCscope_Auto_Map = 1
+let GtagsCscope_Ignore_Case = 1
+let GtagsCscope_Absolute_Path = 1
+let GtagsCscope_Keep_Alive = 1
+let GtagsCscope_Auto_Load = 1
+let GtagsCscope_Quiet = 1
+
+" termdebug
+"packadd! termdebug
+
+" shellmenu
+"packadd! shellmenu
+
+" Async shell commands
+packadd asyncrun.vim
+let g:asyncrun_open = 8
+let g:asyncrun_status = ""
+let g:airline_section_error = airline#section#create_right(['%{g:asyncrun_status}'])
+let g:asyncrun_auto = "make"
+command! -bang -nargs=* -complete=file Make AsyncRun -program=make @ <args>
+command! -bang -nargs=* -complete=file Grep AsyncRun -program=grep @ <args>
+
+" Error markers
+packadd errormarker.vim
+
+" Meson build system
+packadd mesonic
+
+" snipmate
+packadd tlib_vim
+packadd vim-addon-mw-utils
+packadd vim-snipmate
+packadd vim-snippets
+
+" stock vim
+packadd! matchit
+packadd! vim-syntax-extra
+
+" supertab
+packadd supertab
+
+" Jedi (python)
+"packadd jedi-vim
+"let g:polyglot_disabled = ['python']
+"let python_highlight_all = 1
+
+" completor
+"packadd completor.vim
+"let g:completor_clang_binary = '/usr/bin/clang'
+
+" validator
+packadd validator.vim
+let g:completor_clang_tidy_binary = '/usr/bin/run-clang-tidy'
+let g:validator_c_checkers = ['clang-tidy']
+let g:validator_cpp_checkers = ['clang-tidy']
+
+" Pandoc
+packadd vim-pandoc
+packadd vim-pandoc-syntax
+
+" Pick
+packadd pick.vim
+nnoremap <Leader>p :call PickFile()<CR>
+nnoremap <Leader>b :call PickBuffer()<CR>
+nnoremap <Leader>] :call PickTag()<CR>
+let g:pick_height = 10
+
+" javascript
+packadd vim-javascript
+
+packloadall
+silent! helptags ALL
+
+" local settings
+if filereadable(expand('~/.vim/vimrc.local'))
+ source ~/.vim/vimrc.local
+endif
+