我试图设置Sublime Text 2,以便我可以编写我的Oracle包,触发器,函数等。我让构建系统编译我的代码就好了。现在我正在尝试让Sublime Text在发生错误时将我带到确切的行/列位置。为此,您必须使用file_regex
选项 documented here 。
file_regex选项使用Perl样式的正则表达式进行捕获 来自构建程序的最多四个错误信息字段 输出,即:文件名,行号,列号和错误 信息。使用模式中的组来捕获此信息。该 文件名字段和行号字段是必需的。
我的问题似乎是filename
,这是第一个必需品。 我的问题就在最底层,但是让我告诉你一切是如何设置的,因为其他人可能觉得这很有用。
这是我的构建系统(compileSql.sublime-build
)...
{
"cmd": ["c:\\projectX\\compileSql.bat", "$file"],
"file_regex": "^([0-9]+)/([0-9]+)"
}
这是compileSql.bat
。所有这一切都是它创建一个名为runFile.txt
的新文件,其中包含我目前在Sublime文本中处理的文件,除了它使用set defined off;
启动文件,然后我的代码,然后结束与show errors;
然后登录并编译包(触发器,函数,等等)......
@echo set define off; > c:\projectX\runFile.txt
type %1 >> c:\projectX\runFile.txt
@echo show errors; >> c:\projectX\runFile.txt
sqlplus -s {user}/{pwd}@{database} @c:\projectX\runFile.txt
所以我要做的就是按 F7 并为我编译......
但是当我收到错误时,这就是结果......
当我点击错误时,不会将我带到该行号。相反,它会打开一个名为8
的文件。所以回到我的构建系统,我知道问题在于:"file_regex": "^([0-9]+)/([0-9]+)"
。 Sublime Text 2要求第一个匹配的模式为文件。这是我不能理解的部分,为什么需要知道这一点?这是我正在处理的文件,我刚刚按下 F7 的文件。因此,在正则表达式([0-9]+)/([0-9]+)
之前需要有一些东西,我不知道该放在那里。