さいきんのターミナル開発環境

会社の同期で毎週勉強会をやっていて、自分が発表する番だったので最近使ってるCLIツールについてまとめてみた。

hub

github/hub

プルリクエスト作成などGithub上での作業をコマンドラインから。会社ではGH:Eでプルリクベースの開発スタイルなので毎日使っている。最近はhubのGo実装でghというのもあるみたいだけど、こっちはまだ試していない。

GitHubユーザーのためのhubコマンド - Qiita

tig

jonas/tig

コミットログ等の閲覧を楽にしてくれる。仕事ではSourceTreeも使ってるんだけど、やっぱりメインの作業はターミナル上だし、log・diff・stashあたりがgitコマンドよりはるかに見やすくて手放せない。

~/.tigrc に以下のような設定をしておけば、historyで選択しているcommitのGithubページをすぐ開くこともできて便利。

tigで見ているコミットをgithubで開く - Qiita

f:id:horimislime:20140704003157g:plain

peco

peco/peco 最近話題なpercolのGo実装。今までzawを入れて使ってたんだけど、pecoやpercolはシンプルにパイプで渡された入力を絞り込むので汎用的なイメージ。

f:id:horimislime:20140704003405g:plain

自分は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

tmuxinator/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

motemen/ghq

Github等からcloneしてきたリポジトリを手軽に管理できる。

ghq get git@github.com:gin-gonic/gin.git みたいにすると、`~/.ghq 下にcloneしたリポジトリを置いてくれる。ghq list とすればcloneしたリポジトリの一覧表示もできるので、pecoに結果をパイプすれば大量のリポジトリも素早く絞込める!!

~/Documents/github-repos というディレクトリのゴミの山から目当てのリポジトリを頑張って探すのが日常化していたので、これを導入してすごく捗ってる。

おわり

勉強会以外でも会社で話してると、ふだんの作業をCUI環境でやってはいるんだけどGit操作はgitコマンドのみ、という人が結構多かったので情報役に立ったっぽい。

tig+hub、peco+ghq.. みたいにCLIツールを色々導入すると組み合わせの相乗効果が得られるのも良いですね