LoginSignup
9

More than 3 years have passed since last update.

僕のソース管理術

Last updated at Posted at 2016-07-28
1 / 20

GHQ+peco

僕のソース管理術


pecoってなに?

  • 行をインクリメントサーチして、結果を返す
  • CLI
  • Goで作られてる
  • percolの亜種

えっ?なにがいいのそれ?

利点が文章では伝わりにくいので


peco install

ここからダウンロードできる
Releases · peco/peco https://github.com/peco/peco/releases

# mac
% brew install peco

# 他
% cd /usr/local/src
% wget https://github.com/peco/peco/releases/download/v0.3.3/peco_linux_amd64.tar.gz
% tar -C /usr/local/bin -xzf peco_linux_amd64.tar.gz

例) % ls -al | peco

絞込みながら、ファイル一覧が見て取れる

inline


応用例: history search

とりあえず、.bashrcにコピペ
『 bind '^r'』= Ctrl-R

% cat >> .bashrc
function peco-select-history() {
    typeset 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 redisplay
}
zle -N peco-select-history
bindkey '^r' peco-select-history

うろ覚えなコマンドとか探すの便利!!
これは、life-changing!

inline


応用例: ファイル検索

vimで階層の深いファイル開きたい時とか便利!

inline


GHQ


GHQってなに?

ソース管理ツールです!!


その前にGoのお作法

## コードのチェックアウト方法
% go get github.com/motemen/ghq

$GOPATH
|-- src/
|   `-- github.com/
|       `-- motemen/
|           `-- ghq/
|-- bin/
     `-- ghq

ファイル管理体型

  • % export $GOPATH=$HOME
  • 自分は、go getですべてのソースを$GOPATH/srcに 集約管理してます
  • $GOPATH/src/domain/user/reposname
    • github.com/motemen/ghq
    • stash.example.com/awesome-app/awesome-app

ここでGHQの設定

cat >> ~/.gitconfig
[ghq]
  root = ~/src

GHQコマンド

すると、~src/に並んでいるリポジトリリストが!

% ghq  list | head
bitbucket.org/mprasil/docker_dokuwiki
ghe.exmaple.com/awesome_tool/awesome_api.git
ghe.exmaple.com/awesome_tool/awesome_batch.git
ghe.exmaple.com/awesome_tool/awesome_core.git
ghe.exmaple.com/awesome_tool/awesome_filter.git
ghe.exmaple.com/awesome_tool/awesome_flume.git

GHQ list [query]

検索も可

% ghq list awesome
ghe.exmaple.com/awesome_tool/awesome_api.git
ghe.exmaple.com/awesome_tool/awesome_batch.git
ghe.exmaple.com/awesome_tool/awesome_core.git
ghe.exmaple.com/awesome_tool/awesome_filter.git
ghe.exmaple.com/awesome_tool/awesome_flume.git

GHQ+pecoの設定をzshrcへ

cat >> ~/.zshrc
function peco-src () {
    local selected_dir=$(ghq list --full-path | peco --query "$LBUFFER")
    if [ -n "$selected_dir" ]; then
        BUFFER="cd ${selected_dir}"
        zle accept-line
    fi
    zle clear-screen
}
zle -N peco-src
bindkey '^T' peco-src

GHQ+peco

inline


inline


enjoy!

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
9