LoginSignup
64
56

More than 5 years have passed since last update.

zshにpeco + ghqを導入したメモ

Last updated at Posted at 2014-08-17

流行りからだいぶ遅れた感あるが、peco + ghqをMacに導入したのでメモっとく。

インストール

homebrewでインストール。

$ brew tap peco/peco
$ brew install peco

$ brew tap motemen/ghq
$ brew install ghq

設定

GOPATH

$HOMEに設定してある。

~/.zshrc
export GOPATH=/User/Yusuke

go getしたら~/src以下にライブラリとか入ってく。

ghqのパス設定

GOPATHと揃える。

$ git config --global ghq.root ~/src
~/.gitconfig
[ghq]
  root = /Users/Yusuke/src

これで、ghq get <Githubのレポジトリ>で、~/src/github.com/以下にレポジトリがクローンされる。
例えば、ghq get https://github.com/rails/railsをすると、~/src/github.com/rails/rails/という感じでディレクトリができる。

pecoを使ったコマンド

コマンド履歴を出して検索・絞り込みするやつ

~/.oh-my-zsh/custom/my.zsh
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に渡すと、レポジトリ名でインクリメンタルサーチできるので利用。

~/.oh-my-zsh/custom/my.zsh
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の設定を書いておける。

~/.config/peco/config.json
{
  "Keymap": {
    "M-v": "peco.ScrollPageUp",
    "C-v": "peco.ScrollPageDown"
  },
  "Style": {
    "Selected": ["underline", "on_green", "black"],
    "Query": ["red", "underline"]
  }
}

おわり

そういうわけで、レポジトリの管理は~/src以下で行うことにしてみました。

64
56
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64
56