Coc.nvimを触ってみようアドベントカレンダー 17日目 – coc-git

とっても楽しいcoc.nvimを触ってみようというアドベントカレンダーです。17日目はcoc-git。GitHub及びGitLabを使っている場合に、少し操作がお手軽になります。
2021.12.17

Coc.nvimを触ってみよう Advent Calendar 2021 17日目です。

今回は coc-git です。

coc-git について

gitリポジトリのステータス取得及び操作が可能になるcoc拡張です。GitHub及びGitLabのAPIキーを使うことでリモートリポジトリの情報取得等も可能になります。

coc-git をインストールする

vimを起動した状態で以下のコマンドを実行します。

:CocInstall coc-git

GitHub及びGitLabの操作をする場合は、.envrc にAPIキーを設定しておきます。

echo "export GITHUB_API_TOKEN=PERSONAL_ACCESS_TOKEN" >> .envrc
echo "export GITLAB_PRIVATE_TOKEN=PERSONAL_ACCESS_TOKEN" >> .envrc
direnv allow .

使ってみる

コミットログの表示、衝突時の解消、プッシュ等のファイル編集で発生するであろう操作が可能です。

vimのステータスライン設定

gitのステータスを表示可能です。lightlineのケースはREADMEに記載があります。

lualineの場合は表示させたいセクションによって設定箇所が変わってきますが、指定する値は変わらず g:coc_git_status 及び g:coc_git_blame の2択です。

  sections = {
    lualine_a = {'g:coc_git_blame', 'g:coc_status', 'bo:filetype'},
    lualine_b = {'g:coc_git_status', 'branch', 'diff',
                  {'diagnostics', sources={'coc'}}},

GitHub Issueの選択

Open状態のGitHub Issueを指定してアクセス可能です。:CocList にて issues を指定した上で、Issueを選択します。若干操作が多めになるため、以下の様に init.vim で設定しておくことで Spacei で即一覧表示を出すことも可能です。

nnoremap <silent> <space>i  <C-u>CocList --normal issues<CR>

開きたいIssue上でEnterを押すと、ブラウザで該当Issueが表示されます。

Issueが登録されていない場合は以下の出力になります。

他にも幾つものコマンドがありますが、:CocCommand git.browserOpen はGitHubがshell経由でのアクセスに対応していません。

あとがき

ファイルの編集にて発生しうるgitの操作についてはカバーしていますが、pull等のリポジトリそのもののアップデート操作についてはノータッチです。個人的にはIssueを開く手続きが非常にお手軽になった点で導入する価値を感じました。