是否可以设置一个自定义环境变量,该变量可以从任何其他插件访问,就像$platform
和$path
的工作方式一样?
有Daniele Niero的软件包EnvironmentSettings,但看来我的任务比较简单,因此有可能不需要深入研究其代码。
答案 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
将其插入其他插件中。