vim-cocoaでIM制御できない話がMLで出てるのでフィードバックしようと思って調べ直してたら、Carbon版で使ってるCarbon APIのGetScriptManagerVariableがDeprecated in Mac OS X v10.5.ですよ。普通deprecatedなので代わりにこれ使ってね、とか書いてあるものなのに書いてないし...
で、LeopardでIMの状態をアプリごとに記憶するInputSwitcherというものをVoluntasさんとこで発見。しかもソース付き。
ありがたく見させていただくと、Text Input Source Services ReferenceのTISCopyCurrentKeyboardInputSourceで記憶、TISSelectInputSourceで設定、というのがわかりました。これでパッチ作ってフィードバックします。Leopard以上と以下でifdefかな。
なんでもかんでもCocoaってわけにはいかんのですね、というかそういう住み分けか。