X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/80d7db3166af66da5e42993745f6a8b9c74194d5..b9f205ff99fd2494baaa1e2b5e0318265541d893:/vim/vimrc diff --git a/vim/vimrc b/vim/vimrc index 068e33b..0341432 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -1,8 +1,3 @@ -" My vimrc. -" -" Author: Samir Benmendil -" - " runtimepath {{{1 set runtimepath ^=$XDG_CONFIG_HOME/vim set runtimepath +=$XDG_CONFIG_HOME/vim/after @@ -26,6 +21,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,12 +39,17 @@ 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' Plug 'thinca/vim-qfreplace' Plug 'tomtom/tcomment_vim' Plug 'tpope/vim-abolish' +Plug 'tpope/vim-characterize' Plug 'tpope/vim-endwise' Plug 'tpope/vim-eunuch' Plug 'tpope/vim-fugitive' @@ -104,6 +108,8 @@ 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' @@ -387,10 +393,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 @@ -399,9 +409,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 @@ -571,6 +581,9 @@ 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' @@ -595,7 +608,19 @@ nmap dd :tab split \| Gdiff \| wincmd h " delete fugitive buffers when closed autocmd BufReadPost fugitive://* set bufhidden=delete -nnoremap gs :Git +function! GitToggle() + let l:status_buffer = bufname('^fugitive:///*/.git{/worktrees/*,}//$') + if buflisted(l:status_buffer) + execute 'bdelete '.l:status_buffer + 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 @@ -612,7 +637,8 @@ 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 @@ -656,6 +682,9 @@ let g:SignatureMap = { " switch let g:switch_mapping = "s" +let g:switch_custom_definitions = [ + \ ['yes', 'no'] + \ ] " spellrotate nmap z] (SpellRotateForward) @@ -689,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' @@ -746,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') @@ -797,10 +827,20 @@ 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) -nmap ga (EasyAlign) +vmap :echohl WarningMsg \| echo "EasyAlign mapped to a now" \| echohl None +vmap a (EasyAlign) +nmap a (EasyAlign) " vim-gtest {{{2 let g:gtest#highlight_failing_tests = 0