zshのautojumpを設定したらたしかに幸せになれた

シェルの10-20%のコマンドは cd らしい

ってどっかで聞いた。なので cd を補完するってすごい効率上がっていいよねって話。で、偶然はてブに流れてきた zsh で使える autojump ってのをいれてみた*1。ディレクトリ補完系はけっこう zsh ではいろいろあるらしいけど、今回は autojump。 z ってのが Python に依存しなくていいよって記事もあったけど、手元の環境だと 300ms くらいモタつく感じがして嫌だったし*2、そもそも Python 2.6 以上の環境なんて今は当たり前だし、そもそも Python 2.6 がはいってないディストリビューション(CentOS 5だっけ)なんかをつかわなきゃいけない環境ってたぶん本番環境だし、そんな環境にそもそも zsh とかいれらんないだろうから問題ない*3
参考::zsh使いなら効率改善のため知っておきたいAUTOJUMP - Glide Note - グライドノート
参考::
zsh使いなら効率改善のため知っておきたいAUTOJUMPをhomebrewで入れる - キャベツ1かじり

参考::autojumpよりz.shのほうがPythonなしで動いて良いよ | この先生きのこるには

結局 Mac でも Ubuntu でもソースからいれた

Mac なら Brew からいれられるんだけど、なんか候補を echo するだけでうまく cd してくれなかったりよくわかんなかったので、結局 github から直接 clone した

# まずは clone
git clone git://github.com/joelthelion/autojump.git
cd autojump
# --zsh オプションをつけてインストール
# sudo つけないときは --local でやんないといけないっぽい。面倒なので sudo で
# Mac の場合 sudo mkdir /etc/profile.d しましょう
sudo ./install.sh --zsh
# Installing zsh version of autojump to /usr ...

# sed: 1: "./bin/autojump": invalid command code .
# ./bin/icon.png -> /usr/share/autojump/icon.png
# ./bin/jumpapplet -> /usr/bin/jumpapplet
# ./bin/autojump -> /usr/bin/autojump
# ./docs/autojump.1 -> /usr/share/man/man1/autojump.1
# ./bin/_j -> /usr/share/zsh/site-functions/_j
# ./bin/autojump.sh -> /etc/profile.d/autojump.sh
# ./bin/autojump.zsh -> /etc/profile.d/autojump.zsh

# Please add the line to ~/.zshrc :

# 	[[ -s /etc/profile.d/autojump.zsh ]] && source /etc/profile.d/autojump.zsh

# You need to run 'source ~/.zshrc' before you can start using autojump.

# なんかこれインストール時にちゃんと貼れているようなきがするのだけど、いちおうおまじないとしてこのとおりにしている
# と思ったらこれ今気づいたけど /usr/local/share/zsh ではなくて /usr/share/zsh にしてるのがいけないのかな……
sudo cp ~/autojump/bin/_j /usr/local/share/zsh/site-functions/
# .zshrc に追記(インストール時に書いてある)
[[ -s /etc/profile.d/autojump.zsh ]] && source /etc/profile.d/autojump.zsh

で、ログアウト/ログインしたら反映されるという寸法(source .zshrc じゃだめっぽい)。まあでもこれだけでできるんだから簡単ですね!

わーいつかうよー

# 多く記録されているところから補完
j[Tab]
# j __1__/Users/atasatamatara/Dropbox
#   __2__/usr/local/Cellar
# などなど表示……
# 絞込み補完
j D[Tab]
# Document
# Dropbox
# Desktop
# Documents
# stat の表示
j --stat

幸福が実現ですね!!!!どうせ git clone して install して cp して .zshrc に1行かくだけ。アンインストールも簡単だし、入れない手はありませんね!

*1:bash でもつかえるっぽいけど

*2:たぶん pwd を add している部分が重い気がする

*3:あと本番のデプロイなんて手作業でやるほうが間違っているよねって話もあるんだけど、まあそれは別の話