X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=vim%2Fvimrc;h=38acfe51ff5635bfdb024fc0de86d444b31ebaa8;hb=1f12c97e23a74338672719310a491f20a6098fe3;hp=d169f51157cdea20ed0787bf92ca60d831f296cb;hpb=692627ad059ce36864c6c91772af58ac790f65f8;p=smckown%2Fdotfiles.git diff --git a/vim/vimrc b/vim/vimrc index d169f51..38acfe5 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -23,6 +23,9 @@ call pathogen#helptags() runtime! plugin/sensible.vim nnoremap Y Y +" Update wildmenu from sensible defaults +set wildmode=longest:full,full + " Set the correct font for gvim if has("gui_running") if has("gui_gtk2") @@ -70,15 +73,24 @@ set list " Set default indent policy. smarttab, roundshift enabled by sensible set softtabstop=2 shiftwidth=2 expandtab +" cinoptions for code formatting +set cinoptions=t0,U1,k2s,j1,J1 + " File type specific settings. if has("autocmd") + autocmd BufNewFile,BufRead /run/shm/* set nobackup nowritebackup noundofile + \ noswapfile viminfo="" noshelltemp history=0 nomodeline secure autocmd filetype make setlocal sts=0 sw=8 noexpandtab tw=80 fo-=t fo+=j autocmd filetype sh,ld setlocal sts=4 sw=4 tw=80 fo-=t fo+=j autocmd filetype python setlocal sts=4 sw=4 tw=79 fo-=t fo+=j autocmd filetype html,xml setlocal listchars-=tab:>. tw=80 fo-=t fo+=j - autocmd filetype text,markdown,mkd,md setlocal tw=80 fo-=t fo+=j - autocmd filetype c,cpp,java setlocal tw=80 fo-=t fo+=j - autocmd filetype nesc setlocal syntax=c.doxygen tw=80 fo-=t fo+=j + autocmd filetype markdown,mkd,md setlocal tw=80 fo-=t fo+=j + autocmd filetype c,cpp,java setlocal tw=80 fo+=jt + autocmd filetype nesc setlocal syntax=c.doxygen tw=80 fo+=jt + autocmd filetype text setlocal tw=80 fo+=jt + autocmd filetype tex setlocal tw=80 fo+=jt + + autocmd BufReadPre README*,TODO*,INSTALL* setlocal tw=80 fo+=t " Whitelist for auto-stripping trailing whitespace on buffer write autocmd BufWritePre *.c,*.h,*.nesc,*.py,*.java,*.sh,make :call StripTrailingWhitespace() @@ -173,12 +185,6 @@ set tags=tags;/ " %% on an ex command line expands to the dir path of the current buffer cnoremap %% getcmdtype() == ':' ? expand('%:h').'/' : '%%' -" Create some edit maps for opening new files -map ew :e %% -map es :sp %% -map ev :vsp %% -map et :tabe %% - " Make and g] work like g, which uses :tjump nnoremap g] g nnoremap g @@ -215,7 +221,7 @@ nnoremap gs :Gstatus nnoremap gd :Gdiff nnoremap gc :Gcommit nnoremap gb :Gblame -nnoremap gl :Glog +nnoremap gl :Git log nnoremap gp :Git push nnoremap gr :Gread nnoremap gw :Gwrite @@ -267,10 +273,10 @@ nmap w (easymotion-bd-w) nmap b (easymotion-bd-w) nmap W (easymotion-bd-W) nmap B (easymotion-bd-W) -nmap e (easymotion-bd-e) -nmap E (easymotion-bd-E) -nmap ge (easymotion-bd-e) -nmap gE (easymotion-bd-E) +"nmap e (easymotion-bd-e) +"nmap E (easymotion-bd-E) +"nmap ge (easymotion-bd-e) +"nmap gE (easymotion-bd-E) nmap j (easymotion-bd-jk) nmap k (easymotion-bd-jk) nmap n (easymotion-bd-n) @@ -313,22 +319,6 @@ nmap 7 AirlineSelectTab7 nmap 8 AirlineSelectTab8 nmap 9 AirlineSelectTab9 -" Highlight only long lines -" This solution has two problems: -" 1. On first file edit, the status bar does not render until a key is pressed -" 2. When creating new lines the last column isn't known until it's arrived -"augroup collumnLimit -" autocmd! -" autocmd BufEnter,WinEnter,FileType scala,java,c,nesc,make -" \ highlight CollumnLimit ctermbg=LightGrey guibg=LightGrey -" let collumnLimit = 79 -" let pattern = -" \ '\%<' . (collumnLimit+1) . 'v.\%>' . collumnLimit . 'v' -" autocmd BufEnter,WinEnter,FileType scala,java,c,nesc,make -" \ let w:m1=matchadd('CollumnLimit', pattern, -1) -"augroup END - -" The simpler solution to the above, which generates a column if exists('+colorcolumn') if v:version >= 703 " Set color column relative to defined textwidth. @@ -346,10 +336,18 @@ let g:delimitMate_matchpairs = "{:},[:],(:)" let g:delimitMate_autoclose = 1 let g:delimitMate_expand_cr = 1 let g:delimitMate_expand_space = 1 -nnoremap coa :DelimitMateSwitch +" cop means to toggle auto pairing +nnoremap cop :DelimitMateSwitch " Rainbow Parenthesis -- off by default but set toggle -nnoremap cop :RainbowParenthesesToggle +nnoremap co( :RainbowParenthesesToggle + +" Toggle git gutter +nnoremap cog :GitGutterToggle + +" mkbuild tools +nnoremap e :Unite -start-insert -buffer-name=files mkbfiles +nnoremap x :Unite -buffer-name=xrefs xrefs " Turn on doxygen syntax highlighting for C, C++, C# and IDL files. let g:load_doxygen_syntax=1 @@ -383,8 +381,50 @@ function! ToggleFormatOptionT() endif endfunction +" Implement 'coa' -- Toggle formatoption 'a' -- auto-wrap paragraphs +nnoremap coa :call ToggleFormatOptionA() +function! ToggleFormatOptionA() + let tmp = substitute(&formatoptions, 'a', '', '') + if &formatoptions == tmp + set fo+=a + :echo "Enable auto-wrap paragraphs" + else + set fo-=a + :echo "Disable auto-wrap paragraphs" + endif +endfunction + " Insert date and time in insert mode. Have to use the native , not " its re-mapped version -imap d =strftime("%Y%m%d") -imap D =strftime("%Y-%m-%d") -imap t =strftime("%H:%M:%S") +"nmap dd "=strftime('%Y%m%d')p +"imap dd =strftime('%Y%m%d') +"nmap dD "=strftime('%Y-%m-%d')p +"imap dD =strftime('%Y-%m-%d') +"nmap dt "=strftime('%H:%M:%S')p +"imap dt =strftime('%H:%M:%S') + +" Unite +let g:unite_source_history_yank_enable = 1 +"call unite#filters#matcher_default#use(['matcher_fuzzy']) +nnoremap uf :Unite -no-split -start-insert -buffer-name=files file_rec +nnoremap uy :Unite -no-split -buffer-name=yank history/yank +nnoremap ub :Unite -no-split -start-insert -buffer-name=buffer buffer +nnoremap uo :Unite -no-split -start-insert -buffer-name=outline outline +nnoremap ul :Unite -no-split -start-insert -buffer-name=lines line +nnoremap uc :Unite -no-split -start-insert -buffer-name=quicklist qf +nnoremap ut :Unite -no-split -start-insert -buffer-name=tags tag +nnoremap : :Unite -start-insert -buffer-name=command history/command +nnoremap / :Unite -start-insert -buffer-name=search history/search + +" Custom mappings for the unite buffer +autocmd FileType unite call s:unite_settings() +function! s:unite_settings() + "setlocal noswapfile undolevels=-1 + " Play nice with supertab + let b:SuperTabDisabled=1 + " Enable navigation with control-j and control-k in insert mode + imap (unite_select_next_line) + imap (unite_select_previous_line) + imap (unite_do_default_action) + nmap (unite_exit) +endfunction