Pecoというのを使ってみます。
Pecoのインストール
$ go get github.com/peco/peco $ cd $GOPATH/src/github.com/peco/peco $ go build cmd/peco/peco.go $ mv peco.exe $GOPATH/bin $ peco --version peco version v0.5.1
go getの仕組み
go getの仕組みは、git cloneだそうです。$GOPATH/binにexeファイルが入ってますが、srcは、gitリポジトリの内容がそのまま入っていて、フォルダが、github.com/hoge/hoge.gitだとすれば、$GOPATH/src/github.com/hoge/hogeというふうになっております。なので、$GOPATH/src/github.com/hoge/で、git cloneすると同じことがおこると思います。しかし、go getにガチで対応しているものは、go get github.com/hoge/hogeとやるだけで、$GOPATH/binにexeファイルが格納されるので、恐らくgo getというのは、git clone後にgo buildしてその結果を$GOPATH/binに移動させているのではないかと思いました。今度go getにガチで対応しているものとしていないものの違いを調べてみたいと思います。pecoはガチ対応じゃないので、buildして移動したら使えるようになりました。
このやや独特のフォルダ構成に対応したパッケージ管理ツールが、ghqだそうです。ちなみに今、みんなのGOという本を読んでます。ghqとpecoを使うと便利だそうです。この便利さをvim上で実現したいです。
ghqのインストール・設定
go getでexeファイルも作成されました。
$ go get github.com/motemen/ghq
設定
下記のようにgit configにghq.rootを設定します。
$ git config --global ghq.root $GOPATH/src
ghqの使い方
下記のような感じで使います。listでリポジトリのリストが表示されます。getでフォルダ構造を維持しながら、なんのリポジトリでももってこれます。別にここまでして、$GOPATH/srcにGOと無関係のリポジトリまで格納する必要があるのかよく分からないんだけど便利な気もする。
$ ghq list $ ghq get
ghqからのpeco
$ ghq list -p | peco
これで、リポジトリリストをペコで検索できます。本だと、ここで選んだ結果に対してcdで移動させてました。ただ、これwindows10のgit bashだと使えないっぽくて、コマンドプロンプトだと動きました。ghqはgit bashで使えるけど。peco便利だな。