ミームの死骸を待ちながら

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators. We, alone on earth, can rebel against the tyranny of the selfish replicators. - Richard Dawkins "Selfish Gene"

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators.
We, alone on earth, can rebel against the tyranny of the selfish replicators.
- Richard Dawkins "Selfish Gene"

Mac OS X10.5のことえりでAZIKを使う(10.6.1 Snow Leopardでも確認)

えっ、まだ「NN」で「ん」を出してるんですか?「っ」を入力するために同じ子音を二回押してるんですか?「む」を打つ時人差し指がかわいそうになりませんか?「ー」のために遥か彼方まで小指を伸ばしてるんですか?資源は有効に使いましょうよ


...僕は「AZIK」という拡張ローマ字入力を愛用している。基本的ローマ字入力と同じであるが、例えば次のような入力支援定義がなされている。

  • 子音+母音の下*1のキー -> 元の文字+ん
    • tz -> 「たん」、kd -> 「けん」、 jl -> 「じょん」
  • 子音+母音の上あるいは横のキー -> 特殊母音(あい、えい、おう)
    • sq -> 「さい」、nq -> 「ない」、kw -> 「けい」、hp -> 「ほう」
  • 「ん」、「っ」、「ー」の簡単入力
    • q -> 「ん」、; -> 「っ」、: ->「ー」
  • 指運びを補助するための代理キー
    • 「mを押した後に同じ指でuを押す」代わりにmfで「む」、kfで「き」など
    • 「mを押した後に同じ指でyを押して"みゃみゅみょ..."を入力」の代わりにmgaで「みゃ」、ngoで「にょ」など。
  • その他日本語に頻出する文節のショートカット
    • ds -> 「です」、ms ->「ます」、st -> 「した」、tr -> 「たら」、dm -> 「でも」、dg -> 「だが」


これを、Windowsでは姫踊子草というアプリで一発設定できるのだが、Mac OS Xでは、ことえりの日本語変換テーブルをいじる必要があった。めんどうくさかったけどなんとかできた。以下方法メモ。Mac OS X Leopard(10.5.7)で確認(Snow Leopard 10.6.1でも確認済)。一部重複した作業をやってしまった気配もするが...とりあえず流れをまとめた。



とは言っても既にRubyスクリプトを作ってくれている有志に乗っかってやるだけで、基本的ことえりローマ字かな変換テーブルカスタマイズに従う。このページともう一つことえりでAZIK←このページを見ながら作業したのだが、どうにも説明が「わかってるひと」向けだったので、「よくわからんひと」の代表としてやや細かい作業logを残す。


作業フォルダとして、~/work/Kotoeri/下で一連の作業を行った。
kotoeri_romaji-1.1.tar.gzを落としてtar zxvfで解凍。解凍した中に入っていたromaji2plist.rbの中でjcode.rbとuconvがrequireされていたので、今インストールされているかどうかirbで確認

>> require 'jcode' => true
>> require 'uconv' => ERROR

よってuconvを入れることにした。ここから落としてtar zxvf。cd uconvして

ruby extconf.rb
make
make install

...再び確認。

>> require 'uconv' => true

おk。

kotoeri_romaji-1.1を解凍した中にTransliterationBaseData.plistがある。「;」を「っ」にするにはこれを/System/Library/Input Methods/Kotoeri.app/Contents/Resources/TransliterationBaseData.plistと差し替える必要がある。元のものを.saveつけてmvしておいて、sudoで置いといた。
また、azik.romajiというファイルを見ると、

...
: ー
; っ
a あ
...
mgu みゅ
mgw みぇい
mgz みゃん
mh むう
mi み
...

などとAZIKの拡張入力を含めたローマ字入力定義が書かれている。ここを書き換えることでACTなどにも対応できるはず。
で、Makefile

-R= tut.romaji
+R= azik.romaji*2
-S= MsimeRomaji.plist
+S= MsimeRomaji.plist.azik

と書き換え、makeすると、makeの中身でromaji2plist.rbというRubyスクリプトを使い、新しくplistファイルを作る。このrubyスクリプトを直接実行してもいいのかな?

$ make
ruby -Irbuconv romaji2plist.rb azik.romaji > MsimeRomaji.plist
# loading table...
# writing plist...

となり、MsimeRomaji.plistができる(あれ?MsimeRomaji.plist.azikじゃないのか?=>.azikじゃないほうでいけた20090927)。この中身を見るとXMLファイルになっておりタグはCursor, NodeFlags, NodeValue, Result。対応表などは以下

...ともかくこのできたやつを既存の/System/Library/Input Methods/Kotoeri.app/Contents/Resources/MsimeRomaji.plist と置き換える。再起動すると設定が有効になる。ただしことえりの設定で「Windows風(Windows-like operation)」にチェックを入れておくこと。以上。



MacWindowsとは違いUNIXの言葉で設定できるので、わかってさえいれば深い所までいじれるのか。おもしろい。実はmakeとかgccとかよくわかってないんだけど。


その他メモ

問題点、改善点
  • なぜか「:」 -> 「ー」の割り当てだけできてないっぽい。
    • Ctrl+:で「ー」が出るようになった。MacVimで直前文字が半角である時のみ「'」にmapされているが問題ない
    • 全角ハイフンはUnicodeの対応が一致していないそうな
  • 以前割り当てていた「bb -> ぶぶん」という対応を追加
    • もう一回作り直す必要があるか...めんどっちーな
  • ATOKの辞書をことえりに移し替える。
    • ATOK for Mac 2008を買ってもいいけど。
Ruby Scriptのusageの書き方
#usageメソッドを定義しておいて...
def usage
    STDERR.puts "usage: #{File.basename $0} romaji-kana-table"
    exit(1)
end 

#間違った使い方のとき呼び出す
if ARGV.length != 1
    usage
end    


usageの中に print <- EOLとかやって、ヘルプを記入してる例もあった。helpメソッドを定義してusage呼び出したり


uconvとは

XMLParser module can process UTF-16 and UTF-8, but cannot process Japanese encoding (e.g. EUC-JP, Shift_JIS and ISO-2022-JP). Uconv module provides the methods to convert UTF-16, UTF-8 or UCS-4 into EUC-JP or CP932, and EUC-JP or CP932 into UTF-16, UTF-8 or UCS-4.

パスを通す時の設定


.bashrcではなく.bash_profileに

PATH="$PATH":hoge/fuga/bar


と記入。.bashrcではbashが呼ばれるたびに読まれるので(たぶん)。

*1:物理的に一つ下に位置する

*2:-のついた行を削除し、+のついた行に書き換える、という表現