自定义环境变量

时间:2019-06-04 16:03:26

标签: environment-variables sublimetext3 sublimetext sublime-text-plugin

是否可以设置一个自定义环境变量,该变量可以从任何其他插件访问,就像$platform$path的工作方式一样?

有Daniele Niero的软件包EnvironmentSettings,但看来我的任务比较简单,因此有可能不需要深入研究其代码。

1 个答案:

答案 0 :(得分:1)

在Sublime中,任何插件都可以从Python运行时通过os.environ来修改全局进程环境。所有插件代码都在同一进程中运行,因此,一旦一个插件设置了环境变量,其他任何插件都可以访问它。我想这就是您在问题中链接到的程序包如何修改环境的方法。

可以在Default/exec.py中找到此操作的简单示例,您可以通过使用命令面板中的View Package File来打开它。在__init__的{​​{1}}方法中,如果您在AsyncProcess()文件中传递了path参数,则会有代码修改Sublime流程环境。

可以从Sublime控制台运行的一个简单示例是以下代码段。执行该代码后,您创建的任何插件都可以访问sublime-build来查看值。

os.environ["MY_VARIABLE"]

话虽如此,在Sublime import os os.environ["MY_VARIBLE"]="Some Value" 中,它不是一个环境变量,它是Sublime知道如何扩展自身的特殊变量,与上面概述的系统环境不同。

可以通过从Sublime控制台执行以下代码来查看此类变量的完整列表:

$platform

获得的变量列表及其内容取决于应用程序状态(平台,窗口中当前是否打开了项目,当前文件等)。

此返回的变量名称在Sublime核心中进行了硬编码,因此无法进行扩充,因此,如果您想要在此处添加额外的变量,则需要将其传达给其他插件,并且必须对其进行修改才能知道如何使用它们。

从您对问题的评论中想要完成的事情的声音来看,您想要的可能是一个from pprint import pprint pprint(window.extract_variables()) 文件,其中包含一个设置,该设置指定用于自定义插件中文件操作的目录。如果他们都加载设置文件以获取路径,则可以修改配置中的位置并使其立即生效。另外,您可以在一个插件中执行顶层模块变量之类的操作,然后sublime-settings将其插入其他插件中。