パッケージ間を簡単にディレクトリ移動

From Milkode

Jump to: navigation, search

Contents

[edit] mcdについて

コマンドラインからよく実行するコマンドといえばcd(ディレクトリ移動)ではないでしょうか。 mcdコマンドを使えば、Milkodeデータベースに登録したパッケージの間を簡単に移動することが出来ます。

# 登録されたパッケージ一覧
$ milk list
a_project
milkode-0.2.9
ruby-1.9.2-p290

# ディレクトリ移動(パッケージ名を全て打つ必要はない)
$ 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

[edit] インストール

milk mcdで表示されたテキストを.bashrc等に貼付けて下さい。

  • Windows環境の場合はFor Cygwin以下を貼付けて下さい。
  • zsh用は使っていないため作れませんでした・・、作った方がいましたらmcdコマンドに追加しますので是非教えて下さい。
$ 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
.
.
.
 
# For Cygwin.
mcd() {
    local args="$1 $2 $3 $4 $5 $6 $7 $8 $9"
    local dir=`milk.bat dir --top $args`
.
.

.bashrc

# プロンプト表示
PS1="$ "
 
# history設定
export HISTSIZE=50000
export HISTFILESIZE=50000

+# mcd
+mcd() {
+    local args="$1 $2 $3 $4 $5 $6 $7 $8 $9"
+    local dir=`milk dir --top $args`
+ 
+    if [ "$dir" = "" ]; then
+.
+.
+.

コピーしたらsource ~/.bashrcしてインストールは完了です。

$ source ~/.bashrc 

[edit] 使い方

パッケージ名を引数に指定するとディレクトリ移動します。

$ 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

引数無しで実行することでパッケージルートに移動することが出来ます。

$ mcd ruby
/Users/auser/.milkode/packages/zip/ruby-1.9.2-p290
$ cd doc/rake/example
$ 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

[edit] Emacsのshell-modeでの制約

Emacsのshell-modeでmcdを実行するとカレントディレクトリが追従されないことがあります。 そのような時はM-x dirsでリセットしましょう。

Personal tools