ghq と peco を使い始めた

今更ながら ghq と peco を使い始めた。

きっかけは以下の記事。

これまでは ~/ruby~/go のようにホームディレクトリ以下で管理していたローカルリポジトリを、すべて ghq を使って ~/.ghq 以下で管理することにした。
ghq get-p をつけないと SSH で clone してくれないので、設定ファイルにデフォルトで SSH プロトコルを選択する PR を作ろうかと思ったが、Git の url.<url>.pushInsteadOf, url.<url>.insteadOf で置き換えられることがわかったので、その問題は解決された。

参考: ghq 最近の変更とこれから - 詩と創作・思索のひろば

[url "git@github.com:"]
  pushInsteadOf = https://github.com
  insteadOf = https://github.com

ghq の導入だけだと改善した感がなかったので、一緒に紹介されている peco も導入した。これがすごかった。
リポジトリ とりあえず Mac 環境では .zshrc に以下を追加して半日、既に以前の状態に戻れる気がしない。

alias repo='ghq list -p | peco'

function editrepo() {
  local r
  r=$(repo)
  if [ -z "$r" ]; then
    return
  fi
  cd ${r} && atom ${r}
}

repo コマンドで ghq で管理しているリポジトリのパスを選択して出力できる。本題は editrepo の方で、こちらは ghq で管理しているリポジトリのルートへ移動し、Atom で開く。これまで zsh の補完と履歴と手癖でこの辺の作業をなんとかこなしていた、スムーズかつ間違えにくくなった。

peco はまだまだユースケースがありそうなので、思いつき次第 .zshrc に追記していきたいところ。