流行りからだいぶ遅れた感あるが、peco + ghqをMacに導入したのでメモっとく。
インストール
homebrewでインストール。
$ brew tap peco/peco
$ brew install peco
$ brew tap motemen/ghq
$ brew install ghq
設定
GOPATH
$HOME
に設定してある。
export GOPATH=/User/Yusuke
go get
したら~/src
以下にライブラリとか入ってく。
ghqのパス設定
GOPATHと揃える。
$ git config --global ghq.root ~/src
[ghq]
root = /Users/Yusuke/src
これで、ghq get <Githubのレポジトリ>
で、~/src/github.com/
以下にレポジトリがクローンされる。
例えば、ghq get https://github.com/rails/rails
をすると、~/src/github.com/rails/rails/
という感じでディレクトリができる。
pecoを使ったコマンド
コマンド履歴を出して検索・絞り込みするやつ
setopt hist_ignore_all_dups
function peco_select_history() {
local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi
BUFFER=$(fc -l -n 1 | eval $tac | peco --query "$LBUFFER")
CURSOR=$#BUFFER
zle clear-screen
}
zle -N peco_select_history
bindkey '^r' peco_select_history
これで、Ctrl + r
でコマンド履歴の補完候補がズラッと出る。インクリメンタルサーチ可能。1行目は同じコマンドを出さない設定。
ghqでクローンしてきたレポジトリへの移動が捗るやつ
ghq list
で、ghqでクローンしてきたレポジトリのパスが一覧で出る。これをパイプでpeco
に渡すと、レポジトリ名でインクリメンタルサーチできるので利用。
function peco-src () {
local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
if [ -n "$selected_dir" ]; then
BUFFER="cd ${selected_dir}"
zle accept-line
fi
zle clear-screen
}
zle -N peco-src
bindkey '^]' peco-src
Ctrl + ]
でghq管理下のレポジトリの補完候補が出るので、選択すれば一発で飛べる。
設定ファイルが汚くなるので、peco関連の設定はまとめて別ファイルに移すのが良さげ。。
pecoのキーマップ
~/.config/peco/config.json
にキーマップやstyleの設定を書いておける。
{
"Keymap": {
"M-v": "peco.ScrollPageUp",
"C-v": "peco.ScrollPageDown"
},
"Style": {
"Selected": ["underline", "on_green", "black"],
"Query": ["red", "underline"]
}
}
おわり
そういうわけで、レポジトリの管理は~/src
以下で行うことにしてみました。