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

时间:2019-04-10 01:38:54

标签: windows lua sublimetext3

我试图在Windows 10上使用带有Sublime Text 3的Lua。当我尝试构建和运行脚本时,出现以下错误:

  

lua:无法打开C:\ Program Files(x86)\ Lua \ 5.1:权限被拒绝

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

我仅尝试运行简单的打印语句: print("hello")

预期结果是在结果窗口中输出hello

1 个答案:

答案 0 :(得分:0)

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的程序,该程序的第一个参数为空字符串。

似乎解释器首先尝试将当前工作目录放到文件名上然后执行它,并且由于文件名为空,因此最终试图执行目录,这是权限问题的来源。

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