Использование prolog с emacs
GNU Emacs 23.2.1
Fedora xfce 14
Я начинаю входить в Prolog, и я хочу использовать мой emacs в качестве IDE для программирования в Prolog.
в настоящее время я использую emacs для c/C++. Но не уверен, как начать работу с Prolog. Я знаю, что emacs имеет встроенную библиотеку для программирования в emacs. Однако я исследовал и обнаружил, что это функция меньше, т. е. нет подсветки синтаксиса, отступа и т. д.
Итак, я загрузил Пролог Emacs prackage.Эль. Я загрузил эту библиотеку, используя M-X Load-library
.
однако я не уверен, что делать после этого. Как скомпилировать файлы prolog? В меню Emacs IDE нет ничего для Prolog.
мне также нужно загрузить некоторый интерпретатор или компилятор для Пролога? Есть ли команда emacs для компиляции? Обычно я использую make в emacs при компиляции кода C.
Я сделал пролог поиска yum и получил эти результаты, поэтому со всеми этими вариантами, какой мне нужен?:
gprolog.x86_64 : GNU Prolog is a free Prolog compiler
pl.x86_64 : SWI-Prolog - Edinburgh compatible Prolog compiler
pl-static.x86_64 : Static library for SWI Prolog
ppl-gprolog.x86_64 : The GNU Prolog interface of the Parma Polyhedra Library
ppl-gprolog-static.x86_64 : The static archive for the GNU Prolog interface of the Parma Polyhedra Library
ppl-swiprolog.x86_64 : The SWI-Prolog interface of the Parma Polyhedra Library
ppl-swiprolog-static.x86_64 : The static archive for the SWI-Prolog interface of the Parma Polyhedra Library
ppl-yap.x86_64 : The YAP Prolog interface of the Parma Polyhedra Library
yap.i686 : High-performance Prolog Compiler
yap.x86_64 : High-performance Prolog Compiler
большое спасибо за любые предложения,
================== изменить =====================
Я установил следующее pl.x86_64
у меня есть скачать пролог.el и поместите его в следующий каталог:
~/.emacs.d/site-lisp/prolog/prolog.el
и я настроил свой emacs следующим образом:
;;; Prolog mode
(setq load-path (cons "~/.emacs.d/site-lisp/prolog/prolog.el" load-path))
(autoload 'run-prolog "prolog" "Start a Prolog sub-process." t)
(autoload 'prolog-mode "prolog" "Major mode for editing prolog programs." t)
(setq prolog-system 'swi) ; prolog-system below for possible values
(setq auto-mode-alist (append '((".pl$" . prolog-mode))
auto-mode-alist))
поэтому, когда я сохраняю файл как *.pl я получаю параметры меню prolog.
поэтому я пишу код пролога и из меню пролога выбираю Run interactive prolog session
Я вам второй пустой буфер открыт, который говорит (Inferior Prolog:run Shell-Compile)
однако я не уверен, что мне нужно делать на этом этапе. Как скомпилировать и запустить файлы prolog?
большое спасибо за дополнительную поддержку.
8 ответов
вы не используете предполагаемое advanced prolog.el
, так как ваш путь загрузки неправильный. Следует читать:
(setq load-path (cons "~/.emacs.d/site-lisp/prolog/" load-path))
обратите внимание, что я удалил prolog.el
от конца пути. На самом деле, он должен еще лучше читать:
(add-to-list 'load-path "~/.emacs.d/site-lisp/prolog/")
затем снова запустите Emacs, и он должен дать вам меню со многими другими параметрами. (Попробуй!--4-->, который работает только с расширенным режимом и показывает его номер версии.)
вы можете попробовать C-c C-b
проконсультироваться с буфером и т. д. Также рассмотрите возможность использования ediprolog, С помощью которого вы можете оценивать запросы непосредственно в буфере Emacs. Обратите внимание также, что в последних версиях Emacs вариант режима advanced Prolog является новым по умолчанию, но, к сожалению, поставляется с серьезными регрессиями и недостатками, поэтому я рекомендую оригинальную версию, поддерживаемую Стефаном Бруда:
https://bruda.ca/emacs/prolog_mode_for_emacs
для получения дополнительной информации о Prolog и В Emacs, см. использование SWI-Prolog с GNU Emacs.
вам нужна среда Prolog, такая как SWI-Prolog, GNU-Prolog или YAP. Я думаю, что SWI очень часто используется, но я не могу сказать, лучше ли это, чем другие. Вам не нужно компилировать файлы Prolog для их запуска - Prolog может работать как интерпретатор (в некоторых случаях интерактивный компилятор). Чтобы загрузить файл в среду Prolog, вам нужно консультация его. В режиме Prolog emacs может сделать это с помощью C-c C-f
. Вы также можете ввести непосредственно из оболочки Prolog consult(File)
.
более полный режим пролога можно найти здесь:режим пролога для (X)Emacs Если вы ищете .el файл для строки prolog-mode-keybindings или сделать C-h b в то время как в режиме prolog вы можете увидеть, что доступно.
Если вы устанавливаете pl.архитектуру x86_64: Вы также можете использовать встроенный редактор SWI Prolog под названием PceEmacs, см. здесь:встроенный редактор SWI-Prolog: PceEmacs SWI Prolog очень полный и включает в себя текстовый отладчик в дополнение к графическому отладчик графический трассировщик и своя собственная система GUI система графического интерфейса XPCE для Prolog плюс много библиотек. Это отличный пролог для исследования. Если вы хотите вместо этого использовать SWI Prolog с emacs, вот настройка использование SWI-Prolog с GNU-Emacs
внимательно прочитайте инструкции по установке для prolog.pl -http://bruda.ca/emacs-prolog/install.html
-
повторяя то, что " mat "написал 20 марта, используйте" add-to-list "вместо " setq":
(добавить в список "load-path"~/.в Emacs.d / site-lisp/prolog/")
Это" современное "использование и должно быть немного яснее для Вас, чем конструкция "setq".
Я не читал пролог.el код от bruda.ca осторожно, но он выглядит немного устаревшим. Тем не менее, похоже, что он имеет гораздо больше функций, чем код, включенный в GNU Emacs. Я не знаю, будут ли дополнительные функции перевешивать возраст кода. Похоже, что Бруда.код ca является производным от более ранней версии GNU Emacs prolog.el, как указано в комментариях в bruda.код ca.
-
после того, как вы исправили значение переменной "load-path" (это аналогично переменной среды PATH), prolog.el должен правильно загружаться. Потому что нет файла документации для prolog.el, вот некоторые команды Emacs, которые вы можете использовать для начала изучения режима prolog:
C-h m -- отобразится справка по списку ключевых Привязок, определенных для режима prolog, а также любых других второстепенных режимов, которые могут иметь силу.
C-h A prolog -- отобразится справка по списку (интерактивных) команд, которые были определены по prolog-mode (пролог.Эль.)
Если вы не отключили меню, то запись меню для prolog должна быть доступна при каждом открытии файла в режиме prolog.
наконец, всегда есть чтение пролога.Эль (по крайней мере, описательные комментарии в верхней части файла). (Вторая половина файла указана как экспериментальный код.) Было бы хорошо, если бы это можно было обновить и добавить в пролог.el, который включен в GNU В Emacs.
вам нужен компилятор для Prolog, поэтому вам нужно установить один из перечисленных компиляторов. Затем, я полагаю, вы пишете Makefile и вызываете его через M-x compile
.
Если вы используете диспетчер пакетов Emacs, вы можете ввести M-x package-install RET prolog
, а затем перезагрузите Emacs.
простой и работает.
Я использую Fedora 15, но Emacs-это собственная операционная система.