4
我在为Sublime写一个插件,它将读取当前行的文本,将其作为shell命令执行,并将命令的输出放入编辑器。这是我到目前为止:在Sublime Text的路径中执行外部程序
import sublime, sublime_plugin, os, os.path
import subprocess
def GetLineAtCursor(view):
pos = view.sel()[0].a
reg = view.line(pos)
return view.substr(reg)
class ExecuteLineGetOutputCommand(sublime_plugin.TextCommand):
def run(self, edit):
line = GetLineAtCursor(self.view).strip().split()
output = subprocess.check_output(line,shell=True)
self.view.insert(edit, 0, output)
这是行不通的。具体来说,subprocess.check_output(...)
的调用不起作用,虽然它在python解释器中工作正常。我把它放在一个try块,像这样:
try:
output = subprocess.check_output(line,shell=True)
except Exception as e:
self.view.insert(edit, 0, str(e))
它产生下面的输出,似乎无论什么命令没有我尝试:
有谁知道问题是什么,以及如何修理它?