Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

流行りからだいぶ遅れた感あるが、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以下で行うことにしてみました。

ysk_1031
Software Engineer at Atrae, Inc. iOS, Android, Webの開発など色々やっています. 最近はyentaというアプリを作ったりしてます
atrae
People Techカンパニーとして、転職サイトGreen, ビジネスマッチングアプリyenta, 組織改善プラットフォームwevoxなどのサービスを運営。全ての社員が誇りを持てる組織と事業の創造にこだわり、関わる人々がファンとして応援したくなるような魅力ある会社であり続けることを目指しています。
https://atrae.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away