我需要从Sublime Text 2设置文件(Package-Name.sublime-settings文件)中引用
Windows环境变量,特别是%APPDATA%和%TMP%
这是可能的,如果是的话,怎么样?
例如,以下是来自一个包设置的一行,它需要处理多个用户,因此使用不同的用户名:
"backup_dir": "C:\\Users\\Username\\AppData\\Local\\Temp\\SublimeBackup"
作为一个例子,这里有一个我刚刚遇到的问题:我安装了Sublime Text 2,它运行在多台计算机上(即我复制其数据以保持多次安装之间的设置等),但我有以下内容命令:
{ "caption": "Backup to Server (Local to Server)","command": "exec","args": { "cmd": ["local-to-server.cmd"] } },
不幸的是,文件“local-to-server.cmd”是相对于Sublime Edit中当前打开的文件,因此该命令很少有效.我需要的是:
{ "caption": "Backup to Server (Local to Server)","args": { "cmd": ["%APPDATA%\Sublime Text 2\Packages\User\local-to-server.cmd"] } },
或者一些类似的引用公共位置的方法,然后我可以建立一个相对路径.
解决方法
感谢@schlamar对设置的更正.我没有意识到他们坚持整个会议.我的所有插件都在本地使用它们,我不对它们进行任何修改,但这很有用.这是一个在ST加载时扩展变量的插件.应该在ST2和ST3都有效.
import os import sublime VERSION = int(sublime.version()) def expand_settings(): expand_settings = { "<setting file names>": [ "<setting keys to expand>" ] } for filename,setting_keys in expand_settings.items(): s = sublime.load_settings(filename) for key in setting_keys: value = s.get(key) s.set(key,os.path.expandvars(value)) def plugin_loaded(): expand_settings() if VERSION < 3006: expand_settings()