如何在Sublime Text 3中通过cmd运行一个lua文件?

我想通过cmd运行lua文件(由于某些原因,我不能使用构建系统)。

我该怎么做?

点赞
用户4946896
用户4946896

根据插件的特性,我认为你不能做到这一点:

在包含当前编辑文件的文件夹中打开终端

在包含当前编辑文件的项目文件夹中打开终端

该插件只会打开终端到您的项目/文件目录。

我认为文档强调的参数是关于配置你的终端而不是运行任何类型的命令。

无论如何,该插件会使您的生活更轻松。 您可以在工作目录中打开命令提示符/终端,然后只需运行所需的命令。之后,您可以使用命令提示符的历史记录(箭头向上箭头向下)导航到以前的命令。

2016-03-05 12:06:52
用户5963435
用户5963435

由于你只是想调用cmd命令,所以你可以很容易地编写自己的插件。

只需打开您的用户目录并创建一个Python文件(例如“run_lua.py”)。

或者只需转到“工具”>>“新建插件”。

此插件运行命令lua $file,然后暂停,直到用户按下键:

import subprocess
import sublime_plugin

class RunLuaCommand(sublime_plugin.WindowCommand):
    def run(self):
        view = self.window.active_view()
        subprocess.Popen(["cmd", "/c", "lua", view.file_name(), "&", "pause"])

添加按键绑定:

{
    "keys": ["alt+b"],
    "command": "run_lua",
},

更通用的方法:

import subprocess
import shlex
import sublime
import sublime_plugin

class RunCmdCommand(sublime_plugin.WindowCommand):
    def run(self, command):
        variables = self.window.extract_variables()
        command_expanded = sublime.expand_variables(command, variables)
        # run in cmd
        command_arr = ["cmd", "/c"]
        # run the command
        command_arr.extend(shlex.split(command_expanded, posix=False))
        # afterwards wait for a key
        command_arr.extend(["&", "pause"])
        # execute the command
        subprocess.Popen(command_arr)

使用按键绑定:

{
    "keys": ["alt+b"],
    "command": "run_cmd",
    "args": {
        "command": "lua $file"
    }
},

PS. 您还可以使用cmd /k而不是cmd /c,并省略末尾的& pause来创建一个在执行命令后保持打开的命令提示符。 如果在命令之后加上pause,则会等待按键后关闭。感谢@EgorSkriptunoff的提示。

2016-03-05 14:38:06
用户2184122
用户2184122

你可能需要考虑使用 sublimeREPL 插件。它会打开一个命令提示符作为一个新的“代码选项卡”。我需要将我的 lua 安装添加到我的路径中。它会打开一个交互式 shell 并支持多种 shell,包括 Lua。

2017-09-16 12:11:26