dotfiles/nvim/.config/nvim/init.vim
2018-06-27 20:04:37 +02:00

130 lines
3.7 KiB
VimL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

call plug#begin('~/.dotfiles/nvim/.config/nvim/plugged')
Plug 'Raimondi/delimitMate'
Plug 'morhetz/gruvbox'
Plug 'scrooloose/nerdtree'
Plug 'godlygeek/tabular'
Plug 'tomtom/tcomment_vim'
Plug 'bling/vim-airline'
Plug 'tommcdo/vim-exchange'
Plug 'tpope/vim-surround'
Plug 'christoomey/vim-tmux-navigator'
"Plug 'MarcWeber/vim-addon-mw-utils'
"Plug 'tomtom/tlib_vim'
"Plug 'SirVer/ultisnips'
"Plug 'honza/vim-snippets'
Plug 'tpope/vim-dispatch'
"Plug 'tpope/vim-unimpaired'
Plug 'milkypostman/vim-togglelist'
Plug 'moll/vim-bbye'
"Plug 'tpope/vim-fugative'
Plug 'junegunn/fzf', {'do': './install --bin'}
"Plug 'Valloric/YouCompleteMe', {'do': './install.py --clang-completer --go-completer --rust-completer --js-completer --java-completer'}
Plug 'Valloric/YouCompleteMe', {'do': './install.py --clang-completer'}
Plug 'digitaltoad/vim-pug'
Plug 'tikhomirov/vim-glsl'
Plug 'rust-lang/rust.vim'
call plug#end()
" Setup custom syntax
au BufRead,BufNewFile *.lang setfiletype lang
" Load vim config in current directory
silent! so .vimlocal
" Theme
colorscheme gruvbox
set t_Co=256
set t_ZH=
set t_ZR=
set background=dark
set list lcs=tab:\|\
" Powerline
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline_theme='gruvbox'
" Preferences
syntax on
filetype plugin indent on
set smartindent
set number
set laststatus=2
set softtabstop=4
set tabstop=4
set shiftwidth=4
set noexpandtab
set mouse=a
" DelimitMate
let delimitMate_expand_cr = 1
" Keybindings
map <silent> <F2> :NERDTreeToggle<cr>
map <silent> <M-h> :TmuxNavigateLeft<cr>
map <silent> <M-j> :TmuxNavigateDown<cr>
map <silent> <M-k> :TmuxNavigateUp<cr>
map <silent> <M-l> :TmuxNavigateRight<cr>
map <silent> <tab> :bn<cr>
map <silent> <S-tab> :bp<cr>
map <silent> <S-j> 10j
map <silent> <S-k> 10k
map <silent> <C-b> :Bdelete<cr>
map <silent> <F4> :call ToggleQuickfixList()<cr>
" Fold in functions
fu! CustomFoldText()
"get first non-blank line
let fs = v:foldstart
while getline(fs) =~ '^\s*$' | let fs = nextnonblank(fs + 1)
endwhile
if fs > v:foldend
let line = getline(v:foldstart)
else
let line = substitute(getline(fs), '\t', repeat(' ', &tabstop), 'g')
endif
let w = winwidth(0) - &foldcolumn - (&number ? 8 : 0)
let foldSize = 1 + v:foldend - v:foldstart
let foldSizeStr = " " . foldSize . " lines "
let foldLevelStr = repeat("+--", v:foldlevel)
let lineCount = line("$")
let foldPercentage = printf("[%.1f", (foldSize*1.0)/lineCount*100) . "%] "
let expansionString = repeat(".", w - strwidth(foldSizeStr.line.foldLevelStr.foldPercentage))
return line . expansionString . foldSizeStr . foldPercentage . foldLevelStr
endf
set foldtext=CustomFoldText()
set foldcolumn=1
au BufRead *.cpp,*.go,*.js setlocal foldmethod=syntax
au BufRead *.cpp,*.go,*.js setlocal foldnestmax=1
" Use fzf and silver searcher to search files (REQUIRES: the_silver_searcher)
map <silent> <C-p> :call fzf#run(fzf#wrap('custom', {'source': 'ag -g ""'}, 0))<cr>
let g:fzf_layout = {'down': '~20%'}
let g:fzf_colors =
\ { 'fg': ['fg', 'Normal'],
\ 'bg': ['bg', 'Normal'],
\ 'hl': ['fg', 'Comment'],
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
\ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
\ 'hl+': ['fg', 'Statement'],
\ 'info': ['fg', 'PreProc'],
\ 'border': ['fg', 'Ignore'],
\ 'prompt': ['fg', 'Conditional'],
\ 'pointer': ['fg', 'Exception'],
\ 'marker': ['fg', 'Keyword'],
\ 'spinner': ['fg', 'Label'],
\ 'header': ['fg', 'Comment'] }
" YouCompleteMe
set completeopt=menuone,menu
let g:ycm_confirm_extra_conf = 0
let g:ycm_error_symbol = ''
let g:ycm_warning_symbol = ''
" Ultisnip
let g:UltiSnipsExpandTrigger='<C-s>'