dotfiles/my_configs.vim

142 lines
4.1 KiB
VimL
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

python3 from powerline.vim import setup as powerline_setup
python3 powerline_setup()
python3 del powerline_setup
let g:Powerline_symbols = 'fancy'
colorscheme twilight256
" colorscheme solarized
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 splitbelow splitright
set autoread
set nowrap
set showtabline=2 laststatus=2 " fix statusline
" ALE configuration
let g:ale_fixers_aliases = {'vue': ['vue', 'javascript']}
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'python': ['black'],
\ 'rust': ['rustfmt'],
\ "javascript": ["prettier", "eslint"],
\ "vue": ["prettier", "eslint"]
\}
let g:ale_linter_aliases = {'vue': ['vue', 'javascript']}
let g:ale_linters = {
\ 'python': ['pylint'],
\ 'bash': ['bashlint', "shellcheck"],
\ 'rust': ['rustc'],
\ 'yaml': ['yamllint'],
\ 'javascript': ["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"
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_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()<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'
let g:ctrlp_custom_ignore = {
\ 'dir': '\v(target|build|dist)$',
\ }
" \ 'file': '\v\.(exe|so|dll)$',
" \ 'link': 'some_bad_symbolic_links',
nnoremap <leader>mk :bel copen<bar>silent (cargo run) !<bar>redraw!<cr>
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
" let g:ctrlp_custom_ignore = {
" \ 'file': '\v\.(pdf|csv|gz|csv)$',
" \ 'dir': '(dist|build)$',
" \ }
let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard']
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>G :Git
nnoremap <leader>P :GPush<CR>
nnoremap <leader>M :Git commit<CR>
nnoremap <leader>u :GitGutterBufferToggle<CR>