2016-03-05 347 views

回答

2

由于您只是想调用cmd命令,您可以轻松编写自己的插件。
只需打开您的用户目录并创建一个python文件(例如run_lua.py)。
或者直接使用Tools >> New Plugin。
这个插件运行命令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以创建一个cmd,该cmd在执行该命令后将保持打开状态。暂停后会等待按键并关闭。 感谢@EgorSkriptunoff提示。

+0

可以用'cmd/k ...'而不是'cmd/c ...&pause' –

+0

@EgorSkriptunoff用'cmd/k'执行后会有一个打开的cmd。使用'&pause'时,它会以按键关闭,这在我看来是一种更好的行为。 –

+0

使用'cmd/k'可以在脚本终止后输入任意控制台命令,这非常有用。按Alt +空格键C关闭控制台窗口(3键而不是1)。 –

1

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

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

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

我认为该文档重点介绍的参数是关于配置您的终端并且不运行任何类型的命令。

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

+0

是否有插件允许我这样做? 我是谷歌搜索,但只发现终端。 – Parki

+0

据我所知,没有这样的插件,我试图找到一个过去,但我找不到满足我需要的东西。但是我发现只需使用您所说的插件即可轻松打开当前目录并运行我需要的命令。第一次可能是一个小的过程,但第二次可以使用命令提示符的历史记录来调用该命令。 – Rafael

0

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

+0

我想我会评论与删除我的答案:对于一些Lua版本,这很好地工作。但是,对于某些Lua版本来说,有一个错误会压制stdout。对于许多人来说,这将是一个明显的原因,而不是使用sublimeREPL插件。 –

相关问题