ディレクトリスタックを zsh 間で共有してみよう

zsh を hack して、ディレクトリスタックを zsh 間で共有できるようにしてみました。
# 長い間お蔵入りになっていたネタを引っぱりだしてきました。


zsh を使っている方の多くは、zshGNU Screen と組み合わせて利用されているケースが多いと思います。そして、zsh のコマンド履歴を、GNU Screen の中で立ち上げた zsh 間で共有するように設定している方も多いのではないでしょうか。コマンド履歴を共有できる便利さを知っている方なら、「ディレクトリスタックも共有してみたい!」と一度は考えた方もおられるかもしれません。しかしながら、従来の zsh では、zsh 間でディレクトリスタックを共有することはできませんでした。そのような設定項目はありませんでした。そこで、zsh でコマンド履歴が zsh 間で共有できるのと同じ発想で、ディレクトリスタックも共有できれば便利ではないかと思い、zsh を hack して、それを実現してみした。


まだ、最低限の機能しか実装していません。多分、バグもあります。ファイルベースでディレクトリスタックの内容を共有するのですが、zsh 間でファイルの整合性を保証するような実装にはなっていません。つまり、ファイルの排他処理はまだできていません。


興味のある方は一度試してみて下さい。
以下のコマンドで、実験的にディレクトリスタックを共有できるようにした zsh をインストールできます。--enable-share-dirstack オプションを指定することで、ディレクトリスタックの共有が有効になります。必要に応じて、他のオプションを有効にして下さい。

% cd /usr/local/src
% wget http://nchc.dl.sourceforge.net/sourceforge/zsh/zsh-4.3.4.tar.gz
% tar zxvf zsh-4.3.4.tar.gz
% cd zsh-4.3.2
% wget http://vaio.redirectme.net/patch/zsh-4.3.2-dirstack-sharing.20071216.patch
% patch -p0 < zsh-4.3.2-dirstack-sharing.20071216.patch
% ./configure --prefix=/usr/local/zsh_hack --enable-share-dirstack
% make
% sudo make install