Customizing japanese

mooz edited this page Feb 10, 2011 · 3 revisions

PRESERVE エリアについて

.keysnail.js 内の //{{%PRESERVE%//}}%PRESERVE% で囲まれた部分を PRESERVE エリア と呼びます。

このエリアにはプラグインのオプションや、各種設定を記述します。ただし、
以下に示すものに関してはこのエリアへ含める必要はありません

  • 特殊キーの設定
  • フックの設定
  • 各種キーバインドの定義

これらの設定に関してはファイル末尾など、 PRESERVE エリア外へ記述するようにしてください。

プロンプトの設定

KeySnail が提供する prompt.read() や prompt.selector() といったインタ
フェースの挙動は PRESERVE エリア を通じてカスタマイズすることが可能と
なっています。

次の設定をご覧下さい。

prompt.rows                = 15;
prompt.useMigemo           = true;
prompt.migemoMinWordLength = 3;
prompt.displayDelayTime    = 200;

prompt.rows にはプロンプトの行数を指定します。 Twitter クライアントで一度に表示される TL 数を増やしたり減らしたりしたい場合は、この値を変更してください。

prompt.useMigemo の値を true へ設定すると、 XUL/Migemo の機能を通じてマッチングが行われるようになります。この際、アルファベットを何文字打ち込んだ時点から Migemo 検索を開始するかを prompt.migemoMinWordLength で指定することが可能となっています。

prompt.displayDelayTime には、文字を打ち込んでから検索を開始するまでの遅延時間をミリ秒で指定します。この値を小さくすればレスポンスは良くなりますが、負荷が増えるためにパフォーマンスの低い PC では逆に引っかかるようになってしまいます。バランスを考えて設定して下さい。

プロンプトのキーバインドは、次のような設定を PRESERVE エリア へ記述しておくことで変更することが可能となっています。以下に示すのはデフォルトのキーバインディングです。

prompt.setActionKey("read", "ESC"    , "prompt-cancel");
prompt.setActionKey("read", "RET"    , "prompt-decide");
prompt.setActionKey("read", "<down>" , "prompt-next-line");
prompt.setActionKey("read", "<up>"   , "prompt-previous-line");
prompt.setActionKey("read", "<tab>"  , "prompt-next-completion");
prompt.setActionKey("read", "S-<tab>", "prompt-previous-completion");

prompt.setActionKey("selector", "ESC"    , "prompt-cancel");
prompt.setActionKey("selector", "RET"    , "prompt-decide");
prompt.setActionKey("selector", "C-RET"  , "prompt-continuous-decide");
prompt.setActionKey("selector", "M-RET"  , "prompt-continuous-decide-and-next");
prompt.setActionKey("selector", "<down>" , "prompt-next-line");
prompt.setActionKey("selector", "<tab>"  , "prompt-next-line");
prompt.setActionKey("selector", "<up>"   , "prompt-previous-line");
prompt.setActionKey("selector", "S-<tab>", "prompt-previous-line");
prompt.setActionKey("selector", "<next>" , "prompt-next-page");
prompt.setActionKey("selector", "<prior>", "prompt-previous-page");
prompt.setActionKey("selector", "<home>" , "prompt-beginning-of-candidates");
prompt.setActionKey("selector", "<end>"  , "prompt-end-of-candidates");
prompt.setActionKey("selector", "C-i"    , "prompt-select-action");

prompt-continuous-decide は「プロンプトを閉じずに連続してアクションを実行する」ものです。デフォルトの設定では Ctrl + Enter に割り当てられています。

キルリングの設定

次のような設定により、 KeySnail のキルリングをカスタマイズすることが可能となっています。

command.kill.killRingMax   = 15;
command.kill.textLengthMax = -1;

command.kill.killRingMax にはキルリングのサイズを設定します。ここでは 15 が設定されていますので、テキストを最大で 15 個まで格納しておくことが可能となります。

command.kill.textLengthMax にはキルリングに格納するテキストの最大文字数を指定します。 -1 が設定された場合は無制限となり、どれだけ長いテキストであっても切るリングへ格納されるようになります。

キーボードマクロの設定

キーボードマクロの再生時に挿入される各キーの間のインターバルは次のようにして変更することが可能です。

macro.sleepTime = 50;

ここでは 50 ミリ秒が指定されているので、例えば j, j, j というキーボードマクロの再生は j, (50 ミリ秒ウェイト), j, (50 ミリ秒ウェイト), j というようなものとなります。

コントロール / メタキーの変更

KeySnail がコントロールキー、メタキーと解釈するキーはデフォルトで次のようになっています。

  • コントロールキー
    • Ctrl
  • メタキー
    • Alt
    • Command

この割り当てを変更したい場合は、初期化ファイル内で key.isControlKey(), key.isMetaKey() という関数を上書きして下さい。

これらの関数は元々次のような定義となっています。

key.isControlKey = function (aEvent) {
    return aEvent.ctrlKey || aEvent.commandKey;
};

key.isMetaKey = function (aEvent) {
    return aEvent.altKey || aEvent.metaKey;
};