colorscheme twilight256 " colorscheme solarized "fallback if twilight is not available set mouse=a relativenumber number foldmethod=indent nofoldenable "without nofoldenable all folds are closed at startup" set ttymouse=xterm2 " fix mouse when used in tmux/byobu https://unix.stackexchange.com/q/50733 set clipboard=unnamed " always use system clipboard set splitbelow splitright set autoread set nowrap set showtabline=2 laststatus=2 " fix statusline (FIX WHAT???) " ALE configuration let g:ale_fixers_aliases = {'vue': ['vue', 'javascript']} let g:ale_fixers = { \ '*': ['remove_trailing_lines', 'trim_whitespace'], \ 'bash': ['shfmt'], \ 'json': ['prettier'], \ 'css': ['prettier'], \ 'markdown': ['prettier'], \ 'python': ['black', 'reorder-python-imports'], \ 'go': ['gofmt', 'goimports'], \ 'rust': ['rustfmt'], \ "javascript": ["prettier", "eslint"], \ "vue": ["prettier", "eslint"] \} let g:ale_python_bandit_options = "-c banditrc" let g:ale_linter_aliases = {'vue': ['vue', 'javascript']} let g:ale_linters = { \ 'bash': ['bashlint', "shellcheck"], \ 'go': ['golangci-lint'], \ 'python': ['pyls', 'pylint', 'mypy', 'bandit'], \ 'rust': ['rustc'], \ 'yaml': ['yamllint'], \ 'javascript': ["yarn lint", "eslint", "vls"] \} let g:ale_lint_on_insert_leave = 1 let g:ale_fix_on_insert_leave = 1 let g:ale_lint_on_text_changed = 1 let g:ack_default_options = " --cc --cpp --shell --python --html --js --vue" let g:ale_set_quickfix=1 let g:ale_set_loclist=0 " let g:ale_lint_on_save = 1 let g:ale_fix_on_save = 1 " let g:ale_lint_on_insert_leave = 1 let g:ale_lint_on_text_changed = 1 let g:ale_completion_enabled = 1 packadd termdebug " Fix some gitgutter stuff let g:gitgutter_enabled = 1 let g:gitgutter_override_sign_column_highlight = 0 highlight clear SignColumn highlight GitGutterAdd ctermfg=2 highlight GitGutterChange ctermfg=3 highlight GitGutterDelete ctermfg=1 highlight GitGutterChangeDelete ctermfg=4 " Highlight all instances of word under cursor, when idle. " Useful when studying strange source code. " Type z/ to toggle highlighting on/off. nnoremap z/ :if AutoHighlightToggle()set hlsendif function! AutoHighlightToggle() let @/ = '' if exists('#auto_highlight') au! auto_highlight augroup! auto_highlight setl updatetime=4000 echo 'Highlight current word: off' return 0 else augroup auto_highlight au! au CursorHold * let @/ = '\V\<'.escape(expand(''), '\').'\>' augroup end setl updatetime=500 echo 'Highlight current word: ON' return 1 endif endfunction " A friggin python breakpoint. Invoke with @b let @b = 'A breakpoint()€ýajkj0' let g:ctrlp_custom_ignore = { \ 'dir': '\v(target|build|dist)$', \ } " \ 'file': '\v\.(exe|so|dll)$', " \ 'link': 'some_bad_symbolic_links', let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard'] nnoremap mk :bel copensilent (cargo run) !redraw! autocmd FileType yaml setlocal shiftwidth=2 softtabstop=2 expandtab autocmd FileType yml setlocal shiftwidth=2 softtabstop=2 expandtab function! GitStatus() let [a,m,r] = GitGutterGetHunkSummary() return printf('+%d ~%d -%d', a, m, r) endfunction set statusline+=%{GitStatus()} " Improve vimdiff colors highlight DiffAdd cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red highlight DiffDelete cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red highlight DiffChange cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red highlight DiffText cterm=bold ctermfg=10 ctermbg=88 gui=none guifg=bg guibg=Red function! WinZoomToggle() abort if ! exists('w:WinZoomIsZoomed') let w:WinZoomIsZoomed = 0 endif if w:WinZoomIsZoomed == 0 let w:WinZoomOldWidth = winwidth(0) let w:WinZoomOldHeight = winheight(0) wincmd _ wincmd | let w:WinZoomIsZoomed = 1 elseif w:WinZoomIsZoomed == 1 execute "resize " . w:WinZoomOldHeight execute "vertical resize " . w:WinZoomOldWidth let w:WinZoomIsZoomed = 0 endif endfunction nnoremap wz :call WinZoomToggle() nnoremap / :G nnoremap C :close nnoremap B :Bclose nnoremap G :Git nnoremap P :GPush nnoremap M :Git commit nnoremap u :GitGutterBufferToggle nnoremap L :GitGutterLineHighlightsToggle " OR map keys to use wrapping. nmap (ale_previous_wrap) nmap (ale_next_wrap) " this is assigned to jedi#goto_stubs() " nunmap s " nnoremap sv :ALEGoToTypeDefinitionInVSplit " nnoremap sh :ALEGoToTypeDefinitionInSplit " nnoremap st :ALEGoToTypeDefinitionInTab " nnoremap :ALEGoToTypeDefinition nmap sv :ALEGoToDefinitionInVSplit nmap sh :ALEGoToDefinitionInSplit nmap st :ALEGoToDefinitionInTab nmap A :ALEGoToDefinition nmap n :ALEFindReferences nmap r :ALERename " Add shortcuts to yank/paste to unnamed/unnamedplus clipboards noremap y "*y noremap p "*p noremap Y "+y noremap P "+p