lex_hook_on_initの仕様を変更。モードローカルのKeyMapをフック内でインストールできるようにした。フック用Fanctionの引数eventにkey定義を追加。デフォルトでサブモードを変更するキー定義が追加されている。関数が実体であることに注意。

event.keys = { (キーコード , 修飾キー) : 実行される関数 }

正直な話、キーを定義するだけならHookを使わなくても以下の書式でなんとかなると言えば、なんとかなる。サンプルはGoo翻訳(*Megahurtzさんのところの)

import clmode
mode = clmode.Top()

# Goo翻訳を使用
def ExecGoo():
    import clgoo
    clgoo.Goo()
mode.SetKeyDownHandler( ord('T'), MODKEY_CTRL, ExecGoo )

ついでに無印CraftLaunchにあった空欄コマンドの機能限定版のオプションを追加した。何も入力されていない状況、もしくはパラメータのみ入力した状況でEnterを入力すると設定されたコマンドを実行できる。無印ではShiftとかCtrlとかの修飾キーが押された場合も定義出来ていたようだけど、Exの場合は通常のEnterでないならSetKeyDownHandlerで定義すればいいと思うのでこれで充分ではないだろうか。