ghとfzfを組み合わせて使ってみた

ghコマンドが1.0になったのを機にhubコマンドをやめて、ghコマンドに乗り換えました。
hubに特に不満もなかったのですが、ghの方が今後メインで機能追加とかいろいろと発展しそうな雰囲気を感じたので、今回乗り換えました。

ただ、個人的な使い方としては

*issueとpull requestの一覧を見る
* 指定したissueをブラウザで開く
* 指定したpull requestをブラウザで開く
* リポジトリの作成

ぐらいで、この辺りが快適になれば満足です。
特に特定のissueやらPRやらを見る際に絞り込み検索してブラウザで開ければ、それなりに快適になりそうな気がしたので、fzfと組み合わせてみました。

この記事ではその際にやったことをまとめてます。

前提としている環境

* mac os 10.15
* zsh
* ghはインストール済み

issueとpull requestを一覧表示する為のghコマンド側にエイリアスを設定

以下のようなエイリアスを設定しました。​

is: issue       issueを省略したいのでisした。例: gh is view <issue-no>で指定issueを表示
isl: issue list issueの一覧表示。例: gh isl
prl: pr list    pull requestの一覧表示。例: gh prl

ちなみにghではエイリアスは以下のように設定します。

gh alias set <alias-name> "<command>"

特定のissueを参照する設定

fzfと連携して一覧から選択したいこともあり、shell(zsh)側のエイリアスを設定しました。

~/.zshrc

alias -g IS='`gh issue list | fzf | head -n 1 | cut -f1`'
alias ghi='(){gh issue view $1 -w}'

ghi <issue-no>と打ち込むことで指定したissueをブラウザで開きます。
ghi ISと打ち込むことでfzfが起動し、fzfで選択したissueをブラウザで開きます。
言葉だと伝わらないかもしれないので、実際にissue一覧から選択してブラウザで参照する様子をgifアニメにしてみました。

画像1

特定のpull requestを参照する設定

.zshrcに以下のようなエイリアスを2つ追加しました。

alias -g PR='`gh pr list | fzf | head -n 1 | cut -f1`'
alias ghp='(){gh pr view $1 -w}'

上で記述したissueのエイリアスのPR版です。
ghp <pullrequest-no>と打ち込むと指定したissueをブラウザで開きます。
ghp PRと打ち込むとfzfが起動し、選択したpull requestをブラウザで開きます。



この記事が気に入ったらサポートをしてみませんか?