call plug#begin('~/.local/share/nvim/plugged') Plug 'davidhalter/jedi-vim' Plug 'ncm2/float-preview.nvim' Plug 'dense-analysis/ale' Plug 'jacoborus/tender.vim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'airblade/vim-gitgutter' Plug 'scrooloose/nerdtree' Plug 'gleam-lang/gleam.vim' Plug 'cespare/vim-toml' Plug 'rust-lang/rust.vim' Plug 'vim-scripts/DrawIt' call plug#end() let g:airline_theme='papercolor' let g:airline#extensions#ale#enabled=1 inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" 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 softtabstop=4 set shiftwidth=4 set expandtab set autoindent set fileformat=unix set number " Hide top preview window, use float_preview instead set completeopt-=preview set omnifunc=ale#completion#OmniFunc " Lint and check types let b:ale_linters={ \ 'python': ['mypy', 'pyls', 'pylint'], \ 'ocaml': ['merlin'], \ 'rust': ['analyzer', 'cargo'] \ } let b:ale_fixers = { \ 'rust': 'rustfmt', \ 'python': 'autopep8', \ 'ocaml': 'ocamlformat' \} let g:ale_rust_rustfmt_options='--edition 2018' let g:ale_fix_on_save=0 let g:ale_lint_on_save=1 let g:ale_lint_on_enter=0 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_sign_error="✗" 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 nmap e :ALEDetail noremap d :ALEGoToDefinition noremap r :ALEFindReferences noremap g] :ALEGoToDefinition noremap h :ALEHover " ALE colors highlight ALEError ctermbg=DarkRed ctermfg=Black highlight ALEWarning ctermbg=Yellow ctermfg=White " Use TAB to switch between buffers noremap :bn noremap :bp " Highlight trailing whitespace (darker red) and remove all with Ctrl+k highlight WhitespaceEOL ctermbg=red guibg=#ab0d0d match WhitespaceEOL /\s\+\%#\@ :let _s=@/:%s/\s\+$//e:let @/=_s " Much better with Tomorrow Night Bright color theme set in alacritty " set background=dark highlight Search ctermfg=Black 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 (GitGutterNextHunk) nmap [h (GitGutterPrevHunk) let g:gitgutter_sign_added='+' let g:gitgutter_sign_modified='±' let g:gitgutter_sign_removed='-' let g:gitgutter_sign_removed_first_line='^' let g:gitgutter_sign_modified_removed='-' let g:gitgutter_map_keys=0 let g:gitgutter_set_sign_backgrounds=1 " Toggles on different plugins/modes nmap :ToggleMouse set pastetoggle= nmap :set nonumber! nmap :GitGutterBufferToggle nmap :NERDTreeToggle nmap :GitGutterLineHighlightsToggle autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab " Maintain undo history between sessions if !isdirectory("/tmp/.vim-undo-dir-vladan") call mkdir("/tmp/.vim-undo-dir-vladan", "", 0700) endif set undodir=/tmp/.vim-undo-dir-vladan set undofile " Enable vimrc files per project set exrc " Disable unsafe commands in project vimrc set secure