Last modified: Sat Sep 10 23:14:08 2005
KAG のシナリオを扱うための Emacsen 用メジャーモードです。
KAG のシナリオを扱うための Emacsen 用メジャーモードです。
次のような機能があります。
このプログラムは MIT ライセンス の元で配布されます。
.emacs (あるいは別の初期設定ファイル)に、
(autoload 'kag-mode "kag-mode" "Major mode for editing KAG scripts" t)
と書いて下さい。
拡張子 .ks のファイルを常に kag-mode で扱いたい場合は、
(setq auto-mode-alist (append '(( "\\.ks$" . kag-mode)) auto-mode-alist))
も追加して下さい。
タグリファレンス検索を行いたい場合は、 texinfo 版 KAG タグリファレンス もインストールしてください。
タグ・コマンド行・コメント・ラベルのほか、 全角スペースと行末のスペースを色付けします。 色付けが気にいらないときは、kag-*-face あたりをいじってください。
現在開いているシナリオ(が含まれるプロジェクト)を吉里吉里で 実行することができます。
まず、kag-kirikiri-command に、吉里吉里実行ファイルのパスを設定します。
(setq kag-kirikiri-command "c:/foo/bar/krkr.eXe")
あとは、C-c C-z e で現在のプロジェクトを実行できます。
kag-insertion-prefix に続いて1字を入力すると、タグ入力支援となります。 kag-insertion-prefix は、デフォルトでは C-c C-t です。
例えば、C-c C-t e を入力すると、eval タグを挿入することができます。 このとき、kag-use-prompt-when-insertion-p が non-nil ならば、 属性の値を尋ねてきます。必須でない属性は、何も入力しない (空のままリターンを押す)ことでスキップできます。
コマンドによっては、一つのタグではなく、タグのペアを挿入できます。 例えば C-c C-t i を入力すると、if/endif タグのペアを挿入することができます。 このようにペアのタグを入力するコマンドは、C-u C-c C-t i のように 前置引数を与えて起動すると、リージョンをタグのペアで囲むことができます。
call, jump, link, return タグは、storage 属性と target 属性で、補完がききます。
Emacsen 上から KAG のタグリファレンスを検索することができます。
texinfo 版 KAG タグリファレンス をダウンロードし、インストールしてください。
kag-display-tag-reference (M-?)で、タグのリファレンスを見ることができます。 ポイントがタグの上にあった場合、デフォルトはそのタグとなります。
タグで読み込まれる画像・音声・映像などを表示することができます。 c:/foo/bar/viewer.exe で画像を表示したいとすると、.emacs で
(setq kag-external-viewer-list '(("c:/foo/bar/viewer.exe")))
と設定しておきます。
あとは、タグの属性の値のところで、kag-show-object-at-point (C-c C-z v) を実行すれば、そのファイルを見ることができます。
ビューアは複数設定することができます。 複数設定するときは、
(setq kag-external-viewer-list '(("c:/foo/bar/viewer.exe") ("c:/hoge/fuga/viewer2.exe")))
のように設定します。 kag-show-object-at-point を実行するときに、前置引数として2を与えれば、 (C-u 2 を頭につけて実行すれば) 2番目のビューアで見ることができます。 (前置引数を与えなかった場合、リストの最初のビューアが使われます。)
ビューアにコマンドラインオプションを設定したいときは、 ("c:/foo/bar/viewer.exe") の部分を ("c:/foo/bar/viewer.exe" "-a" "-b") のように設定します。
storage="foo" のように、属性の値に拡張子が指定されていなければ 適宜補完しますが、KAG が実際に行う補完とは少し違うので、ご注意ください。 (KAG が補完する際には、どのタグであるかなどを考慮して補完しますが、 ここではそこまでは考慮していません)
(ここでの前・次とは、シナリオの流れを解釈したものではありません)
ジャンプ可能なタグの上で M-RET でジャンプ先に移動できます。 ジャンプしたら、M-* で戻ってこれます。
その他のコマンドについては、describe-mode (C-h m) で表示される キーマップ一覧をご覧ください。