でも、覚えていないとどうしようもない。
「xyzzyでスクリプトのテストも出来る良い感じなuwsc-modeを見つけたのだけど、
補完機能がなかった。
LISPなんて分からないけど、しょうがないから…適当に切り貼りして補完機能を付けてしまおう。」
っていうお話です。
適当にやった(←重要)しLISPの知識も無いので、基本的なことが分かる人用に書いています。
そこんところ宜しくお願いします。
ではみていきましょうか。
http://big.tm.land.to/handbook/uwsc.htm
肝心なuwscモードは↑からダウンロードしてください。
上のURLからダウンロードしてきたものを展開し、書いてあるとおりにインストールすると
site-lispっていうフォルダの中にuwsc-mode.lっていうのが入っていると思います。
そこまではOKですよね?
よし、それじゃあ適当に改造を始めましょう。
1.xyzzyでuwsc-mode.lを開く
2.;キーワードという文字を検索する。
3.(defvar *uwsc-keyword-file* "uwsc")の下に、
(defvar *uwsc-completion-list* nil) ;まっくん。追記を加える。
4.;キー割り当てという文字を検索する。
5.;くにさん追加 と書いてある行の上あたりに、
(define-key *uwsc-mode-map* #\C-. 'uwsc-completion);まっくん。追記
を挿入する。
6.uwsc-mode.lの末尾に
;以下まっくん。追記
(defun uwsc-completion ()
"キーワードから補完"
(interactive)
(or *uwsc-completion-list*
(setq *uwsc-completion-list* (make-list-from-keyword-table *uwsc-keyword-hash-table*))
(return-from uwsc-completion nil))
(let ((opoint (point)))
(when (skip-syntax-spec-backward "w_.")
(let ((from (point)))
(goto-char opoint)
(do-completion from opoint :list *uwsc-completion-list*)))))
;;ここまで
を挿入する。
7.uwsc-mode.lをbyte-compile-fileする。
byte-compile-fileがなんだとかどうとかは、検索してくださいね。
8.xyzzyのダンプファイルを削除して再起動する。
例えば、以下に示すようなファイルがあり、それがダンプファイル(コロンの左はOS名
Win2000: xyzzy.w2k
WinXP: xyzzy.wxp
Win98: xyzzy.w98
WinNT: xyzzy.wnt
WinME: xyzzy.wme
9. uwsファイルを開き、"大文字で"先頭の文字を入力。
C-.で入力補完が出来ることを確認して終了。
※小文字から入力補完できる方法が分かる人がいたら教えてください。
キーワードファイルに小文字を入れて補完しようとすると"No Match"
キーワードファイルから補完対象を見ているはずなんだけどなぁ…。
こいつは一体何を言ってるんだ?っていう方は、
をザッと見ておくといいかもです。
インストールから応用的な使い方まで、インターネットをさ迷うことなく見ることが出来ます。
用語だとか操作方法が"ちゃんと"(WEBは不親切なことが多い。←お前が言うな)説明してくれているのがいいですよね。
独特な用語が多くて、それを一つ一つ説明していくのが辛いんでネット上ではまともに説明してくれているところが非常に少ないし、
散文的に情報が散らばってしまうんですよね。
xyzzy wiki には比較的情報が集まってきているけれども。