ディレクトリスタックを zsh 間で共有してみよう
zsh を hack して、ディレクトリスタックを zsh 間で共有できるようにしてみました。
# 長い間お蔵入りになっていたネタを引っぱりだしてきました。
zsh を使っている方の多くは、zsh と GNU 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