2020-02-14 16:35:43 +01:00
|
|
|
|
python3 from powerline.vim import setup as powerline_setup
|
|
|
|
|
python3 powerline_setup()
|
|
|
|
|
python3 del powerline_setup
|
|
|
|
|
|
|
|
|
|
let g:Powerline_symbols = 'fancy'
|
|
|
|
|
|
2020-02-14 16:37:50 +01:00
|
|
|
|
colorscheme twilight256
|
2020-02-14 16:35:43 +01:00
|
|
|
|
" colorscheme solarized
|
|
|
|
|
|
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-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
|
|
|
|
|
set showtabline=2 laststatus=2 " fix statusline
|
2020-02-14 16:37:46 +01:00
|
|
|
|
|
2020-02-14 16:37:46 +01:00
|
|
|
|
" ALE configuration
|
2020-03-09 17:54:52 +01:00
|
|
|
|
let g:ale_fixers_aliases = {'vue': ['vue', 'javascript']}
|
|
|
|
|
let g:ale_fixers = {
|
|
|
|
|
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
2020-04-06 19:49:24 +02:00
|
|
|
|
\ 'bash': ['shfmt'],
|
|
|
|
|
\ 'json': ['prettier'],
|
|
|
|
|
\ 'css': ['prettier'],
|
|
|
|
|
\ 'markdown': ['prettier'],
|
|
|
|
|
\ 'python': ['black', 'reorder-python-imports'],
|
2020-04-07 00:53:37 +02:00
|
|
|
|
\ 'go': ['gofmt', 'goimports'],
|
2020-03-09 17:54:52 +01:00
|
|
|
|
\ 'rust': ['rustfmt'],
|
|
|
|
|
\ "javascript": ["prettier", "eslint"],
|
|
|
|
|
\ "vue": ["prettier", "eslint"]
|
|
|
|
|
\}
|
|
|
|
|
let g:ale_linter_aliases = {'vue': ['vue', 'javascript']}
|
|
|
|
|
let g:ale_linters = {
|
2020-04-06 19:49:24 +02:00
|
|
|
|
\ 'python': ['pyls', 'pylint', 'mypy', 'bandit'],
|
2020-03-09 17:54:52 +01:00
|
|
|
|
\ 'bash': ['bashlint', "shellcheck"],
|
2020-04-07 00:53:37 +02:00
|
|
|
|
\ 'go': ['golint'],
|
2020-03-09 17:54:52 +01:00
|
|
|
|
\ 'rust': ['rustc'],
|
|
|
|
|
\ 'yaml': ['yamllint'],
|
2020-04-06 19:49:24 +02:00
|
|
|
|
\ 'javascript': ["yarn lint", "eslint", "vls"],
|
2020-03-09 17:54:52 +01:00
|
|
|
|
\}
|
|
|
|
|
|
2020-02-14 16:37:50 +01:00
|
|
|
|
let g:ale_lint_on_insert_leave = 1
|
|
|
|
|
let g:ale_fix_on_insert_leave = 1
|
2020-02-14 16:37:51 +01:00
|
|
|
|
let g:ale_lint_on_text_changed = 1
|
2020-02-14 16:37:50 +01:00
|
|
|
|
|
2020-02-14 16:35:43 +01:00
|
|
|
|
let g:ack_default_options = " --cc --cpp --shell --python --html --js"
|
|
|
|
|
let g:ale_set_quickfix=1
|
|
|
|
|
let g:ale_set_loclist=0
|
|
|
|
|
|
2020-02-14 16:37:49 +01:00
|
|
|
|
" let g:ale_lint_on_save = 1
|
2020-02-14 16:37:46 +01:00
|
|
|
|
let g:ale_fix_on_save = 1
|
2020-04-06 19:49:24 +02:00
|
|
|
|
" let g:ale_lint_on_insert_leave = 1
|
|
|
|
|
let g:ale_lint_on_text_changed = 1
|
2020-02-14 16:37:46 +01:00
|
|
|
|
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
|
2020-02-14 16:37:51 +01:00
|
|
|
|
|
|
|
|
|
" 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 = {
|
2020-02-14 16:35:43 +01:00
|
|
|
|
\ 'dir': '\v(target|build|dist)$',
|
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>
|
2020-03-13 21:34:36 +01:00
|
|
|
|
|
|
|
|
|
nnoremap <leader>/ :G<CR>
|
|
|
|
|
nnoremap <leader>C :close<CR>
|
|
|
|
|
nnoremap <leader>B :Bclose<CR>
|
|
|
|
|
nnoremap <leader>G :Git
|
|
|
|
|
nnoremap <leader>P :GPush<CR>
|
|
|
|
|
nnoremap <leader>M :Git commit<CR>
|
2020-03-30 03:37:39 +02:00
|
|
|
|
nnoremap <leader>u :GitGutterBufferToggle<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>
|
|
|
|
|
nmap <leader>sv :ALEGoToDefinitionInVSplit<CR>
|
|
|
|
|
nmap <leader>sh :ALEGoToDefinitionInSplit<CR>
|
|
|
|
|
nmap <leader>st :ALEGoToDefinitionInTab<CR>
|
|
|
|
|
nmap <leader>A :ALEGoToDefinition<CR>
|
|
|
|
|
nmap <leader>n :ALEFindReferences<CR>
|
|
|
|
|
nmap <leader>r :ALERename<CR>
|