blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

DvorakJ 2010-02-10 版を公開した

今回の版では、AutoHotkey_L の unicode 版で動作するよう設定ファイルすべてを書き換えた。
その結果、AutoHotkey_L の ansi 版で動作していた 2010-01-28 版と比較すると、起動時の処理速度が大幅に低速してしまった。この低速化について調べたところ、「単一キー」タブの描写に時間を要しているようだ。文字を出力するための処理を最適化しても、この低速化の症状を軽減できていないままである。 2010-01-28 版と同様起動時の速度を高速化したいものだ。
今回の更新により、他の問題も生じてしまった。読点をキー・ストロークへと変換できないのだ。これは、読点をユニコード文字としてしか出力できないことを意味する。ユニコード文字としてか出力できないことには不利な点がある。Google 日本語入力や skkime では、ユニコード文字を直接出力することはできない。
以上の点について対策案を考えている途中である。2010-01-28 版で特に不自由していない方には、最新版ではなく、2010-01-28 版のご使用を強くおすすめします。

追記

二点目の問題が生じる過程を突き止めた。AutoHotkey_L で /* */ で括るコメントアウトの記述手法に原因があった。AutoHotkey_L ではコメントアウトのし手法が二つ存在する。それは ; と /* */ だ。後者の /* */ は複数行のソースをコメントアウトするために使用される。一行のみコメントアウトするためにこの /* */を使用すると、次の行が適切に処理されない。以下に実例を示そう。第一の例では hoge が表示される一方、foo の方は表示されない。他方、第二の例では hoge も foo も表示される。私は、第一の例と同様のコメントアウトを記述していたのだった。

/*
 hoge のみ表示される例
 */

/*
	hoge
 */
msgbox,hoge

/* foo */
msgbox,foo
/*
 hoge と foo の両方が表示される例
 */

/*
	hoge
 */
msgbox,hoge

;;; foo
msgbox,foo

この不具合はすぐに修正できるものだ。明日公開する版で修正しておく。

参考ページ
AutoHotkey Scripts and Macros