如何使特定于包的设置因语言而异?很容易使一般的 Sublime Text 设置因语言而异(例如,我可以使用 Python.sublime-settings 来设置特定于 Python 的缩进空格数)。但是我不知道如何更改特定包的设置(其设置似乎与一般应用程序设置处于不同的范围内)。
我特别想做的是更改 SublimeREPL 中的“show_transferred_text”参数。在 RI 中,我需要它为“假”,而在 Python 中,我需要它为“真”。有什么我可以添加到我的 Python.sublime-settings 中的“show_transferred_text”:true 行以指示这是 SublimeREPL 的参数吗?像这样设置不会更改 SublimeREPL 参数,我再次假设是因为特定于包的设置在不同的范围内。
这提供了一个开始,允许我编写一个插件来执行此操作,但我想知道它是否已经在 ST 中得到更简单的支持。是否有包范围或我可以添加到可以让我直接设置包 key 的 key 的东西?
最佳答案
好吧,我继续写了一个简短的插件来做到这一点。如果其他人需要做这样的事情,修改起来很简单。它只是 EventListener 的扩展,每次焦点更改时都会调用它。这是我第一次涉足 ST API,所以如果有人看到这个并且知道如何让它更简单/更干净,请告诉我!
import sublime, sublime_plugin
class PythonREPLHelperCommand(sublime_plugin.EventListener):
def on_activated(self, view):
syntax = view.settings().get('syntax')
if syntax=='Packages/Python/Python.tmLanguage':
plugin_settings = sublime.load_settings('SublimeREPL.sublime-settings')
plugin_settings.set("show_transferred_text", True)
else:
plugin_settings = sublime.load_settings('SublimeREPL.sublime-settings')
plugin_settings.set("show_transferred_text", False)
但我仍然很想知道是否可以在没有插件的情况下做到这一点!
关于python - Sublime Text 中特定于语言的包设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19434988/