Massive update to nvim config

This commit is contained in:
Vladan Popovic 2021-06-17 09:49:21 +02:00
parent 6ec966cacf
commit 6b156d7e63
1 changed files with 95 additions and 86 deletions

View File

@ -1,106 +1,85 @@
call plug#begin('~/.local/share/nvim/plugged') call plug#begin('~/.local/share/nvim/plugged')
Plug 'davidhalter/jedi-vim' Plug 'davidhalter/jedi-vim'
Plug 'Shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins'} Plug 'ncm2/float-preview.nvim'
Plug 'zchee/deoplete-jedi'
Plug 'sbdchd/neoformat'
Plug 'dense-analysis/ale' Plug 'dense-analysis/ale'
Plug 'jacoborus/tender.vim' Plug 'jacoborus/tender.vim'
Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'airblade/vim-gitgutter' Plug 'airblade/vim-gitgutter'
Plug 'scrooloose/nerdtree' Plug 'scrooloose/nerdtree'
Plug 'Lokaltog/vim-monotone' Plug 'gleam-lang/gleam.vim'
Plug 'ncm2/float-preview.nvim' Plug 'cespare/vim-toml'
Plug 'rust-lang/rust.vim'
Plug 'vim-scripts/DrawIt'
call plug#end() call plug#end()
" Sane defaults. let g:airline_theme='papercolor'
set mouse= let g:airline#extensions#ale#enabled=1
syntax on
filetype plugin indent on inoremap <expr><tab> pumvisible() ? "\<C-n>" : "\<tab>"
set omnifunc=syntaxcomplete#Complete inoremap <expr><S-Tab> pumvisible() ? "\<C-p>" : "\<S-TAB>"
set completeopt-=preview
let g:jedi#completions_enabled=0
let g:jedi#use_splits_not_buffers="right"
" Preview window is floating
let g:float_preview#docked=0
let g:float_preview#max_width=100
let g:float_preview#max_height=150
let g:float_preview#auto_close=0
set tabstop=4 set tabstop=4
set softtabstop=4 set softtabstop=4
set shiftwidth=4 set shiftwidth=4
set textwidth=79
set expandtab set expandtab
set autoindent set autoindent
set fileformat=unix set fileformat=unix
set number set number
" Hide top preview window, use float_preview instead
set completeopt-=preview
set omnifunc=ale#completion#OmniFunc
" Enable folding on indent " Lint and check types
set foldmethod=indent let b:ale_linters={
set foldlevel=79 \ 'python': ['mypy', 'pyls', 'pylint'],
\ 'ocaml': ['merlin'],
\ 'rust': ['analyzer', 'cargo']
\ }
let b:ale_fixers = {
\ 'rust': 'rustfmt',
\ 'python': 'autopep8',
\ 'ocaml': 'ocamlformat'
\}
" Toggles on different plugins/modes let g:ale_rust_rustfmt_options='--edition 2018'
noremap <F1> :ToggleMouse<CR>
inoremap <F1> <Esc>:ToggleMouse<CR>a
nmap <F3> :set nonumber!<CR>
nmap <F4> :GitGutterBufferToggle<CR>
nmap <F5> :NERDTreeToggle<CR>
set pastetoggle=<F2>
" Enable vimrc files per project let g:ale_fix_on_save=0
set exrc
" Disable unsafe commands in project vimrc
set secure
set wildignorecase " Ignore case in command completion
set laststatus=2 " Always show statusline
" Search settings
set smartcase " If an uppercase letter is the query, be case sensitive
set incsearch " Highlight matches while typing query
set hlsearch " Highlight all search matches
" Highlight matching brackets
set showmatch
set mps+=<:> " Also, match < and >
" COLORS
" Much better with Tomorrow Night Bright color theme set in alacritty
set background=dark
" Monochrome colorscheme config
let g:monotone_color = [120, 100, 70] " Sets theme color to bright green
let g:monotone_secondary_hue_offset = 200 " Offset secondary colors by 200 degrees
let g:monotone_emphasize_comments = 1 " Emphasize comments
highlight Search ctermfg=Black
highlight Comment ctermfg=Grey
highlight SignColumn ctermbg=236
highlight LineNr ctermfg=244
highlight LineNr ctermbg=232
highlight Folded ctermbg=DarkGreen
highlight Folded ctermfg=Black
highlight MatchParen cterm=bold ctermbg=magenta ctermfg=none
" Filetype indents and line lengths
autocmd BufEnter rst,md set textwidth=79
autocmd BufEnter html,yaml,css set softtabstop=2 shiftwidth=2
" Enable alignment
let g:neoformat_basic_format_align=1
" Enable tab to spaces conversion
let g:neoformat_basic_format_retab=1
" Enable trimmming of trailing whitespace
let g:neoformat_basic_format_trim=1
let g:neoformat_try_formatprg=0
" Global ALE config
nmap <leader>e: ALEDetail<CR>
let b:ale_linters=[] " file type linters defined in ftplugin/*.vim
let g:ale_lint_on_save=1 let g:ale_lint_on_save=1
let g:ale_lint_on_enter=0
let g:ale_list_window_size=20 let g:ale_list_window_size=20
" Use .venv as a global default
let g:ale_virtualenv_dir_names=['.venv']
let g:ale_completion_enabled=1 let g:ale_completion_enabled=1
let g:ale_set_signs = 1
let g:ale_sign_error="✗" let g:ale_sign_error="✗"
let g:ale_sign_warning="⚠" let g:ale_sign_warning="⚠"
let g:ale_echo_msg_error_str = 'E'
let g:ale_echo_msg_warning_str = 'W'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
" Enable warnings about trailing whitespace for all files.
let b:ale_warn_about_trailing_whitespace=1 let b:ale_warn_about_trailing_whitespace=1
highlight ALEWarning ctermbg=Yellow ctermfg=None guibg=Yellow gui=None cterm=Underline
highlight ALEError ctermbg=Red ctermfg=Black cterm=underline nmap <leader>e :ALEDetail<CR>
noremap <leader>d :ALEGoToDefinition<CR>
noremap <leader>r :ALEFindReferences<CR>
noremap g] :ALEGoToDefinition<CR>
noremap <leader>h :ALEHover<CR>
" ALE colors
highlight ALEError ctermbg=DarkRed ctermfg=Black
highlight ALEWarning ctermbg=Yellow ctermfg=White
" Use TAB to switch between buffers " Use TAB to switch between buffers
noremap <tab> :bn<CR> noremap <tab> :bn<CR>
@ -111,21 +90,51 @@ highlight WhitespaceEOL ctermbg=red guibg=#ab0d0d
match WhitespaceEOL /\s\+\%#\@<!$/ match WhitespaceEOL /\s\+\%#\@<!$/
nnoremap <C-k> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar><CR> nnoremap <C-k> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar><CR>
" Git Gutter config " Much better with Tomorrow Night Bright color theme set in alacritty
highlight GitGutterAdd guibg=#22ff22 guifg=#000000 ctermfg=Green " set background=dark
highlight GitGutterChange guibg=#bbbb00 guifg=#000000 ctermfg=Yellow highlight Search ctermfg=Black
highlight GitGutterDelete guibg=#ff2222 guifg=#000000 ctermfg=DarkRed highlight Comment ctermfg=Grey
highlight SignColumn ctermbg=0
highlight LineNr ctermbg=0 ctermfg=248
highlight Folded ctermbg=Green ctermfg=Black
highlight Pmenu ctermbg=gray guibg=gray
highlight GitGutterAdd ctermfg=Green
highlight GitGutterChange ctermfg=Red
highlight GitGutterDelete ctermfg=DarkRed
highlight GitGutterAddLine ctermbg=LightGreen
highlight GitGutterChangeLine ctermbg=Yellow
highlight GitGutterDeleteLine ctermbg=LightRed
highlight GitGutterChangeDeleteLine ctermbg=LightRed
nmap ]h <Plug>(GitGutterNextHunk)
nmap [h <Plug>(GitGutterPrevHunk)
let g:gitgutter_sign_added='+' let g:gitgutter_sign_added='+'
let g:gitgutter_sign_modified='-+' let g:gitgutter_sign_modified='±'
let g:gitgutter_sign_removed='-' let g:gitgutter_sign_removed='-'
let g:gitgutter_sign_removed_first_line='^^' let g:gitgutter_sign_removed_first_line='^'
let g:gitgutter_sign_modified_removed='--' let g:gitgutter_sign_modified_removed='-'
let g:gitgutter_map_keys=0 let g:gitgutter_map_keys=0
let g:gitgutter_set_sign_backgrounds=1
" Toggles on different plugins/modes
nmap <F1> :ToggleMouse<CR>
set pastetoggle=<F2>
nmap <F3> :set nonumber!<CR>
nmap <F4> :GitGutterBufferToggle<CR>
nmap <F5> :NERDTreeToggle<CR>
nmap <F6> :GitGutterLineHighlightsToggle<CR>
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
" Maintain undo history between sessions " Maintain undo history between sessions
if !isdirectory("/tmp/.vim-undo-dir") if !isdirectory("/tmp/.vim-undo-dir-vladan")
call mkdir("/tmp/.vim-undo-dir", "", 0700) call mkdir("/tmp/.vim-undo-dir-vladan", "", 0700)
endif endif
set undodir=/tmp/.vim-undo-dir set undodir=/tmp/.vim-undo-dir-vladan
set undofile set undofile
" Enable vimrc files per project
set exrc
" Disable unsafe commands in project vimrc
set secure