「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 | VivaFan通信