CDPATH(1/2)

「MacVim」って「cdpath」をうまく定義してあげると、「:cd」コマンドでとても上手にジャンプしてくれるんですね。
ということで、「CDPATH」という環境変数のお話。

使っているシェルによっても「CDPATH」の使われ方はいろいろで、シェル変数「cdpath」が存在するシェルもあるし、そもそも環境変数が使われていないシェルもあるし。
よく辿るディレクトリが決まっていれば、それをそのまま定義すれば良いのだと思うのですが、それでは面白くありませんよね。

なので、折角入れたのですから「autojump」のデータベースを使って、起動する度にホットなディレクトリを自動設定する事にします。
そのためにまず、「autojump」データベースのトップ20を標準出力に書き出すスクリプトを作る事にしました。

#!/bin/sh
# autojumpのDBから最も利用頻度の高い20個のディレクトリ列を生成
# $HOMEは最優先
# autojump自身は除外

AJPATH=$HOME/.local/share/autojump
case $1 in
    -s) SEPA=":" ;;
    -c) SEPA=" " ;;
     *) SEPA="," ;;
esac

cat $AJPATH/autojump.txt | awk -v a="$AJPATH" -v s="$SEPA" -v h="$HOME" \
    'BEGIN { p=h; c=0 } \
    !/a/ && !/h/ { p = p s $2; c++; if( c >= 20 ) exit } \
    END { print p }'

これをファイル名「cdpath_helper」として、どこかパスの通っているところ、例えば「~/bin」にでも保存してください。

このスクリプトはオプションを受け取ります。
・「-s」の時は「:」で各ディレクトリを繋げます。
・「-c」の時は「 」(空白)で各ディレクトリを繋げます。
・それ以外の時は「,」で各ディレクトリを繋げます。

「awk」が古いとダメかも・・・
その場合は、Homebrewで「gawk」をインストールしてくださいな。

つづく

 

CDPATH(1/2)」への1件のフィードバック

  1. ピンバック: CDPATH | VivaFan通信

コメントをどうぞ