Ned*_*tin 5 environment-variables sublimetext sublimetext2
我有一个需要从崇高文本2个设置文件(包Name.sublime的设置文件)中引用的Windows环境变量,特别是%APPDATA%和%TMP%
这是可能的,如果是的话,怎么样?
例如,以下是来自一个包设置的一行,它需要处理多个用户,因此使用不同的用户名:
"backup_dir": "C:\\Users\\Username\\AppData\\Local\\Temp\\SublimeBackup"
Run Code Online (Sandbox Code Playgroud)
作为一个例子,这里有一个我刚刚遇到的问题:我安装了Sublime Text 2,它运行在多台计算机上(即我复制其数据以保持多次安装之间的设置等),但我有以下内容命令:
{ "caption": "Backup to Server (Local to Server)", "command": "exec", "args": { "cmd": ["local-to-server.cmd"] } },
Run Code Online (Sandbox Code Playgroud)
不幸的是,文件"local-to-server.cmd"是相对于Sublime Edit中当前打开的文件,因此该命令很少有效.我需要的是:
{ "caption": "Backup to Server (Local to Server)", "command": "exec", "args": { "cmd": ["%APPDATA%\Sublime Text 2\Packages\User\local-to-server.cmd"] } },
Run Code Online (Sandbox Code Playgroud)
或者一些类似的引用公共位置的方法,然后我可以建立一个相对路径.
感谢@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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2619 次 |
| 最近记录: |