dotfiles/my_configs.vim

186 lines
5.6 KiB
VimL
Raw Normal View History

2020-11-13 13:33:21 +01:00
" colorscheme peaksea
2020-02-14 16:37:50 +01:00
colorscheme twilight256
2020-11-13 13:33:21 +01:00
let g:ale_set_balloons = 1
2020-02-14 16:35:43 +01:00
2020-02-14 16:37:46 +01:00
set mouse=a relativenumber number foldmethod=indent nofoldenable "without nofoldenable all folds are closed at startup"
2020-11-13 13:33:21 +01:00
set foldlevelstart=3
2020-03-11 15:05:21 +01:00
set ttymouse=xterm2 " fix mouse when used in tmux/byobu https://unix.stackexchange.com/q/50733
2020-02-14 16:37:46 +01:00
set splitbelow splitright
set autoread
2020-02-14 16:35:43 +01:00
set nowrap
" ALE configuration
let g:ale_fixers_aliases = {'vue': ['vue', 'javascript']}
2020-04-29 20:33:14 +02:00
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'bash': ['shfmt'],
\ 'json': ['prettier'],
2020-11-16 01:47:04 +01:00
\ 'cpp': ['clang-format'],
\ 'css': ['prettier'],
2020-11-13 13:29:44 +01:00
\ 'html': ['prettier'],
\ 'markdown': ['prettier'],
2020-11-16 01:47:04 +01:00
\ 'java': ['eclipselsp'],
\ 'yaml': ['prettier'],
2020-05-14 17:47:40 +02:00
\ 'python': ['black', 'isort'],
2020-11-16 01:47:04 +01:00
\ 'go': ['gofmt', "goimports"],
\ 'rust': ['rustfmt'],
\ "javascript": ["prettier", "eslint"],
\ "vue": ["prettier", "eslint"]
\}
2020-11-13 13:33:21 +01:00
let g:ale_python_bandit_options = "-c banditrc"
2020-11-13 13:33:21 +01:00
let g:ale_python_pylint_options = "--rcfile pylintrc --disable=W0511"
2020-11-16 01:47:04 +01:00
let g:ale_cpp_clang_options = '-std=c++17 -Wall -Wpedantic'
let g:ale_cpp_gcc_options = '-std=c++17 -Wall -Wpedantic'
let g:ale_cpp_cc_options = '-std=c++17 -Wall -Wpedantic'
let g:ale_linter_aliases = {'vue': ['vue', 'javascript']}
let g:ale_linters = {
\ 'bash': ['bashlint', "shellcheck"],
2020-11-13 13:33:21 +01:00
\ 'python': ['pyls', 'pylint', 'bandit', 'mypy'],
2020-11-16 01:47:04 +01:00
\ 'go': ['gopls', 'gobuild'],
\ 'rust': ['rustc'],
\ 'yaml': ['yamllint'],
2020-04-29 20:33:14 +02:00
\ 'javascript': ["yarn lint", "eslint", "vls"]
\}
let g:ack_default_options = " --cc --cpp --shell --python --html --js --vue"
2020-11-16 01:47:04 +01:00
let g:ale_completion_enabled = 1
let g:ale_completion_autoimport = 1
2020-02-14 16:35:43 +01:00
let g:ale_set_quickfix=1
let g:ale_set_loclist=0
2020-11-13 13:33:21 +01:00
" let g:ale_open_list = 1
" let g:ale_keep_list_window_open = 0
2020-02-14 16:35:43 +01:00
2020-11-13 13:33:21 +01:00
let g:ale_lint_on_save = 1
let g:ale_fix_on_save = 1
let g:ale_completion_enabled = 1
2020-02-14 16:37:46 +01:00
packadd termdebug
2020-02-14 16:37:50 +01:00
2020-02-14 16:35:43 +01:00
" Fix some gitgutter stuff
2020-02-14 16:37:50 +01:00
let g:gitgutter_enabled = 1
2020-02-14 16:35:43 +01:00
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
2020-02-14 16:37:50 +01:00
2020-02-14 16:37:50 +01:00
" 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()<Bar>set hls<Bar>endif<CR>
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('<cword>'), '\').'\>'
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()<1B><>ajkj0'
2019-12-27 01:24:53 +01:00
let g:ctrlp_custom_ignore = {
\ 'dir': '\v(target|build|dist|.venv)$',
2019-12-27 01:24:53 +01:00
\ }
" \ 'file': '\v\.(exe|so|dll)$',
" \ 'link': 'some_bad_symbolic_links',
2020-04-06 19:46:13 +02:00
let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard']
2019-12-27 01:24:53 +01:00
2020-02-09 14:37:18 +01:00
nnoremap <leader>mk :bel copen<bar>silent (cargo run) !<bar>redraw!<cr>
2020-02-14 16:35:43 +01:00
autocmd FileType yaml setlocal shiftwidth=2 softtabstop=2 expandtab
2020-03-09 17:57:37 +01:00
autocmd FileType yml setlocal shiftwidth=2 softtabstop=2 expandtab
2020-02-14 16:35:43 +01:00
function! GitStatus()
let [a,m,r] = GitGutterGetHunkSummary()
return printf('+%d ~%d -%d', a, m, r)
endfunction
set statusline+=%{GitStatus()}
2020-03-09 17:57:23 +01:00
" 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
2020-03-09 17:58:07 +01:00
2020-03-09 17:58:39 +01:00
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 <leader>wz :call WinZoomToggle()<CR>
nnoremap <leader>/ :G<CR>
nnoremap <leader>C :close<CR>
nnoremap <leader>B :Bclose<CR>
nnoremap <leader>k :Ack
nnoremap <leader>g :Git<CR>
2020-11-13 13:29:44 +01:00
nnoremap <leader>gd :Git diff<CR>
nnoremap <leader>gp :Git push<CR>
nnoremap <leader>gpf :Git push --force-with-lease<CR>
nnoremap <leader>M :Git commit<CR>
nnoremap <leader>u :GitGutterBufferToggle<CR>
nnoremap <leader>L :GitGutterLineHighlightsToggle<CR>
2020-04-06 19:44:51 +02:00
" OR map keys to use wrapping.
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
" this is assigned to jedi#goto_stubs()
" nunmap <leader>s
" nnoremap <leader>sv :ALEGoToTypeDefinitionInVSplit<CR>
" nnoremap <leader>sh :ALEGoToTypeDefinitionInSplit<CR>
" nnoremap <leader>st :ALEGoToTypeDefinitionInTab<CR>
" nnoremap <leader> :ALEGoToTypeDefinition<CR>
2020-06-14 17:10:12 +02:00
nmap <leader>sv :ALEGoToDefinition -vsplit<CR>
nmap <leader>sh :ALEGoToDefinition -split<CR>
nmap <leader>st :ALEGoToDefinition -tab<CR>
2020-04-06 19:44:51 +02:00
nmap <leader>A :ALEGoToDefinition<CR>
nmap <leader>n :ALEFindReferences<CR>
2020-11-13 13:29:44 +01:00
nmap <leader>n :ALEFindReferences<CR>
nmap <leader>h :ALEHover<CR>
2020-04-06 19:44:51 +02:00
nmap <leader>r :ALERename<CR>
2020-11-13 13:29:44 +01:00
nmap <leader>t :CtrlPTag<CR>
" Add shortcuts to yank/paste to unnamed/unnamedplus clipboards
noremap <Leader>y "*y
noremap <Leader>p "*p
noremap <Leader>Y "+y
noremap <Leader>P "+p