自定义环境变量

Custom environment variable

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

Daniele Niero 有一个包 EnvironmentSettings,但我的任务似乎更简单,因此很可能无需深入研究其代码。

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

可以在 Default/exec.py 中找到一个简单的实际示例,您可以使用命令面板中的 View Package File 打开它。在 AsyncProcess()__init__ 方法中,如果您在 sublime-build 文件中传递 path 参数,则有修改 Sublime 进程环境的代码。

您可以从 Sublime 控制台 运行 的一个简单示例是以下代码段。执行该代码后,您创建的任何插件都可以访问 os.environ["MY_VARIABLE"] 以查看值。

import os
os.environ["MY_VARIBLE"]="Some Value"

话虽如此,在 Sublime 中 $platform 不是环境变量,它是 Sublime 知道如何扩展自身的特殊变量,它脱离了上面概述的系统环境。

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

from pprint import pprint
pprint(window.extract_variables())

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

这个 returns 的变量名称在 Sublime 核心中被硬编码并且不能被扩充,所以如果你想要额外的变量在这里你需要将它传达给其他插件并且他们会必须修改才能知道如何使用它们。

根据您在问题的评论中试图完成的声音,您想要的可能是一个 sublime-settings 文件,其中包含一个设置,该设置指定用于文件操作的目录自定义插件。如果他们都加载设置文件获取路径你可以在config中修改位置并立即生效。或者,您可以在一个插件中做一些类似于顶级模块变量的事情,然后 import 它进入其他插件。