]> git.rmz.io Git - dotfiles.git/blobdiff - vim/vimrc
vim/fugitive: winfixheight FugitiveIndex window
[dotfiles.git] / vim / vimrc
index 8a623f4c5a1ebdce65f146749c1f87625fa5d044..8da02bf6b7a5e516d2192fd57f8524e99fd12512 100644 (file)
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -397,10 +397,14 @@ augroup END
 map <space> <leader>
 
 " 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
@@ -409,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 <leader>r :call Make()<cr>
+nnoremap <silent> <leader>r :call MakeWithOpt()<cr>
 
 " unhighlight search
 nnoremap <silent> <Leader>/ :silent nohl<CR>
@@ -608,7 +612,18 @@ nmap <silent> <leader>dd :tab split \| Gdiff \| wincmd h<CR>
 " delete fugitive buffers when closed
 autocmd BufReadPost fugitive://* set bufhidden=delete
 
-nnoremap <silent> <leader>gs :Git<CR>
+function! GitToggle()
+  if buflisted(bufname('.git/index'))
+    bdelete .git/index
+  else
+    Git
+    16wincmd_
+  endif
+endfunction
+command! GitToggle :call GitToggle()
+command! GToggle GitToggle
+nnoremap <silent> <leader>gs :GitToggle<CR>
+
 nnoremap <silent> <leader>gd :Gdiffsplit<CR>
 nnoremap <silent> <leader>gc :echohl WarningMsg \| echo "use \<leader>gcc instead" \| echohl None<CR> 
 nnoremap <silent> <leader>gcc :tab G commit -v<CR>
@@ -625,7 +640,8 @@ nnoremap <silent> <leader>gb :G blame<cr>
 
 augroup fugitive_gstatus
     au!
-    autocmd BufWinEnter */.git/index resize 16
+    autocmd User FugitiveIndex setlocal winfixheight
+    autocmd User FugitiveIndex nmap <buffer> <leader><space> =
 augroup end
 
 " Gundo {{{2