【问题标题】:How to set SublimeText to auto match brackets but neither quotes or parenthesis?如何将 Sublime Text 设置为自动匹配括号但既不匹配引号也不匹配括号?
【发布时间】:2014-07-20 15:39:51
【问题描述】:

我发现 sublime text 3 中的自动匹配行为在您输入代码时并不完全符合要求,更重要的是,当您返回实时编辑时,它可以添加您不使用的各种括号或引号真的不需要。

但它在自动匹配花括号 {} 方面几乎总是完美的,所以这仍然是一个非常有用的功能,特别是因为我用本地标记语言输入了很多。

我知道我可以关闭自动匹配,但我不想完全关闭该行为,只需将其修改为不自动匹配 "" 或 ()。

有谁知道为此输入用户设置的命令吗?

以下是我尝试解决此问题的步骤:

find ~/ -name "Sublime Text"
find ~/ -name "BracketHighlighter"

两者都不返回。所以我找不到这个'BracketHighlighter.sublime-settings'

我没有在硬盘上查找它,而是通过 Sublime Text 中的内置菜单访问它:

  • 首选项->
  • 包设置->
  • 括号高亮 ->
  • 括号设置 - 用户

最后一个菜单选项会打开一个名为“~/.config/sublime-text-3/Packages/User/bh_core.sublime-settings 的文件。我在其中粘贴了 AGS 答案中的代码并进行了切换:

"auto_match_enabled" : true,
"auto_match_enabled" : false,

当代码保存到 bh_core.sublime-settings 文件时,我尝试了两种自动匹配设置。这两个选项都不会产生预期的结果。启用自动匹配后,将匹配大括号、方括号和引号。关闭自动匹配后,不会匹配任何内容。但我已确认该模块已打开并处于活动状态,因为选中时括号会突出显示。

【问题讨论】:

    标签: regex autocomplete sublimetext2 sublimetext sublimetext3


    【解决方案1】:

    我知道我可以关闭自动匹配,但我不想完全关闭该行为,只需将其修改为不自动匹配 "" 或 ()

    您可以安装和自定义BracketHighlighter 包的设置。

    禁用系统自动匹配:

    ~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settings

    "auto_match_enabled": true,
    

    然后编辑:

    OS X 文件位置:

    ~/Library/Application Support/Sublime Text 2/Packages/User/BracketHighlighter.sublime-settings

    {
                "name": "round",
                "open": "(\\()",
                "close": "(\\))",
                "style": "round",
                "scope_exclude_exceptions": ["string.other.math.block.environment.latex"],
                "scope_exclude": ["string", "comment"],
                "language_filter": "blacklist",
                "language_list": ["Plain text"],
                "find_in_sub_search": "true",
                "ignore_string_escape": true,
                "enabled": true
            },
     {
                "name": "double_quote",
                "open": "(\")",
                "close": "(\")",
                "style": "double_quote",
                "scopes": ["string"],
                "language_filter": "blacklist",
                "language_list": ["Plain text"],
                "sub_bracket_search": "true",
                "enabled": true
            },
    

    【讨论】:

    • 我很接近,但是当我将它保存到文件@AGS时它给了我一个解析错误我去了首选项->包设置->括号荧光笔->括号设置-用户输入设置.我
    • 我在 Ubuntu 12.04 上使用 Sublime Text 3。不幸的是 'find ~/ -name "Sublime Text" 什么也没返回。要禁用匹配,您需要 "auto_match_enabled": false 但您将其设置为 true ,这是冲突的。最后,当通过将代码包装在方括号中来修复代码时,在通过首选项菜单将其添加到 Bracket Highlighter 的用户设置后,自动匹配设置为 true 或 false 后,功能无法正常工作,如上所述。
    • @advocate,我的代码 sn-p 是为了向您展示在 sublime-settings 文件中查看的位置。我在帖子中指出这些字段需要设置为false。很抱歉,根据您的 cmets,我无法理解您所做的工作以及哪些工作/没有工作。
    • 感谢@AGS 的快速跟进。我已经编辑了我原来的问题。如果没有大量的标记帮助,我无法在 cmets 中正确解释。
    • BracketHighlighter 似乎没有做任何自动匹配,我认为这是 sublime 插件的限制。我尝试在 Sublime Text 2/3 中进行上述设置;没有工作。文档没有提到自动匹配,代码也没有。这个答案已被接受,但没有后续行动是否或如何工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 2016-08-26
    相关资源
    最近更新 更多