X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/9cfb2638d9dd4a28b055cab36c026624e5bf7af8..c089750bf7a4524584f74246b52de9485f63f95b:/vim/vimrc?ds=sidebyside diff --git a/vim/vimrc b/vim/vimrc index 468744b..8da02bf 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -26,6 +26,10 @@ let g:gitgutter_sign_allow_clobber = 0 "}}} Plug 'alepez/vim-gtest' Plug 'alx741/vinfo' +Plug 'andrewradev/sideways.vim' " {{{2 +nnoremap ,h :SidewaysLeft:delmarks z +nnoremap ,l :SidewaysRight:delmarks z +"}}} Plug 'andrewradev/switch.vim' Plug 'bling/vim-airline' Plug 'chrisbra/checkattach' @@ -40,6 +44,10 @@ Plug 'majutsushi/tagbar' Plug 'octol/vim-cpp-enhanced-highlight' Plug 'raimondi/delimitmate' Plug 'sgeb/vim-diff-fold' +Plug 'skywind3000/asyncrun.vim' " {{{2 +command! -bang -nargs=* -complete=file Make AsyncRun -save=2 -program=make @ +let g:asyncrun_open = 10 +"}}} Plug 'shougo/unite.vim' Plug 'shougo/vimproc.vim', {'do': 'make'} Plug 'sjl/gundo.vim' @@ -90,8 +98,6 @@ Plug 'kana/vim-operator-user' " staging " Check LucHermites plugins: https://github.com/LucHermitte/lh-cpp -Plug 'dense-analysis/ale' " {{{2 -let g:ale_echo_msg_format = '[%linter%] %code: %%s' Plug 'git@github.com:/ram-z/vim-orgmode', { 'branch': 'dev' } " {{{2 Plug 'vim-scripts/syntaxrange' @@ -106,12 +112,19 @@ let g:haskell_enable_pattern_synonyms = 1 " to enable highlighting of `pattern` let g:haskell_enable_typeroles = 1 " to enable highlighting of type roles let g:haskell_enable_static_pointers = 1 " to enable highlighting of `static` let g:haskell_backpack = 1 " to enable highlighting of backpack keywords + +let g:haskell_indent_before_where = 2 " }}} Plug 'aklt/plantuml-syntax' Plug 'mtth/scratch.vim' " {{{2 let g:scratch_no_mappings = 1 + let g:scratch_autohide = 0 +"}}} + +Plug 'vim-utils/vim-man' " {{{2 +let g:man_width = 80 "}}} call plug#end() @@ -121,7 +134,12 @@ filetype plugin indent on " colorscheme {{{1 syntax on set background=dark +let &t_8f = "\[38;2;%lu;%lu;%lum" +let &t_8b = "\[48;2;%lu;%lu;%lum" +set termguicolors colorscheme $THEME +"TODO see how I can integrate this into a theme that customises upstream Nord +hi debugPC term=reverse ctermbg=8 " options {{{1 " moving around, searching and patterns {{{2 @@ -151,8 +169,9 @@ set listchars+=extends:❯,precedes:❮ set listchars+=trail:· augroup trailing au! - au InsertEnter * :set listchars-=trail:· - au InsertLeave * :set listchars+=trail:· + au FileType qf setlocal listchars-=trail:· + au InsertEnter * set listchars-=trail:· + au InsertLeave * set listchars+=trail:· augroup END set scrolloff=5 " number of screen lines to show around the cursor @@ -254,6 +273,8 @@ set viewoptions+=folds " save folds set diffopt+=filler " show filler lines set diffopt+=vertical " always vertical split set diffopt+=context:10 " 10 lines context between changes +set diffopt+=internal +set diffopt+=algorithm:patience " reading and writing files {{{2 set modeline " read modelines @@ -376,10 +397,14 @@ augroup END map " make -function! Make() +function! MakeWithOpt() + " TODO only do this if makeprg matches make + " if &makeprg =~ "make" let l:make_dir = "" if exists("b:make_dir") let l:make_dir = "-C ".b:make_dir + elseif exists("t:make_dir") + let l:make_dir = "-C ".t:make_dir elseif exists("g:make_dir") let l:make_dir = "-C ".g:make_dir endif @@ -388,9 +413,9 @@ function! Make() if exists("g:make_targets") let l:make_targets = g:make_targets endif - execute "make! ".l:make_dir." ".l:make_targets + execute "Make ".l:make_dir." ".l:make_targets endf -nnoremap r :call Make() +nnoremap r :call MakeWithOpt() " unhighlight search nnoremap / :silent nohl @@ -431,7 +456,11 @@ noremap ' ` nnoremap vv ^vg_ " Unfuck my screen -nnoremap U :syntax sync fromstart:AirlineRefresh:redraw! +nnoremap U + \ :syntax sync fromstart + \ :AirlineRefresh + \ :call popup_clear(1) + \ :redraw! " Ranger " nnoremap r :silent !ranger %:h:redraw! @@ -553,8 +582,12 @@ nmap qq :echo "hi<" . synIDattr(synID(line("."),col("."),1),"na " airline {{{2 let g:airline#extensions#whitespace#enabled = 1 let g:airline#extensions#tabline#enabled = 1 +let g:airline#extensions#searchcount#enabled = 0 let g:airline_powerline_fonts = 1 +let g:asyncrun_status = "stopped" +let g:airline_section_error = airline#section#create_right(['%{g:asyncrun_status}']) + " checkattach {{{2 let g:checkattach_filebrowser = 'ranger' let g:checkattach_once = 'y' @@ -579,25 +612,41 @@ nmap dd :tab split \| Gdiff \| wincmd h " delete fugitive buffers when closed autocmd BufReadPost fugitive://* set bufhidden=delete -nnoremap gs :Git +function! GitToggle() + if buflisted(bufname('.git/index')) + bdelete .git/index + else + Git + 16wincmd_ + endif +endfunction +command! GitToggle :call GitToggle() +command! GToggle GitToggle +nnoremap gs :GitToggle + nnoremap gd :Gdiffsplit nnoremap gc :echohl WarningMsg \| echo "use \gcc instead" \| echohl None nnoremap gcc :tab G commit -v nnoremap gca :tab G commit -v --amend nnoremap gcf :tab G commit -v --fixup= nnoremap gp :echohl WarningMsg \| echo "use \gpp instead" \| echohl None -nnoremap gpp :G push -nnoremap gpf :G push --force-with-lease +nnoremap gpp :Git push \| copen +nnoremap gpf :Git push --force-with-lease \| copen +nnoremap gll :Git pull +nnoremap gru :Git rebase --interactive @{upstream} +nnoremap grp :Git rebase --interactive @{push} nnoremap ga :Gwrite nnoremap gb :G blame augroup fugitive_gstatus au! - autocmd BufWinEnter */.git/index resize 16 + autocmd User FugitiveIndex setlocal winfixheight + autocmd User FugitiveIndex nmap = augroup end " Gundo {{{2 nnoremap :GundoToggle +let g:gundo_prefer_python3 = 1 " indent-guides {{{2 let g:indent_guides_default_mapping = 0 @@ -669,6 +718,7 @@ let g:tagbar_iconchars = ['+', '-'] " tcomments {{{2 let g:tcomment_textobject_inlinecomment = 'gic' let g:tcomment#filetype#guess = 0 +"let g:tcomment#options = {'whitespace' : 'no'} " ultisnips {{{2 let g:UltiSnipsEditSplit = 'vertical' @@ -726,7 +776,7 @@ if executable('ag') end nnoremap [unite]a :Unite grep:.:: nnoremap [unite]A :Unite grep:.:-w: -command! -nargs=+ Ag Unite -input= grep:.: +command! -nargs=+ Ag Unite grep:.:: " unite-file_rec {{{3 if executable('ag') @@ -777,6 +827,15 @@ let g:ycm_complete_in_comments = 1 let g:ycm_complete_in_strings = 1 let g:ycm_autoclose_preview_window_after_insertion = 0 +let g:ycm_language_server = + \ [ + \ { + \ 'name': 'haskell', + \ 'cmdline': [ 'haskell-language-server-wrapper', '--lsp' ], + \ 'filetypes': [ 'haskell', 'lhaskell' ] + \ }, + \ ] + " vim-easy-align {{{2 " start interactive EasyAlign in visual mode vmap (EasyAlign)