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で使うと数秒固まる
・言うほど便利にはなっていない

2011年7月18日月曜日

IronPythonをVisualStudioで使う

【効能】
構文色分け、インテリセンス

【材料】
【作り方】
  1. 材料を水でよく洗う
  2. インストーラーの指示に従う
    ※ Visual Studio SP1のインストールを促されればそれも入れる
【カスタマイズ】
フォントの色やサイズ
  Visual Stidioのツールメニュー→オプション→環境→フォントおよび色
行番号の表示
  Visual Studioのツールメニュー→オプション→テキストエディター→Python→全般

【トラブル】
◆ Pythonを実行すると画面が10秒ぐらい固まる
  2011年7月時点でPython Toolsの既知不具合。最新版のコードでは修正済みなのでバイナリへの反映待ち。Python Toolsは現在ベータ版(2011年8月に1.0のリリース予定)

2011年7月12日火曜日

Vimで拡張子に応じたテンプレートから新規ファイルを作る

【状況】vimでスクリプトを書くとき、シェバンとかエンコード指示が自動で入ると楽太郎なのに…。
【対応】
~/.vimrcに次の行を追加。新規ファイルが対応テンプレから作られるようになる。

autocmd BufNewFile * silent! :0r ~/.vim/templates/%:e.tpl


・%:eさんは、ファイル名の拡張子部分に変身する
・silent!さんは、対応するテンプレがないときもエラーにせず見逃してくれる
・silent!の次の指示は0行目からRする命令。間違えてAndOrのOrにするとドツボに
・最後のパスはテンプレを置くパス。たとえば拡張子.py用のテンプレートは~/.vim/templates/py.tplとして置いておく。パスは変えてもOK
・Courierのアスタリスクはヒトデ型なので好き(やや関係ない)


【懸案事項】
たまにまっさらのがいいと思うことがある。人間って身勝手。

MacPortsのkinput2でShift+Spaceを無効にする

kinput2は日本語入力切り替えキーにCtrl+OとShift+Spaceの2つを用意している。

【問題点】Shift+Spaceを無意識に発動させてしまうことが頻発する。
【環境】MacOS X 10.6+X11+MacPortsのkinput2とcanna

【対応】Shift+Spaceを無効化し、Ctrl+Oのみで切り替える。

【方法】~/.Xresoucesに次の行を書く。

kinput2*ConversionStartKeys:Mod2

【こんな方にも向いています】
・文字入力時、無意識にShiftキーでタイミングをとっている
・他人のPCで入力していると、ふいにピョロって音が鳴って「ユーザー補助」が発動してしまう(やや関係ない)

MacPortsのPythonのIDLE

MacPortsのPythonのIDLEはX11から起動されます。
環境設定メニューがなぜかごっそり抜け落ちていますが、次のどちらかの方法で設定できます(Mac OS X 10.6 / 10.7)。

  • 設定ファイルを~/.idlerc/直下に作って編集する
    詳しくは下に書きます。IDLEの出荷時設定の書かれたファイルは拡張子がdef、ユーザー設定ファイルは拡張子がcfgです。コピーしてきたときに拡張子を変え忘れると読み込まれません。
  • Mac同梱版IDLEを起動して環境設定メニューから設定し、設定を保存する
    同梱版と設定ファイルが共通なので、反映されます。

【Mac同梱版IDLE】
場所:/usr/bin/idle
  type -a idleでも確認できる
懸案事項:
・日本語を打てない/ペーストすると固まる
・たまにメニュー操作でも固まる

【悩み事】フォントを変えたい
対応:設定ファイル書き換え
編集対象ファイル:
~/.idlerc/config-main.cfg
[EditWindow]
font-size = 12
font = Menlo
font-bold = 1
height = 18
width = 60
encoding = utf-8

【悩み事】上下矢印で履歴を移動したい
  デフォルトはCtrl+PとCtrl+Nで移動。
対応:history絡みのキーを2つ設定
編集対象ファイル:
~/.idlerc/config-keys.cfg
[IDLE Classic OSX]history-next = <Key-Down>
history-previous = <Key-Up>
懸案事項:
Ctrl+Aで行頭に戻ると、プロンプトを通り越す。

【悩み事】日本語を打ちたい
対応:X11でkinput2とcannaを使えるようにする。
懸案事項:設定途中で挫折の可能性

【悩み事】IDLE起動後もターミナルを引き続き使いたい
対応:普通にバックグラウンドで実行してみる。
コマンド:
idle &