在SublimeREPL中错误启动Prolog

时间:2013-08-31 09:38:01

标签: prolog character newline sublimerepl

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

1 个答案:

答案 0 :(得分: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
| ?- 

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