]> oss.titaniummirror.com Git - smckown/dotfiles.git/blobdiff - vim/vimrc
Better text file handling
[smckown/dotfiles.git] / vim / vimrc
index 68d687ef6d73e46999cac6e705f640799e3e4b52..15e4b3c7576d056a4c0295f669edae5f6f4bdca0 100644 (file)
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -76,9 +76,12 @@ if has("autocmd")
   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 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 text 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 <SID>StripTrailingWhitespace()
@@ -90,9 +93,7 @@ endif
 " Setup swap/backup/undo
 " Note that as of vim 7.4, backupdir // will not expand backup files to a full
 " path as is the case with directory and undodir.
-let s:dir = expand(has('win32') ? '~/Application Data/Vim' : has('mac') ?
-  \ '~/Library/Vim' : '~/.local/share/vim')
-execute 'set directory^=' . s:dir . '/swap//'
+let s:dir = expand(has('win32') ? '$HOME/vimfiles' : '$HOME/.vim')
 if !isdirectory(s:dir . '/')
   call mkdir(s:dir)
 endif
@@ -105,6 +106,7 @@ endif
 if !isdirectory(s:dir . '/undo/')
   call mkdir(s:dir . '/undo')
 endif
+execute 'set directory^=' . s:dir . '/swap//'
 if isdirectory(s:dir . '/backup/')
   execute 'set backupdir=' . s:dir . '/backup//'
   set backup
@@ -211,6 +213,19 @@ if has("autocmd")
     \ endif
 endif
 
+" Fugitive shortcuts
+nnoremap <silent> <leader>gs :Gstatus<CR>
+nnoremap <silent> <leader>gd :Gdiff<CR>
+nnoremap <silent> <leader>gc :Gcommit<CR>
+nnoremap <silent> <leader>gb :Gblame<CR>
+nnoremap <silent> <leader>gl :Glog<CR>
+nnoremap <silent> <leader>gp :Git push<CR>
+nnoremap <silent> <leader>gr :Gread<CR>
+nnoremap <silent> <leader>gw :Gwrite<CR>
+"nnoremap <silent> <leader>ge :Gedit<CR>
+nnoremap <silent> <leader>gi :Git add -p %<CR>
+nnoremap <leader>gg :Ggrep<SPACE>
+
 " EasyGrep
 " To ignore tags file, use system grep.
 let g:EasyGrepCommand=1
@@ -334,10 +349,11 @@ let g:delimitMate_matchpairs = "{:},[:],(:)"
 let g:delimitMate_autoclose = 1
 let g:delimitMate_expand_cr = 1
 let g:delimitMate_expand_space = 1
-nnoremap coa :DelimitMateSwitch<CR>
+" cop means to toggle auto pairing
+nnoremap cop :DelimitMateSwitch<CR>
 
 " Rainbow Parenthesis -- off by default but set toggle
-nnoremap cop :RainbowParenthesesToggle<CR>
+nnoremap co( :RainbowParenthesesToggle<CR>
 
 " Turn on doxygen syntax highlighting for C, C++, C# and IDL files.
 let g:load_doxygen_syntax=1
@@ -371,6 +387,19 @@ function! ToggleFormatOptionT()
   endif
 endfunction
 
+" Implement 'coa' -- Toggle formatoption 'a' -- auto-wrap paragraphs
+nnoremap coa :call ToggleFormatOptionA()<CR>
+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 <Leader>, not
 " its re-mapped version <space>
 imap <leader>d <C-R>=strftime("%Y%m%d")<CR>