" ----------------------------------------------------------------------------- " - Prepare locations for main vim files - " ----------------------------------------------------------------------------- if has('win32') || has ('win64') let $VIMHOME = $HOME."/vimfiles" else let $VIMHOME = $HOME."/.vim" let $NVIMHOME = $HOME."/.local/share/nvim" endif let $VIMPLUGINS = expand($VIMHOME."/plugins.vim") let $LOCAL_VIMRC = $HOME."/.vimrc.local" " ----------------------------------------------------------------------------- " - Load up plugins - " ----------------------------------------------------------------------------- " Use local vimrc for overrides if available and desired if filereadable($LOCAL_VIMRC) source $LOCAL_VIMRC endif source $VIMPLUGINS " ----------------------------------------------------------------------------- " - Indentation - " ----------------------------------------------------------------------------- " show existing tab with 2 spaces width set tabstop=2 " when indenting with '>', use 2 spaces width set shiftwidth=2 " always set autoindenting on set autoindent " ----------------------------------------------------------------------------- " - Better commits - " ----------------------------------------------------------------------------- syntax on set spell spelllang=en_us set encoding=utf-8 " ----------------------------------------------------------------------------- " - Style - " ----------------------------------------------------------------------------- set number set relativenumber " This has been killing vim until it was resized " set lines=50 columns=100 colorscheme gruvbox set background=dark set guifont=SauceCodePro\ Nerd\ Font:h12 " ----------------------------------------------------------------------------- " - Miscellaneous - " ----------------------------------------------------------------------------- " allow backspacing over everything in insert mode set backspace=indent,eol,start set ttimeoutlen=50 if has("vms") set nobackup " do not keep a backup file, use versions instead else set backup " keep a backup file endif set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set cursorline " highlight the current line set laststatus=2 " Always display the status line set noswapfile set showcmd " display incomplete commands set incsearch " do incremental searching set autoread " Reload files changed outside vim set hidden " Allow leaving unsaved buffers " Trigger autoread when changing buffers or coming back to vim in terminal. if !has('win32') && !has('win64') autocmd FocusGained,BufEnter * :silent! ! endif " In many terminal emulators the mouse works just fine, thus enable it. if has('mouse') set mouse=a endif " Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif " Allow recursive searches set path+=** " Save whenever switching windows or leaving vim. This is useful when running " the tests inside vim without having to save all files first. autocmd FocusLost,WinLeave * :silent! wa " automatically rebalance windows on vim resize autocmd VimResized * :wincmd = " automatically save open .org files autocmd CursorHold *.org :write " Set tags to default tags file generated by gentags script set tags=./tags.gitignored; " ----------------------------------------------------------------------------- " - Common mapping - " ----------------------------------------------------------------------------- let mapleader = " " let maplocalleader = " " " Don't use Ex mode, use Q for formatting map Q gq " CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, " so that you can undo CTRL-U after inserting a line break. inoremap u " Allow :W and :Wq to save too command! Wq :wq command! W :w " Close extra windows noremap c :ccl lcl if &term =~ '256color' " disable Background Color Erase (BCE) so that color schemes " render properly when inside 256-color tmux and GNU screen. set t_ut= endif