0

我想在 SublimeREPL 中使用 Prolog。我在 SublimeREPL 的配置文件中正确设置了解释器(swipl 或 gprolog),一切正常,除了一件事:the start character "?-"该行永远不会出现,如果得到一个结果,就像"X=1"我按 Enter 时那样,终端中发生的事情是打印一个点"X=1."并创建一个"?-".以 SublimeREPL 开头的新行在 SublimeREPL 中没有点并且新行不以任何内容开头。是否有解决方案具有相同的终端行为?

4

1 回答 1

0

通过使用以下Main.sublime-menu文件内容,我在 MacOS X 上运行的 Sublime Text 2 取得了部分成功:

[
     {
        "id": "tools",
        "children":
        [{
            "caption": "SublimeREPL",
            "mnemonic": "r",
            "id": "SublimeREPL",
            "children":
            [
                {"command": "repl_open", 
                 "caption": "Prolog",
                 "id": "repl_prolog",
                 "mnemonic": "l",
                 "args": {
                    "type": "subprocess",
                    "encoding": "utf8",
                    "cmd": ["gprolog"],
                    "cwd": "$file_path",
                    "external_id": "prolog",
                    "syntax": "Packages/Logtalk/Logtalk.tmLanguage"
                    }
                }
            ]   
        }]
    }
]

我得到了 GNU Prolog 启动横幅,我可以键入查询并获得查询结果。但是有一个问题我还没有通过处理新行来解决:当输入;要求 Prolog 解释器提供下一个证明时,我无法得到最后一个。例如:

GNU Prolog 1.4.4 (64 bits)
Compiled Apr 23 2013, 17:24:33 with /opt/local/bin/gcc-apple-4.2
By Daniel Diaz
Copyright (C) 1999-2013 Daniel Diaz
| ?- member(X, [1,2,3]).


X = 1 ? ;
;

X = 2 ? 

yes
| ?- 

似乎是处理回声和新行的问题。第一个;得到回应,但在获得第二个解决方案后我没有机会输入第二;个。

于 2013-08-31T11:02:43.253 回答