cygwin環境下のemacs22でswi-prologに.proを関連づけしC-cC-lで述語mainを実行するようにする
あとprologモードはswiplを探すらしいのだがplを指定してやる。
(setq auto-mode-alist (append '(("\\.pro" . prolog-mode)) auto-mode-alist)) (setq prolog-program-name "pl")
plが探せないみたいなので.bashrcに以下を追加
PATH=/lib/pl-5.6.36/bin/i686-cygwin/:$PATH
prolog.elに以下のパッチをあたえるとmainを自動で評価する。haskell-modeと同じく編集しているバッファにカーソルは存続する
prolog.elcを消すかバイトコンパイルするのを忘れないように。
$ diff -u prolog.el.orig prolog.el --- prolog.el.orig 2007-06-04 09:34:10.000000000 +0900 +++ prolog.el 2007-12-13 18:09:21.000000000 +0900 @@ -384,10 +384,14 @@ (interactive) (save-buffer) (let ((file buffer-file-name) - (proc (inferior-prolog-process))) + (proc (inferior-prolog-process)) + (file-buffer (current-buffer))) (with-current-buffer (process-buffer proc) (comint-send-string proc (concat "['" (file-relative-name file) "'].\n")) - (pop-to-buffer (current-buffer))))) + (comint-send-string proc "main.\n") + (pop-to-buffer (current-buffer)) + (pop-to-buffer file-buffer) + ))) (provide 'prolog)