diff options
Diffstat (limited to 'nvim/init.vim')
-rw-r--r-- | nvim/init.vim | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/nvim/init.vim b/nvim/init.vim new file mode 100644 index 0000000..096eb4f --- /dev/null +++ b/nvim/init.vim @@ -0,0 +1,175 @@ +""" +" Plugins +" + +call plug#begin(expand('$XDG_CONFIG_HOME/nvim/plugs')) + +Plug 'ctrlpvim/ctrlp.vim' " Fuzzy file/buffer/mru/tag/etc. finder +Plug 'mattn/emmet-vim' " Emmet-like snippet system +Plug 'tommcdo/vim-exchange' " Easy text exchange operator +Plug 'tpope/vim-git' " Vim runtime files +Plug 'tpope/vim-fugitive' " Git wrapper + +" Asynchronous :make using Neovim's job-control +" Upstream: Plug 'benekastah/neomake' +Plug 'kyrias/neomake', { 'branch': 'clang-check' } + +call plug#end() + + + +""" +" Set options +" + +syntax on +filetype plugin indent on +set hidden " Automatically hide buffers instead of requiring bangcommands +set number " always show line numbers +set ignorecase " Ignore case of normal letters +set smartcase " ignore case if search pattern is all lowercase, + " case-sensitive otherwise +set undolevels=1000 +set wildignore=*.swp,*.bak,*.pyc,*.o +set title " change the terminal's title +set visualbell " don't beep +set noerrorbells " don't beep +set backup " use backup files +set undofile " save undo's after file closes +set shortmess+=I " don't show the nag-screen +set showcmd " Show partial command in the last line of the screen +set scrolloff=1 " Minimum number of screen lines under/above the cursor +set linebreak " Don’t wrap lines in the middle of a word +set spelllang=en_us +set backupdir=$XDG_DATA_HOME/nvim/backup " Don't write backups in current dir + +set tabstop=4 +set shiftwidth=4 +set softtabstop=4 +set noexpandtab +set copyindent + +" Show tabs and end-of-line whitespace +set listchars=tab:»·,trail:· +set list + +" List of vim syntaxes to highlight in rST code blocks +let g:rst_syntax_code_list = ['vim', 'c', 'cpp', 'python', 'sh'] + + + +""" +" Mappings +" + +" Toggle spell checking +nmap <silent> <Leader>s :set spell!<CR> + +nmap <silent> <Leader>/ :nohlsearch<CR> + +cmap w!! w !sudo tee % >/dev/null +" Easier window moving +map <C-h> <C-w>h +map <C-j> <C-w>j +map <C-k> <C-w>k +map <C-l> <C-w>l + +vmap <C-j> gj +vmap <C-k> gk +nmap <C-j> gj +nmap <C-k> gk + + + +""" +" CtrlP +" + +let g:ctrlp_extensions = ['tag', 'buffertag', 'dir', 'undo', 'line', + \ 'changes', 'mixed', 'bookmarkdir'] + +nmap <silent> <Leader>pf :CtrlP<CR> +nmap <silent> <Leader>pb :CtrlPBuffer<CR> +nmap <silent> <Leader>pm :CtrlPMRU<CR> +nmap <silent> <Leader>px :CtrlPMixed<CR> + + + +""" +" Statusline +" + +set statusline= +set statusline+=[%n] " Buffer number +set statusline+=%<\ " Where to truncate +set statusline+=%.99f " Relative path to file +set statusline+=\ %y " Filetype flag, [c]; [help] +set statusline+=%w " Preview window flag, [Preview] +set statusline+=%m " Modified flag, [+]; [-] + +" Show a warning if file is read only, [RO] +set statusline+=%#identifier# +set statusline+=%r +set statusline+=%* + +if exists('g:loaded_fugitive') + set statusline+=%{fugitive#statusline()} +endif + +" Show a warning if file format isn’t unix +set statusline+=%#warningmsg# +set statusline+=%{&ff!='unix'?'['.&ff.']':''} +set statusline+=%* + +" Show a warning if file encoding isn’t utf-8 +set statusline+=%#warningmsg# +set statusline+=%{(&fenc!='utf-8'&&&fenc!='')?'['.&fenc.']':''} +set statusline+=%* + + +"" Right side of statusline +set statusline+=%= " Left/right separation point +set statusline+=%-15.((%l,%c-%v)\ %) " Line, column, percentage. (20,0) +set statusline+=%P " Percentage visible + +set laststatus=2 " Always show statusline + + + +""" +" Syntax highlighting +" + +" Colorscheme +colorscheme Darkcustomside + +" Color spaces at end of lines bright red for visibility +highlight ExtraWhitespace ctermbg=red guibg=red +match ExtraWhitespace /\s\+$/ +autocmd BufWinEnter * match ExtraWhitespace /\s\+$/ +autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/ +autocmd InsertLeave * match ExtraWhitespace /\s\+$/ +autocmd BufWinLeave * call clearmatches() + + + +""" +" Indentation +" + +augroup indentation + autocmd! + autocmd FileType yaml setlocal ts=2 sts=2 sw=2 noet +augroup END + + + +""" +" Neomake +" + +" Open the location list when adding entries +let g:neomake_open_list = 2 + +" Run Neomake automatically when saving and entering a file +autocmd! BufWritePost * Neomake |