我有这样的崇高目录结构:
Packages
|-- Foo
| |-- Markdown.sublime-settings
|
|-- Bar
| |-- plugin.py
|
|-- User
|-- Markdown.sublime-settings然后,我尝试获取一个wrap_width值,存储在Foo/Markdown.sublime-setting中。由于某些原因,load_setting方法似乎无法工作,尽管save_settings工作得很好。
import sublime
import sublime_plugin
class MarkdownSettings(sublime_plugin.EventListener):
def on_activated(self, view):
path = view.file_name()
if path:
e = view.file_name().split('.')[1]
if e == ("md" or "mmd"):
# Simple test. It works
x = sublime.load_settings("Markdown.sublime-settings")
wrap_width = x.get("wrap_width")
print(wrap_width) # Prints 50
# If I change directory to "../Foo", `load_setting` method would not work
x = sublime.load_settings("../Foo/Markdown.sublime-settings")
wrap_width = x.get("wrap_width")
print(wrap_width) # Prints None
# The code below is added just for demonstration purposes,
# to show that `save_setting` method works fine.
x = sublime.load_settings("../Foo/Markdown.sublime-settings")
x.set("wrap_width", 20)
sublime.save_settings("../Foo/Markdown.sublime-settings") # File updated如何将wrap_width值存储在Foo/Markdown.sublime-settings中
发布于 2017-04-05 07:03:35
不支持在load_settings中使用路径。
来自reference.html#sublime
加载命名设置。名称应该包括文件名和扩展名,而不是路径。将在包中搜索与
base_name匹配的文件,并将结果整理到设置对象中。随后对带有load_settings()的base_name的调用将返回相同的对象,而不会再次从磁盘加载设置。
如果您确实需要这样做,则应该使用sublime.decode_value(sublime.load_resource('Packages/Foo/Markdown.sublime-settings'))。
https://stackoverflow.com/questions/43223648
复制相似问题