はじめに
この記事は denite.nvim
向けの git ソースを作ったのでそれの説明を行う記事です。まだまだですが基本的な操作はだいぶできるようになってきたので宣伝です。
対象読者
- vim ユーザ
- denite.nvim を利用している(or これから利用する)
- vim からの git 操作にめんどくささを感じている
- そして、その解決を「
denite.nvim
の UI でやりたい!」と思っている
- そして、その解決を「
前提
vim における git 関連プラグインは非常に数が多く、denite-gitto よりも高機能で使いやすいものはたくさんあります。(gina.vim とかほんとすごいです。)
また、denite.nvim の UI で git 操作できる別プラグインも既にあったりします。(じゃあなんで作ったの?って話なんですが。。。git 操作ってめちゃくちゃやるので、自分好みの UI がよかったのかもしれません。)
インストール
お好みのプラグインマネージャでインストールしてください。
下記は dein.nvim を利用している前提のサンプルです。
call dein#add('Shougo/denite.nvim') " denite.nvim 本体。v3 以降が必須。
call dein#add('hrsh7th/vim-gitto') " git 関連操作を提供するプラグイン
call dein#add('hrsh7th/vim-denite-gitto') " denite.nvim の source
利用方法
下記のマッピング一つだけで基本的な操作は全て可能です。git 関連操作のランチャーが立ち上がるイメージです。
デフォルトで status
branch
log
fetch
が表示されており、場合によって下記のようなメニューが追加で表示されます。
- push(未 push なコミットがある場合)
- pull(リモートのほうが進んでいるとわかった場合)
- set-upstream-to(upstream が未設定で同名のリモートブランチがある場合)
nnoremap git :<C-u>DeniteGitto gitto<CR>
※ もちろん、個別に nnoremap gits :<C-u>DeniteGitto gitto/status<CR>
などと書くこともできます。
その他
.git
の検出はDeniteGitto
を実行したバッファから行われます。- この挙動を変更したい場合は
g:gitto#config.get_buffer_path
を上書きすれば可能です。
- この挙動を変更したい場合は
DeniteGitto gitto
を起動すると、status
branch
log
push
などのメニューが表示されます。status
からメニューに戻りたい場合はdenite.nvim
のrestore_sources
マップから行えます。これが激しく便利です。
- なんと vim-plugin なのに doc がないです。
- 現状、リポジトリの README.md に説明がちょろっとあるだけです。
- これはボコボコにされかねない由々しき事態なので時間を見つけて doc を書きます。(本当に vim 周りのエコシステムはドキュメントが充実していて素晴らしいなと思います。思ってはいます。。。)
スクショ
DeniteGitto gitto
DeniteGitto gitto
-> status
status
を選択した状態。denite.nvim
の機能である restore_sources
を実行すると前の画面に戻れる。
status
から変更差分を表示
デフォルトアクションが diff
になっているので、<CR>
で別タブで vimdiff が表示される。
status
から commit
アクションを実行
status
の一覧からコミットしたい対象を選択して commit
アクションを実行する。
免責事項
ご利用の際は自己責任でお願いします