2011-03-13 97 views
10
GNU Emacs 23.2.1 
Fedora xfce 14 

我開始進入Prolog,我想用我的emacs作爲IDE在Prolog編程。使用prolog與emacs

目前我使用emacs for c/C++。但不知道如何開始使用Prolog。我知道emacs有一個內置的emacs編程庫。然而,我研究並發現它功能較少,即沒有語法高亮,縮進等。

所以我已經下載了emacs prackage Prolog.el。我已使用M-X Load-library加載此庫。

但是,我不知道該做什麼之後。我如何編譯我的序言文件?在emacs IDE的菜單中,它對Prolog沒有任何作用。

我還需要爲Prolog下載一些解釋器或編譯器嗎?是否有編譯的emacs命令?編譯c代碼時,我通常在emacs中使用make。

我做了百勝搜索序言和所有這些選擇哪一個呢,我需要?:

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

我有下載prolog.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)) 

所以,當我將文件保存爲*特等我得到的序言菜單選項。

所以我寫了一些序言代碼,並在序言菜單中,我選擇Run interactive prolog session

我得到第二個空白緩衝區中打開它說(Inferior Prolog:run Shell-Compile)

但是,我不知道我需要在此做階段。我如何編譯並運行prolog文件?

非常感謝您的支持。

+0

在一個側面說明:我不知道在您的內置序言模式來源於印象。也許你看過一些指的是Emacs的舊版本。在當前版本中,它絕對支持語法高亮和縮進。您可能會發現您下載的備用軟件包實際上可能已過時,並且內置模式比現在更好。 – 2011-03-13 13:53:30

回答

10

由於你的加載路徑是錯誤的,你沒有使用預期的高級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,它應該給你一個菜單有更多的選項。 (嘗試C-h v prolog-mode-version,其中只有與先進的模式下工作,並顯示出它的版本號。)

你可以再嘗試C-c C-b諮詢緩衝區等也可以考慮使用ediprolog,使用它可以在直接評估查詢Emacs緩衝區。還要注意的是,在最近的Emacs版本中,先進的Prolog模式的變體是新的默認,但不幸的是船舶嚴重的迴歸和缺陷,這樣我建議由斯特凡  Bruda保持了原來的版本:

https://bruda.ca/emacs/prolog_mode_for_emacs

有關Prolog和Emacs的更多信息,請參閱 ​​。

1

您需要用於Prolog的編譯器,因此您需要安裝列出的編譯器之一。然後,我想你寫了一個Makefile並通過M-x compile調用它。

7

您需要一個Prolog環境,如SWI-Prolog,GNU-Prolog或YAP。我認爲SWI是非常常用的,但我不知道它是否比其他人好。你不需要編譯Prolog文件來運行它們 - Prolog可以作爲解釋器(在某些情況下是交互式編譯器)。要將文件加載到Prolog環境中,您需要請參閱它。在Prolog模式下,emacs可以使用C-c C-f。您也可以直接從Prolog shell consult(File)輸入。

2

更完整的序言模式可以在這裏找到:Prolog mode for (X)Emacs 如果你搜索的字符串序言,模式鍵綁定的.el文件,或做一個C-H B,而在序言模式下你可以看到什麼是可用的。

如果安裝pl.x86_64: 您還可以使用SWI Prolog的內置編輯器中調用PceEmacs,在這裏看到:The SWI-Prolog builtin editor: PceEmacs SWI Prolog是非常完整,包括除了圖形化調試器The graphical tracer和自己的基於文本的調試器GUI系統The XPCE GUI system for Prolog加上很多庫。這是一個很好的探索前景。如果你想改用SWI Prolog和emacs,這裏是設置Using SWI-Prolog with GNU-Emacs

+0

你好,我想我現在快到了。但是,我不知道如何讓prolog.pl文件在emacs下編譯和運行?我用新信息更新了問題。謝謝。 – ant2009 2011-03-19 18:12:35

2

emacs模式的另一種替代方法是Ciao

2
  1. 仔細閱讀了prolog.pl安裝說明 - http://bruda.ca/emacs-prolog/install.html

  2. 重複着「墊子」 3月20日寫的,使用'添加到列表「而不是'setq」:

    (add-to-list'load-path「〜/ .emacs.d/site-lisp/prolog /」)

    這是「現代」用法,應該比你更清楚一點`setq'結構。

  3. 我還沒有仔細閱讀bruda.ca的prolog.el代碼,但它看起來有點過時了。但是,它看起來比GNU Emacs包含的代碼還要多得多。我不知道附加功能是否會超過代碼的老化程度。看起來,bruda.ca代碼是從早期版本的GNU Emacs prolog.el中派生出來的,正如bruda.ca代碼中的註釋所述。

  4. 一旦你糾正了`load-path'變量的值(它類似於PATH環境變量),prolog.el應該正確加載。由於沒有用於prolog.el的文檔文件,因此您可以使用以下Emacs命令開始探索prolog模式:

    Ch m - 這將顯示幫助以列出已爲prolog模式定義的鍵綁定,以及您可能有效的任何其他次要模式。

    C-h a prolog - 這將顯示列表(交互)命令的幫助,這些命令由prolog-mode(prolog.el)定義。

    如果您還沒有關閉菜單,那麼只要您在prolog模式下打開文件,prolog的菜單條目應該可用。

  5. 最後,總會看到prolog.el(至少是文件頂部的描述性註釋)。 (該文件的後半部分被列爲實驗代碼。)如果可以更新並添加到GNU Emacs中包含的prolog.el中,這將是一件好事。

1

如果您使用的是Emacs包管理器,您可以鍵入M-x package-install RET prolog,然後重新加載Emacs。

簡單而有效。

我使用Fedora 15,但Emacs是它自己的操作系統。

+0

感謝您的提示,我也使用Fedora 15。 – ant2009 2011-08-05 17:27:22

-1

走進SWI-Prolog的命令行,然後鍵入:

emacs.