さいきんのターミナル開発環境
会社の同期で毎週勉強会をやっていて、自分が発表する番だったので最近使ってるCLIツールについてまとめてみた。
hub
プルリクエスト作成などGithub上での作業をコマンドラインから。会社ではGH:Eでプルリクベースの開発スタイルなので毎日使っている。最近はhubのGo実装でghというのもあるみたいだけど、こっちはまだ試していない。
tig
コミットログ等の閲覧を楽にしてくれる。仕事ではSourceTreeも使ってるんだけど、やっぱりメインの作業はターミナル上だし、log・diff・stashあたりがgitコマンドよりはるかに見やすくて手放せない。
~/.tigrc に以下のような設定をしておけば、historyで選択しているcommitのGithubページをすぐ開くこともできて便利。
tigで見ているコミットをgithubで開く - Qiita
peco
peco/peco 最近話題なpercolのGo実装。今までzawを入れて使ってたんだけど、pecoやpercolはシンプルにパイプで渡された入力を絞り込むので汎用的なイメージ。
自分はps
で出したプロセス一覧をpecoで絞り込んでkillする設定とか入れている。
function peco-proc () { ps ax -o pid,lstart,command | peco --query "$LBUFFER" | awk '{print $1}' | xargs kill zle clear-screen } zle -N peco-proc bindkey '^x^p' peco-proc
tmuxinator
tmuxのウインドウ・ペイン構成を瞬時に再現できる。
仕事ではだいたいtmuxのペインを3分割して複数のリポジトリrootを開いているので、~/.tmuxinator/work.ymlにこんな設定を書いてある。
name: work root: ~/ windows: - window1: layout: main-vertical panes: - cd ~/Documents/github/repo1 - cd ~/Documents/github/repo2 - cd ~/Documents/github/repo3
あとはmux work
でペインが3分割されて、それぞれで3つのリポジトリにcdした状態を再現できる。
ghq
Github等からcloneしてきたリポジトリを手軽に管理できる。
ghq get git@github.com:gin-gonic/gin.git
みたいにすると、`~/.ghq
下にcloneしたリポジトリを置いてくれる。ghq list
とすればcloneしたリポジトリの一覧表示もできるので、pecoに結果をパイプすれば大量のリポジトリも素早く絞込める!!
~/Documents/github-repos
というディレクトリのゴミの山から目当てのリポジトリを頑張って探すのが日常化していたので、これを導入してすごく捗ってる。
- ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば (Poetry, Writing and Contemplation)
- ghq + peco/percol - Tatsuhiko Miyagawa's blog
おわり
勉強会以外でも会社で話してると、ふだんの作業をCUI環境でやってはいるんだけどGit操作はgitコマンドのみ、という人が結構多かったので情報役に立ったっぽい。