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

vim から git 操作できる denite の source を作りました

$
0
0

はじめに

この記事は 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 関連操作のランチャーが立ち上がるイメージです。

デフォルトで statusbranchlogfetchが表示されており、場合によって下記のようなメニューが追加で表示されます。

  • 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を起動すると、statusbranchlogpushなどのメニューが表示されます。
    • statusからメニューに戻りたい場合は denite.nvimrestore_sourcesマップから行えます。これが激しく便利です。
  • なんと vim-plugin なのに doc がないです。
    • 現状、リポジトリの README.md に説明がちょろっとあるだけです。
    • これはボコボコにされかねない由々しき事態なので時間を見つけて doc を書きます。(本当に vim 周りのエコシステムはドキュメントが充実していて素晴らしいなと思います。思ってはいます。。。)

スクショ

DeniteGitto gitto

DeniteGitto gitto実行後の状態
スクリーンショット 2019-05-17 14.44.40.png

DeniteGitto gitto -> status

statusを選択した状態。
denite.nvimの機能である restore_sourcesを実行すると前の画面に戻れる。

スクリーンショット 2019-05-17 14.46.20.png

statusから変更差分を表示

デフォルトアクションが diffになっているので、<CR>で別タブで vimdiff が表示される。

スクリーンショット 2019-05-17 14.48.15.png

statusから commitアクションを実行

statusの一覧からコミットしたい対象を選択して commitアクションを実行する。

スクリーンショット 2019-05-17 14.49.21.png

免責事項

ご利用の際は自己責任でお願いします :bow:


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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