読者です 読者をやめる 読者になる 読者になる

MacOSX 設定 terminal MacOSX 設定 terminal

OpenTerminalHere を使っていたら,terminal.app の振る舞いがおかしくなった.
なぜか新規シェル呼び出し時に cd コマンドがかかって,カレントディレクトリをヘンなディレクトリにしてしまうのだ.

一生懸命調べた結果,

~/Library/Preferences/com.apple.Terminal.plist

の中にある
ExecutionString の value が 'cd /hogehoge/fugafuga' みたいになっていた.この value を空白にすると現象はなおったが,なぜこの値が書き変わったのか全く分からない.

.bash_profile や .bashrc にも cd の記述が無いので,terminal の状態 XML を保存してみて,中に ExecutionString の項目と,その value が cd になっているのを発見したから plist のせいだと分かったのだけれど,そこにたどり着く迄にすごく苦労したぞ.

いったん plist のせいだと分かったので検索してみると,やはりこの問題に悩んだ人々がいた.

http://slashdot.jp/~gigo/journal/217310
http://forums.macosxhints.com/archive/index.php/t-22744.html
http://d.hatena.ne.jp/cyk0/20080808
http://no-item-retrieved.blogspot.com/2007/12/tex-tools-for-mi.html

メニューバーの「ファイル>設定をデフォルトとして使用」を選んでしまうとこういうことが起きるらしい。

なるほど!そういうことかぁ.

収穫は, .bashrc 読み込み後に何かさせたいときは plist の ExecutionString に書くと良いということ.そしてそれは,terminal の「設定をデフォルトとして使用」を選ぶことで書き変わるということだった.