SublimeText 3 - 动态启用/禁用不可见的空格选项

4

除了通过持久设置,是否有一种动态的方式来启用和禁用不可见的空格显示?

"draw_white_space": "all",

“动态方式”是什么意思?比如菜单项、键绑定或类似的东西吗? - OdatNurd
快捷键 - 启用/禁用不可见视图选项。 - nimbleNemo
1个回答

6
唯一控制空格显示状态的方法是通过更改您在问题中引用的设置 draw_white_space
// Set to "none" to turn off drawing white space, "selection" to draw only the
// white space within the selection, and "all" to draw all white space
"draw_white_space": "selection",

对于许多布尔值设置,您可以将键绑定到“toggle_setting”命令,告诉它您要在哪些设置之间切换。但是,对于“draw_white_space”选项,它需要一个字符串参数,其值为“all”,“selection”或“none”,因此标准的切换命令不起作用。
以下是一个简单的插件,它实现了一个“toggle_white_space”命令来执行此操作。要使用它,请从菜单中选择“工具>开发人员>新插件...”,替换您看到的存根代码为此处的插件代码,然后将其保存为Sublime默认位置(即您的“User”包)中的“.py”文件:
import sublime
import sublime_plugin


class ToggleWhiteSpaceCommand(sublime_plugin.TextCommand):
    def run(self, edit, options=["none", "selection", "all"]):
        try:
            current = self.view.settings().get("draw_white_space", "selection")
            index = options.index(current)
        except:
            index = 0

        index = (index + 1) % len(options)
        self.view.settings().set("draw_white_space", options[index])

定义的命令包含一个可选参数options,它允许您指定要在其之间切换的值,其中默认值是所有可能的选项。

您可以直接将按键绑定到该命令,以在设置的所有可能值之间切换状态,还可以使用以下内容,如果您只想在始终打开和始终关闭之间切换,则可以使用以下内容:

{
    "keys": ["super+s"],
    "command": "toggle_white_space",
    "args": {
        "options": ["all", "none"]
    }
},

请注意,尽管这是更改设置,但它直接应用于当前聚焦的视图,这是持久性的,但仅适用于该视图,并且只要该视图打开。这不会更改已经打开的其他文件或者将来可能打开的任何新文件的设置;这些文件的默认设置仍将是您在用户首选项中设置的设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接