gina.vimを使い始める備忘録
簡単な操作はtig、コミットグラフを見ながらfetch・mergeとかをvscodeのgitgraphでやってたので
vimのプラグインで完結させたいので触ってみる
良い感じになれたらfzf-previewよろしくdduとginaを連携するプラグインとか書いてみたいな(浅はかな希望)
ひとまず基本的な操作、add・commitあたりをやる
:Gina status
でgit status
と同じ画面を表示する
画面上で
-
<<
: stage -
>>
: unstage
等の操作ができる(:h gina-buffer-status
)
キーマップも変更可能なのでtigと揃えてみてもいいかもしれん
:Gina commit
でgit commit
と同じ画面を表示
コミットメッセージを書いて:wq
とかやる(ここはtigとかとあまり変わらない)
status画面での
-
cc
: 2つのバッファを利用した比較 -
pp
: 3つのバッファを利用したパッチ(コンフリクト解決に便利そう) -
!!
: コンフリクト解決に3つのバッファを使用
をした後に表示される画面がVSCodeでの変更差分表示と同じ感じがしてよい(vimdiff使ってそう)
部分的にステージしたいときは選択してから:diffpupt
でOKらしい
vimdiffのコマンドらしく普通にヘルプに書いてある
tigだと厳密に指定できず毎回この操作のためにvscode開いてたので、ちょっと便利になったかも~
:diffput
とかだと、2つのバッファの差分をなくすだけでステージしてる事にはならないっぽい?
よく分かってないので、この辺調べとく
nomodifiableバッファとmodifiableバッファがある?
保存できるようなバッファがあるので、そこで保存すると:diffput
とかの変更がステージされるっぽい
知らんけど
add,commitができたのでpush,fetchとかの確認をする
多分おそらくきっとネット経由関連のコマンドはあんまり用意されてない?
tigと同じような感じなのかな
:Gina push
とすると内部的に:Gina! push
が呼ばれるらしく、内部的に素直にgitが呼ばれるぽい
fetchも同様
これだと面倒なのでキーバインドとかを設定するのが良さげ
VSCodeのgit graphよろしく、グラフ表示してswitch、mergeとかしたい
まずグラフ表示に:Gina log --graph --all
を使用する
こんな感じに専用のバッファにそれっぽく表示される
ここは普通のgit log --graph --all
の表示と変わらない
この状態でa
を入力すると†アクション†待機するようになり(コマンドラインにaction:
のプロンプトが表示)
対応するアクションを入力する(このときTab補完が効く)
例えばマージしたい時は対象のコミットにカーソルをあわせてa
とした後にcommit:merge
を選択する
mergeはcommitのアクショングループになってるみたい
このあたりの操作は:h gina-usage-action``:h gina-actions-commit
とかを参照する
このグラフのformatはgina.vimだと指定できないが、gin.vim(gina.vimの後継)なら指定できるみたい
gina.vimに慣れたらgin.vimも使ってみよう