zsh補完関数の書き方をいろいろ調べていたら、autojump-zshというパッケージを発見。
気になって使ってみたらめちゃくちゃ便利で、久々に感動したので紹介。
autojumpはcdコマンドの拡張的なコマンドで、移動したディレクトリを記録し、
ディレクトリ間を行ったり来たりするときに絶大な効果を発揮します。
公式wikiに書いてあるよう
コマンドライン作業の10〜20%はcdコマンドのため、ディレクトリ移動の動作が
改善すると必然的に作業効率も向上するということです。
実際私もautojumpを使い出してから、作業効率が上がりました。
それでは早速autojumpの説明を。動作検証環境は下記です。
- Mac OSX 10.7.3
- Fedora 16
- Scientifix Linux 6.1
導入方法
autojumpを利用するにはpython2.6か3.0以上が必要です。
yumやbrewでも導入可能ですが、その場合はzsh補完関数_jファイルを
自分で配置するあげる必要があります。
私は下記のようにソースから入れました。
1 2 3 4 5 | |
2012年3月3日追記 MacでBrewを使って導入する方法
1
| |
.zshrcに下記を追記。
1 2 3 4 | |
jでautojumpが動かない場合があるようなので、その場合はalias設定も追加。
autojumpのzsh補完関数の配置
autojumpは同梱されているzshの補完関数_jで真価を発揮するので、
補完関数を$fpathに配置。
$fpathの調べ方は下記のような感じで
1 2 | |
通常は
/usr/share/zsh/site-functions/や/usr/local/share/zsh/site-functions/
などになるかと思います。
私は下記のような感じで配置。
1
| |
exec zshでは、なぜかautojumpが有効にならないので、ログインし直した方が良いです。
利用方法
cdコマンドで移動するたび~/.local/share/autojump/autojump.txtにディレクトリ名と回数が記録され、
次回そのディレクトリに移動する際はjコマンドを用いて
1
| |
という感じで移動出来ます。
たとえば~/misc/hogehogeというディレクトリの場合、
1 2 3 | |
などディレクトリの一部だけ入力して移動でき、キー入力の回数が激減です。
ちなみにautojump出来るディレクトリのリストは
1
| |
で確認が出来ます。
使い始めは「ctrl+r ディレクトリ名とかで十分じゃん」とか「zshのディレクトリスタック使えば良いじゃん」
とか思ってたんですが、使い込むうちにautojumpだとカレントディレクトリとか移動先のディレクトリの
相対パスと絶対パスを意識しなくて良いことがわかり、何よりキー入力の数が格段に減るので、
今ではautojump無しの生活は考えられなくなりました。
autojumpを活用して作業効率を改善させましょう。