Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5657

Vim で Git を使う

$
0
0

Vim で Git を使う

lambdalisue/gina.vimを使っています。

まだまだ試行錯誤中。

さくっと

  • ログ表示: <Leader>gl
  • バッファでログ表示: <Leader>gL
  • diff表示: <Leader>gd
  • ステータス表示: <Leader>gs
  • ブランチ表示: <Leader>gbb
  • push (ブランチ名に応じて master を変更): <Leader>gp
  • 開いているファイル、選択行を Github で開く: <Leader>oG
  • 差分から検索: <Leader>gg
vimrc
nnoremap <silent><Leader>gl :!git gl -100<CR>
nnoremap <silent><Leader>gL :Gina log --graph -100<CR>
nnoremap <silent><Leader>gd :!git diff<CR>
nnoremap <silent><Leader>gs :!git status<CR>
nnoremap <Leader>gbb :call popup_atcursor(systemlist('git branch'), #{ moved:"any", border:[], minwidth:&columns/3, minheight: &lines/4})<CR>
nnoremap <Leader>gp :!git push origin master
nnoremap <Leader>oG :Gina browse:<CR>
xnoremap <Leader>oG :Gina browse:<CR>
nnoremap <Leader>gg :Gina log -p-G""<Left>

変更内容を全コミット

  • 単純なコメント: <Leader>gn
  • 詳細なコメント:
    1. <Leader>gu
    2. <Leader>gc
vimrc
nnoremap <Leader>gn :!git commit -a-m""<Left>
nnoremap <silent><Leader>gu :silent!git add -u<CR>
nnoremap <silent><Leader>gc :!git commit -v<CR>

変更内容の一部をコミット

  • 比較的単純な場合
    1. <Leader>ga
    2. <Leader>gc
vimrc
nnoremap <silent><Leader>ga :call popup_create(term_start(['git','add','-p'], #{ hidden:1, term_finish:'close'}), #{ border:[], minwidth:&columns*9/10, minheight: &lines/2})<CR>
nnoremap <silent><Leader>gc :!git commit -v<CR>
  • 比較的複雑な場合
    1. <Leader>gS
    2. 対象のファイルで pp
    3. 当該コミットに取り込む対象を dorで反映、 dolで除外
    4. :w
    5. qt
    6. cc
    7. コミットメッセージを書いて :wq
    8. 2. からの繰り返し
    9. :bdeletleで終わり。
vimrc
nnoremap <silent><Leader>gS :Gina status -s<CR>call gina#custom#mapping#nmap('status','cc',':<C-u>Gina commit -v --group=status<CR>',{'noremap':1,'silent':1,'buffer':1,'nowait':1})
nnoremap qt :tabclose<CR>

直前のコミットを master ブランチにする

  1. ブランチ名変更: <Leader>gbr
  2. 直前のコミットのブランチ名を master へ: <Leader>g-
vimrc
nnoremap <Leader>gbr :!git branch -m<Space>
nnoremap <Leader>g-:!git switch -c master HEAD~<Left><Left><Left><Left><Left><Left>

履歴を辿って変更内容を確認

  1. リポジトリのファイルを開いて <Leader>bl
  2. <CR>, <BS>でコミットを辿って e, sでコミットメッセージを表示
  3. qtで終わり。
vimrc
nnoremap <silent><Leader>gbl :Gina blame<CR>call gina#custom#mapping#nmap('blame','s',':<C-u>Gina show<CR>',{'noremap':1,'silent':1,'buffer':1,'nowait':1})call gina#custom#mapping#nmap('blame','e','<Plug>(gina-blame-echo)',{'noremap':0,'buffer':1,'nowait':1})
nnoremap qt :tabclose<CR>

Viewing all articles
Browse latest Browse all 5657

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>