パッケージ間を簡単にディレクトリ移動
mcdについて
コマンドラインからよく実行するコマンドといえばcd(ディレクトリ移動)ではないでしょうか。 mcdコマンドを使えば、Milkodeデータベースに登録したパッケージの間を簡単に移動することが出来ます。
# ディレクトリ移動(パッケージ名を全て打つ必要はない) $ mcd ruby /Users/auser/.milkode/packages/zip/ruby-1.9.2-p290 $ cd doc/rake/example/ # パッケージルートに戻る $ mcd /Users/auser/.milkode/packages/zip/ruby-1.9.2-p290
インストール
milk mcd
で表示されたテキストを.bashrc等に貼付けて下さい。
- Windows環境の場合はFor Cygwin以下を貼付けて下さい。
$ milk mcd # Copy to '.bashrc'. mcd() { local args="$1 $2 $3 $4 $5 $6 $7 $8 $9" local dir=`milk dir --top $args` if [ "$dir" = "" ]; then echo "fatal: Not found package: $1 $2 $3 $4 $5 $6 $7 $8 $9" elif [ "$dir" = "Not registered." ]; then echo "fatal: Not a package dir: `pwd`" else cd $dir pwd fi } # For Cygwin. mcd() { local args="$1 $2 $3 $4 $5 $6 $7 $8 $9" local dir=`milk.bat dir --top $args` if [ "$dir" = "" ]; then echo "fatal: Not found package: $1 $2 $3 $4 $5 $6 $7 $8 $9" elif [ "$dir" = "Not registered." ]; then echo "fatal: Not a package dir: `pwd`" else cd $dir pwd fi }
コピーしたらsource
してインストール完了です。
$ source ~/.bashrc
使い方
パッケージ名を引数に指定するとディレクトリ移動します。
$ mcd a_pro /Users/auser/Documents/a_project
引数を複数個渡してパッケージ名を絞り込むことが出来ます。
$ mcd milk 0.2.9 # milkode-0.2.4 と milkode-0.2.9 が混在している時に便利
/opt/local/lib/ruby/gems/1.8/gems/milkode-0.2.9
引数無しで実行することでパッケージルートに移動することが出来ます。
$ pwd /Users/auser/.milkode/packages/zip/ruby-1.9.2-p290/doc/rake/example $ mcd /Users/auser/.milkode/packages/zip/ruby-1.9.2-p290
パッケージ外でmcdするとエラーになります。
$ cd ~/ $ mcd fatal: Not a package dir: /Users/ongaeshi
Emacsのshell-modeでの制約
Emacsのshell-modeでmcdを実行するとカレントディレクトリが追従されないことがあります。
そのような時はM-x dirs
でリセットしましょう。