blechmusikの日記

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

出力する文字やキーを自由に置換できるようにした

-option-output オプションを使用することで、出力する文字やキーを自由に置換できるようにした。このことを例を出して説明しよう。以下に示すのは、私が普段使用している直接入力用配列の単打とShift付きの設定について、以前の版の DvorakJ のものと最新版のものを順に並べたものだ。

[
1|2|3|4|5|6|7|8|9|0|^v    |{ESC}|{削除}|
'|,|.|p|y|f|g|c|r|l|/     |^c   |
a|o|e|u|i|d|h|t|n|s|{改行}|^x   |
;|q|j|k|x|b|m|w|v|z|\     |
]

-shift[
{!}|@|{#}|$|%|{^}|{&}|*|<|>|{{}|{}}|+{削除}|
"  |(|)  |P|Y|F  |G  |C|R|L|?  |{+}|
A  |O|E  |U|I|D  |H  |T|N|S|_  |~  |
:  |Q|J  |K|X|B  |M  |W|V|Z|@@@|
]
-option-output[
    C- | ^
    S- | +
    
    @caret@ | {^}
    @exclamation_point@ | {!}
    @number_sign@ | {#}

    @open-brace@  | {{}
    @close-brace@ | {}}

    @vertical_bar@ | @@@
]


[
    1|2|3|4|5|6|7|8|9|0|C-v   |{ESC}|{削除}|
    '|,|.|p|y|f|g|c|r|l|/     |C-c  |
    a|o|e|u|i|d|h|t|n|s|{改行}|C-x  |
    ;|q|j|k|x|b|m|w|v|z|\     |
]

-shift[
    @exclamation_point@|@|@number sign@|$|%|@caret@|&|*|<|>|@open-brace@  |@close-brace@|S-{削除}|
    "                  |(|)            |P|Y|F      |G|C|R|L|?             |@plus_sign@  |
    A                  |O|E            |U|I|D      |H|T|N|S|_             |~            |
    :                  |Q|J            |K|X|B      |M|W|V|Z|@vertical_bar@|
]

両者を比較対照すると、-option-output であらかじめ設定した(すぐあとで説明する)置換規則にならい、キーボード配列を設定していることがわかる。たとえば、{ を出力するために従来記述していた {{} は、@close-brace@ と記述するようになった。なぜこのように設定できるのかを考えてみよう。-option-output 内の設定をざっと見れば、"@open-brace@ | {{}"という記述を発見できるだろう。これは、@open-brace@ という記述があれば {{} に置き換えよ、というものだ。縦棒の左側は置換される文字列で、その右側は置換する文字ということである。この簡単な置換規則を踏まえれば、上記の両者の設定の差異をすべて読み解くことができるだろう。
今回導入したこの機能を使用すれば、記述内容が判別しにくい文字やキー、そして何度も出てくるそれを簡潔に記述できるようになる。是非とも試してみて欲しい。