在 Sublime Text 3 中构建时权限被拒绝

Permission Denied When Building in Sublime Text 3

我正在尝试在 Windows 10 上使用 Lua 和 Sublime Text 3。当我尝试构建和 运行 脚本时,我收到以下错误:

lua: cannot open C:\Program Files (x86)\Lua.1: Permission denied

我已经为该文件夹添加了完全权限。

我只是想 运行 一个简单的打印语句: print("hello")

在结果window中输出的预期结果是hello

Sublime 附带的用于执行 Lua 程序的构建系统如下所示:

{
    "cmd": ["lua", "$file"],
    "file_regex": "^(?:lua:)?[\t ](...*?):([0-9]*):?([0-9]*)",
    "selector": "source.lua"
}

这里的重要方面是要执行的命令是 lua,第一个参数是当前文件的名称。从您看到的错误消息来看,Lua 看起来它正在尝试执行目录而不是程序名称。或者如果你愿意,如果这是一个目录权限问题,我希望它告诉你它无法访问的文件的名称,而不是文件存储的文件夹。

同样可疑的是文件夹的名称是 lua 本身的安装位置,并且错误消息似乎表明它是 lua 本身产生错误。

基于所有这些,我的猜测是您在执行命令之前没有保存 Lua 脚本。这将导致 $file 扩展为一个空字符串,使第一个参数为空。由于构建使用 cmd,内部 windows 被专门告知 运行 一个名为 lua 的程序,第一个参数为空字符串。

看起来解释器首先尝试将当前工作目录放到文件名上然后执行它,由于文件名是空的,它最终尝试执行一个目录,这就是权限问题的来源来自.

一旦你第一次保存文件并且它有一个名字,Sublime 会在你每次 运行 构建时自动重新保存它,只要选中 Tools > Save all on build ;不过,该选项不会提示您保存尚未命名的全新文件。