本日の成果 : MarsEdit入れてみた
通勤中の地下鉄車内でも書けるように、ブログ投稿用ツールを入れてみたよ。

Mac用はMarsEditがあちこちで絶賛されているので、その試用版を入れてみたよ。特に不満はないので後でApp Storeで買うことになると思う。
あ、スニペット挿入機能があるとなおいいかな。ひょっとしてプラグインとかで既にある? あと投稿を公開したらTwitterとmixiにその旨を自動的に投稿してくれると嬉しいんだけど、後者はなさそうな気がする。
本日の成果 : キーリピート速度を高速化した
なんだかWindowsを使うようになってから、テキストの編集が遅くなったような気がしていたのですが、先日その原因に思い当たりました。キーリピートの速度です。というかカーソル移動の速度です。勿論コントロールパネルで既に最高速にはしてあったのですが、昔NECのPC-98を使っていた頃は、keysp.exeという常駐ソフトでそれよりもっと速めのリピート速度にしていたのを思い出しました。
Windowsなのだからカーソルを移動したいのならマウスでそこをクリックすれば一発じゃん、という人はおそらく大量のテキストを高速に編集したことのない人です。行の先頭にあるカーソルを行の中程に移動する2~3秒の時間ですら、キーのリピートが遅いからとイライラする世界なのです。マウスに手を伸ばして目的の場所をクリックして手を元の位置に戻す、なんてことは時間の無駄と考えてしまうのです。
そんなわけでWindowsで同様に、キーリピートをさらに速くするソフトがないか探したところ、Hayateというソフトを見つけました。いい名前です。私の場合 –repeat-delay=220 –repeat-interval=18 のオプションで動かして、Windows標準のキーボードの設定は最遅にしています。
最初のうちは「こんなに速くしてたんだっけ?」という感じもしましたがすぐに慣れ、vi使いじゃないですがカーソルが蝶のように舞い(笑)、ストレスなくテキスト編集できるようになりました。それにしても、Windowsがキーリピートに関する設定をもう少し幅を持たせて設定可能なようにしてくれていればよかったのに・・・。昔の8bitマシンでBASICの命令でキーリピート速度を設定可能な機種があって、設定で「リピート開始までの待ち時間 0」「リピート速度 CPUが可能な限り最速」なんてことができて、それやったが最後あらゆるキーに一瞬触ったぐらいでも30個ぐらい入力されるようになって収拾がつかなくなったのって何の機種だっけ・・・。

本日の成果:AutoHotKeyもの3点
前に書いたエントリで導入したAutoHotKeyで、いろいろと細かい機能を作って使っているのですが、その中でもそこそこ他の人も使える可能性がありそうなものを単体のexeファイルにしてみたので公開するよ。とても小粒なのでわざわざSourceForgeとかにプロジェクト申請する気にならない・・・。(^_^;
その1 「IMENotifier」
IMEのON/OFFが切り替わるたびに、画面中央に短時間、小さなウィンドウを表示して、オンになったこと/オフになったことを都度知らせます。

手前味噌ですが、私自身はこれさえあればWindows標準の言語バーは要らないというくらい便利に感じております。これを使う前は、IMEのオン/オフが判らないとどうしようもないので言語バーを出して、でも年中出てると邪魔なのでXLangBarというソフトで直接入力時は言語バーを非表示にしていました。しかしそのように目立たなくすると今度は必要なときに目に入らずに、ayamattenyuuryokusiteしまいます。その点このツールでは画面中央に表示され、オン時とオフ時とで色が違うので判りやすく、しかもすぐ消えるのでさほど邪魔にもなりません。「さほど」というのは、例えばソフトウェア側でIMEのオン/オフを高速で何度も繰り返すようなソフトがあったような場合は、このツールはそれにいちいち反応して画面表示しますので、そのような場合には邪魔になるかもしれないということです。そのようなときはタスクトレイのアイコンを右クリックして出るメニューから動作を一時停止してください。
その2 「LazyF1」
そもそもAutoHotKeyを入れるきっかけとなった[F1]誤操作対策ツールです。作成の背景等はこちらを参照。
[F1]キーを、しばらく押し続けないと反応しないようにします。
その3 「MouseNoAway」
これはこちらのエントリで書いた、マウス跳び対策のツールです。そもそも私のところでだけ発生するような変な現象ではあるのですが、ひょっとしたらどこかにニーズがあり、その人が何かの間違いでここに辿り着く可能性もありますので、というかせっかく作ってみたので公開します(笑)。
本日の成果:WinMerge Portable 改造版 v1.03
昨日、普段使わない環境で、私が改造して公開しているところのWinMerge Portable 改造版を起動したところ、起動時のスプラッシュスクリーンを非表示にしていた筈なのに表示され、しかもそれが消えない(笑)という現象に遭遇しました。これまでそのようなことはなかったので、何が原因なのか判らないのですが、とりあえず対策を施して新版をリリースしました。

本日の成果:Firefox Portable入れた

ブラウザのポータブル版を試してみようと、とりあえず3.6が出たばかりで区切りがいいFirefox Portableを試してみました。ちなみに他にもポータブルを謳うブラウザはOpera@USBやGoogle Chrome Portableなど、いろいろあるようです。
結論としては、もうコレをメインで使ってます。入れたプラグインは、ツリー型タブとCoral IE TabとDelicious Bookmarksぐらいかな。マウスジェスチャーはかざぐるマウスの機能を使っています。Deliciousプラグインは素晴らしい。標準のブックマーク機能は使わなくなりました。ローカルにキャッシュされてるので待たされることもなく、検索ボックスに数文字キーワードを打つとヒットするタグとブックマークが一覧表示されるので、そこから選ぶだけ。標準だとそのとき開いてるタブに開いてしまうので、ちょっと改造して、常に新しいタブで開くようにして使ってます。
それにしても、いろいろ見てると他にも便利そうなプラグインが、探せば探すほど見つかって、プラグインの海に溺れそうです・・・。
本日の成果:AutoHotKey入れた
ファンクションキーは必要な私ですが、[F1]キーだけはむしろ邪魔。むしろ普段はどこかにしまっておいて、使いたいときだけ引っ張り出してくるようにしたいくらい。例えばファイル名を変更しようとして[F2]を押そうとした指がすべって間違って[F1]を押してしまったその瞬間。PCったら大喜びでディスクをアクセスし始めて、しばしの間ののち「はいヘルプ! いわれた通りにしたよ! えっへんボク偉いでしょ!」とばかりに現れるヘルプ画面の憎たらしいこと。うるさいさっさと消えろ! 元のウィンドウにフォーカスを返せ! 大体Windowsのヘルプなんて、役に立ったためしがないくせに!
・・・と考える人が既にいたらしく、特定のキー(主に[F1])を無効化するフリーソフトなども既にあるのですが、できれば単に無効化するだけではなくて、たまにホントに押したいときは押すこともできるような、そう例えばそういうときは1秒長押しすればいいような、そんなツールはないかと探してて見つけたのがAutoHotKeyというユーティリティです。これは今述べた要求事項を直ちに満たすツールではないのですが、汎用のキーマクロといいますか、特定のキーストロークを別のキーストロークにすり替えてくれるツールだったものと思われます。・・・おそらく当初は。
そしてその後機能拡張を重ね、キー入力だけでなくマウスや各種イベントにも対応し、ファイル操作やウィンドウ操作やDLL呼び出しまで可能になり、しまいにはユーザ定義のGUIウィンドウを表示してユーザとの直接対話までできるようになった挙句、それをコンパイルして単独の実行ファイルを作るなどというもはや開発環境と言えるようなこともできるようになってしまったという、スイスアーミーナイフなツールです。正直自重しろと思います(笑)。でも便利なので使います。
定義スクリプトを書いて動作を指示するのですが、これまた機能拡張の過程が目に見えるようなものすごい文法になってます。おそらく最初はホットキーとそれに対する置換内容を1対1で記述するだけだったものと思われますが、きっとだんだんいろいろやりたくなってきて、条件分岐を入れて、変数の概念を入れて、ラベルとジャンプを入れて、式の概念を入れて、ユーザ定義関数とローカル変数とstatic変数を入れて、・・・だいたいそんな順序で拡張されていったものと思われます。
そのような美しさのかけらもない文法ではありますが、理解しづらくはなくむしろ強力です。では私の要求を満たすようスクリプトを作りましょう。
まずは[F1]について、実際に押されたあと、そのまま話さずに1秒経過したら、押されたことにするようにしました。とりあえずの目標はこれで達成しました。マクロの組み方によっては、2回続けて押すと反応するようにしたりとか、いろいろできるみたい。
あと、勢いでIMEの状態表示したりホットキーでボリューム制御したり、こまごまとしたことをやるようにしてみました。ただ、いろいろ努力してみたものの、このツールで[CAPS]を[CTRL]に置き換えることだけはできなかったのです・・・。ここだけはドライバレベルでハンドリングしてるらしく、しょうがないのでここはレジストリを弄っています。