Hatena::ブログ(Diary)

うどん駆動開発

2010-12-08

SKKで単位の換算をする

ノリでSKK Advent Calendar : ATNDを始めてしまったので,先陣を切って記事を書きます.

SKKで単位の換算をするという小ネタを紹介したいと思います.

SKKでは,辞書の変換候補にelispが書いてあれば,その式を評価し,結果を出力します.これを利用し,単位の換算を行うことができます.

SKKを起動して,かなモードで以下のように入力してみてください.

/13mile SPC

変換され,20.9209kmとなるはずです.デフォルトでは,以下の単位換算を行うことが可能です.

("mle" ("km" . 1.6093)
       ("yard" . 1760))

("yard" ("feet" . 3)
        ("cm" . 91.44))

("feet" ("inch" . 12)
        ("cm" . 30.48))

("inch" ("feet" . 0.5)
        ("cm" . 2.54))

また,新しく換算候補を登録することもできます.

今回は,km/hをm/sに換算できるようにしてみます.

~/.skkに以下のように書きます.km/hをm/sに変換する際,0.277777778倍するという意味です.

(add-to-list 'skk-units-alist
			 '("km/h" ("m/s" . 0.277777778)))

これだけでは単位換算を行うことができません.辞書にelispを登録する必要があります.

#km/h /(skk-gadget-units-conversion (concat "km" (char-to-string 47) "h") (string-to-number (car skk-num-list)) (concat "m" (char-to-string 47) "s"))/

変換候補でスラッシュを使う方法が分からなかったため,char-to-stringを用いています.

これで,km/hをm/sに換算することができるようになります.

SKKは自分で拡張できる所がいいと思います.

みなさんもどんどん拡張して,便利に使いましょう.

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Connection: close