运行 来自 Sublime Text 的外部 python 脚本将活动文件作为参数传递

Run external python script from Sublime Text passing active file as argument

我在磁盘某处有一个名为 spc.py 的 python 脚本,用于以某种方式处理文本文件(并且它使用更多外部库)。现在我从控制台调用它并传递一个文件名作为参数。

因为我经常 运行 这个脚本,在编辑文档本身的过程中,我希望能够直接从 Sublime Text 调用脚本,将活动文件作为参数传递,这样我就可以不离开 window.

一键调用

但我还没有找到如何从 Sublime Text 插件调用外部 python 脚本的方法。你能给我一个线索吗?这可能吗?

您可以:

  • 创建一个接受当前文件作为参数的
  • 创建一个 plugin 来执行当前文件中的文本。

您可以使用提供的答案here获取当前sublime的文件名window。现在除此之外,您只需要一个接受路径作为输入参数的方法,然后从那里做您需要做的事情。

import sublime, sublime_plugin
import re, os, os.path

class OpenrelCommand(sublime_plugin.WindowCommand):
    def run(self):
    print self.active_view()

其中一种方法是使用子进程模块通过 cmd.exe 使用参数调用 python,并将活动文件的文件名作为参数发送给 python 程序。

import sublime, sublime_plugin
import subprocess

class ExecuteExternalProgramCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        exec_file = "C:\Path\To\My\Program\spc.py"
        command  = ["cmd.exe", "/c", "python", exec_file, self.view.file_name()]
        subprocess.Popen(command)

将其保存到您的 Sublime Text 用户插件文件夹,然后将键盘快捷键放入您的用户键盘映射,例如

{"keys": ["ctrl+shift+e"], "command": "execute_external_program"},