Gitにls-tree
というサブコマンドがあったのを知ったのでメモ。
Terminal
$ git ls-tree -dr --name-only --full-name --full-tree HEAD
リポジトリ内の全ディレクトリが表示できる。っぽい。速い。
Terminal
$ git rev-parse --show-toplevel
でリポジトリのルートディレクトリの絶対パスが取得できるので、
.bashrc
peco-cd() {
cd "$(git ls-tree -dr --name-only --full-name --full-tree HEAD | sed -e "s|^|`git rev-parse --show-toplevel`/|" | peco)"
}
とか書いて
Terminal
$ peco-cd
でやったーって感じになる。
ターミナルだけじゃなくてunite.vimでもdirectory_rec/async
の代わりに使いたい感じだ( ˘ω˘)