2011年8月10日水曜日

LionのTerminalタイトルバーにProxy Iconを表示する

【症状】
しょの1
OS X Lionの新機能を紹介するページを見ると、Terminalのタイトルバーにアイコンがつき、アイコンドラッグでパスを渡せると宣伝されている。なのに、うちので試すとアイコンがない
しょの2
環境設定の「起動」でウィンドウやタブを「同じ作業ディレクトリ」で開く設定にしたのに、開かれない

【原因】
タイトルに作業ディレクトリ(カレントディレクトリ)を表示させていないと、アイコンは表示されず、作業ディレクトリのコピーも行えない仕様。

【対応】
タイトルに作業ディレクトリを表示させる。
~/.bash_profileに次の行を足す。
case $TERM in
  xterm*)
    PS1="\[\e]0;\u@\h: \w\a\]bash\$ "
    ;;
  *)
    PS1="bash\$ "
    ;;
esac

【効能】
・タイトルバーにアイコンが出現。右クリックで階層をたどると、Finderの同フォルダが開く("open ."コマンドと同じ)
・タブバー表示状態で
アイコンをタブバーの既存タブにドラッグ&ドロップすると、そこにcdする
アイコンをタブバーの空いた場所にドラッグ&ドロップすると、Terminalが開いてそこにcdする

【懸案事項】
・ターミナルを終了して開き直した時に列幅が2ずつ増えていく
・アイコンをつかんで動かしたつもりがウィンドウごと動いてしまうことがある
・手が震えているとアイコンが小さくてつかみにくい

【参考サイト】
"set the title of the terminal window to current directory" superuser
"Tune Terminal in OS X Lion" twam.info

2011年8月1日月曜日

Refeのバージョン自動切り替え

  refeは1.9系と1.8系でコマンドが違う。
 いま有効なバージョンのリファレンスが自動的に呼び出されると便利。

【準備】
rvmを使って、どのバージョンのrubyも"ruby"コマンドで実行できることが前提。
袋から取り出したrefeはよく洗い、設置ディレクトリをメモしておく。

【動作確認環境】
Mac OS X 10.7
Ruby 1.9.2 / 1.8.7 / MacRuby 0.10

【スクリプト】
こんな感じでどうでしょう。パスの通る場所に保存して実行権限付加(chmod +x)しておく。
#!/bin/bash
refedir=~/rubyrefm #directory refe exists
v=$(ruby --version)
m=${v#*ruby 1.9.2}
if [ "$m" != "$v" ]
then db="db-1_9_2"
else db="db-1_8_7"
fi
ruby -Ke -I $refedir/bitclust/lib $refedir/bitclust/bin/refe.rb -d $refedir/$db $*

【懸案事項】
・バージョンアップ時のスクリプト更新忘れ(あるある)
・MacRubyで使うと数秒固まる
・言うほど便利にはなっていない