" Automatically install vim plug let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' if empty(glob(data_dir . '/autoload/plug.vim')) silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif set nocompatible set completeopt=menu,menuone,noselect " Set leader to comma let mapleader="," call plug#begin() " Color Schemes Plug 'rafi/awesome-vim-colorschemes' Plug 'mhartington/oceanic-next' Plug 'morhetz/gruvbox' Plug 'joshdick/onedark.vim' " Navigation Plug 'tpope/vim-commentary' Plug 'tpope/vim-surround' " Commands Plug 'vim-test/vim-test' Plug 'skywind3000/asyncrun.vim' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' " Extra Appearance Features Plug 'airblade/vim-gitgutter' Plug 'tpope/vim-fugitive' Plug 'mhinz/vim-signify' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " File Navigation Plug 'ms-jpq/chadtree', {'branch': 'chad', 'do': 'python3 -m chadtree deps'} " Vista Sidebar Plug 'liuchengxu/vista.vim' " Syntax Highlighting Plug 'sheerun/vim-polyglot' call plug#end() " Set to open tree nnoremap CHADopen " Set to open Vista Sidebar nnoremap ; Vista!! let g:vista#renderer#enable_icon = 1 let g:vista#renderer#icons = { \ "function": "\uf794", \ "variable": "\uf71b", \ } " To enable fzf's preview window set g:vista_fzf_preview. " The elements of g:vista_fzf_preview will be passed as arguments to fzf#vim#with_preview() " For example: let g:vista_fzf_preview = ['right:50%'] map :Files let g:cpp_class_scope_highlight = 1 let g:cpp_member_variable_highlight = 1 let g:cpp_class_decl_highlight = 1 let g:cpp_posix_standard = 1 let g:cpp_experimental_template_highlight = 1 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#buffer_nr_show = 1 let g:airline_powerline_fonts = 1 let g:airline_theme='tomorrow' let g:airline_solarized_bg='dark' let g:airline#extensions#hunks#enabled=1 let g:airline#extensions#branch#enabled=1 " Quick edit init.vim nnoremap v :n $MYVIMRC " For vim-test: these Ctrl mappings work well when Caps Lock is mapped to Ctrl nmap t :TestNearest nmap t :TestFile nmap t :TestSuite nmap t :TestLast nmap t :TestVisit let test#strategy = "asyncrun" " Reloads vimrc after saving but keep cursor position if !exists('*ReloadVimrc') fun! ReloadVimrc() let save_cursor = getcurpos() source $MYVIMRC call setpos('.', save_cursor) endfun endif autocmd! BufWritePost $MYVIMRC call ReloadVimrc() set background=dark " Or if you have Neovim >= 0.1.5 if (has("termguicolors")) set termguicolors endif " Theme syntax enable " Navigate buffers like tabs (gt & gT) nnoremap gb :bnext nnoremap gB :bprevious " TextEdit might fail if hidden is not set. set hidden set number set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab set smarttab " Some servers have issues with backup files, see #649. set nobackup set nowritebackup " Give more space for displaying messages. set cmdheight=2 " Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable " delays and poor user experience. set updatetime=1000 " Don't pass messages to |ins-completion-menu|. set shortmess+=c " Allow mouse input set mouse=a " Always show the signcolumn, otherwise it would shift the text each time " diagnostics appear/become resolved. if has("patch-8.1.1564") " Recently vim can merge signcolumn and number column into one set signcolumn=number else set signcolumn=yes endif " Set termdebug let g:termdebug_wide=1 nnoremap "+p