Sublimetext3 如何在Sublime中设置更改设置值的键绑定?

Sublimetext3 如何在Sublime中设置更改设置值的键绑定?,sublimetext3,Sublimetext3,我希望绑定“alt+f11”绑定以切换“draw_居中”,这将使文本居中,如同在无干扰模式下一样。但我不知道如何让它发挥作用 到目前为止,这是我的钥匙: //if draw_centered == true, set to false { "keys": ["alt+f11"], "command": "set_setting", "args": { "setting": "draw_centered", "value": "true", },

我希望绑定“alt+f11”绑定以切换“draw_居中”,这将使文本居中,如同在无干扰模式下一样。但我不知道如何让它发挥作用

到目前为止,这是我的钥匙:

//if draw_centered == true, set to false
{ "keys": ["alt+f11"], "command": "set_setting", "args":
    {
        "setting": "draw_centered",
        "value": "true",
    },

    "context":
    [
        { "key": "setting.draw_centered", "operator": "equal", "operand": false}
    ]
},

//if draw_centered == false, set to true
{ "keys": ["alt+f11"], "command": "set_setting", "args":
    {
        "setting": "draw_centered",
        "value": "false",
    },

    "context":
    [
        { "key": "setting.draw_centered", "operator": "equal", "operand": true}
    ]
}

我找不到一个自动切换“以绘图为中心”的命令,所以我不得不求助于构建某种高级命令。我在理解关于键绑定的文档时遇到了一些困难,但我尝试遵循“上下文”示例。有人能指出我做错了什么吗

感谢sergioFC提供有关切换设置的提示!我让它与以下代码一起工作:

{ "keys": ["alt+f11"], "command": "toggle_setting", "args":
    {
        "setting": "draw_centered",
    }
}
编辑:我发现了一个错误。现在使用组合键“alt-f11”后,无分心模式的表现不正常。现在,当我从正常模式切换到无分心模式时,它遵循以绘图为中心的状态


例如:如果打开一个文件并单击“alt-f11”使我左对齐(即draw_centered=false),则当我进入无干扰模式时,窗口将保持左对齐。关于为什么会出现这种情况以及如何解决它,有什么想法吗?

有点晚了,但我花了一段时间才发现如何做类似的事情,这是我试图实现的最接近的问题

toggle_设置仅在当前视图(您正在处理的文件)中起作用,在其他选项(如show_encoding)中也不起作用,因为这些选项与视图没有太大关系,而不是面板范围的一部分

挖掘了几个小时后,我发现了一个名为Cycle Settings的旧插件,这是一个用于Sublime 2的插件,但稍作调整后,它就如预期的那样工作了

(我记得有一个选项可以直接在sublime中创建包,但不记得在哪里…)

转到首选项/浏览软件包…并在那里创建一个新文件 “循环设置/Cycle\u setting.py”和以下代码:

“”“
为升华文本3循环设置插件。
版权所有2011杰西·麦卡锡
添加可从键绑定调用的命令以切换或
循环查看设置的值。
该软件可在麻省理工学院(又名X11)许可证或简化许可证下使用
BSD(又名FreeBSD)许可证。请参阅许可证
"""
导入升华,升华插件
类CycleSettingCommand(升华插件.TextCommand):
def运行(自我、编辑、设置、选项):
“”“将$设置循环到下一个$选项”“”
索引=len(选项)
如果没有索引:
返回
设置=升华。加载设置(“首选项。升华设置”)
value=settings.get(设置)
如果选项中有值:
索引=选项。索引(值)
指数+=1
如果索引>=len(选项):
索引=0
值=选项[索引]
设置。设置(设置,值)
升华。保存设置(“首选项。升华设置”)
self.view.set_状态(
“循环设置”,
设置“{Setting}”循环为值“{value}”。格式(**locals())
)
现在,让我们使用新命令进行绑定

转到首选项/键绑定

[
    {
        "keys": ["f5"],
        "command": "cycle_setting",
        "args": {
            "setting": "draw_centered",
            "options": [true, false]
        }
    },
    {
        "keys": ["shift+f5"],
        "command": "cycle_setting",
        "args": {
            "setting": "default_line_ending",
            "options": ["system", "windows", "unix"]
        }
    }
]
我们的命令所做的是在选项数组中循环,并将循环中的当前选项保存到用户/首选项。升华设置


我希望这对其他人有所帮助,实际上我花了一段时间试图找到如何通过许多外部插件命令来实现这一点,以这样的速度,我很快就会用光所有的组合键

尝试对true和false以及not字符串使用布尔值。此外,还有一个名为toggle_setting的命令可能对您有用。无干扰切换以绘图为中心。因此,您可能需要在用户无干扰模式设置中将
draw\u centered
设置为
false
。这会让你在shift+f11之前点击alt+f11。只是尝试一下,它什么都不做,不管我把它设置为真还是假。您是指“AppData\Roaming\Sublime Text 3\Packages User\Distribution free.Sublime settings”中的无分心模式设置文件,对吗?(这是在Windows机器上为我打开的首选项->设置-更多->无干扰-用户)