Sublime Text 自定义高亮显示 $

Sublime Text 自定义高亮显示 $

如何自定义 Sublime Text 3 中的语法高亮?特别是,我想忽略以 分隔的文本$(以及$在输入 时抑制“结束” $)。

我在用LaTeXTools

我尝试使用PackageResourceViewer: Open Resource并查看YAML 资源,但我能看到的LaTeX.sublime-syntax唯一与之相关的行是:$

 - match: '(?:<|>)(\{)\$(\})'
      scope: meta.column-specials.latex
      captures:
        1: punctuation.definition.column-specials.begin.latex
        2: punctuation.definition.column-specials.end.latex
    - include: scope:text.tex

我不明白这个语法。

答案1

您找不到该规则的原因是,在当前版本的语法中,它不在 中LaTeX.sublime-syntax,而是在 中TeX.sublime-syntax,您会在其中找到:

- match: \$\$
  captures:
    0: punctuation.definition.string.begin.tex
  push:
    - meta_scope: string.other.math.block.tex
    - match: \$\$
      captures:
        0: punctuation.definition.string.end.tex
      pop: true
    - include: scope:text.tex.math
    - include: main

- match: \$
  captures:
    0: punctuation.definition.string.begin.tex
  push:
    - meta_scope: string.other.math.tex
    - match: \$
      captures:
        0: punctuation.definition.string.end.tex
      pop: true
    - match: \\\$
      scope: constant.character.escape.tex
    - include: scope:text.tex.math
    - include: main

您可以更改meta_scope属性。我建议将第一个更改为 ,meta.environment.math.block.dollar.latex将第二个更改为meta.environment.math.inline.dollar.latex,因为这些是下一个测试版中 LaTeX 语法修订版中使用的范围,它们将确保数学模式补全继续有效。如果您不关心数学模式补全,您可以将其更改为您想要的任何内容。

覆盖$键绑定有很大不同。选择偏好设置 | 按键绑定 – 用户并添加以下键绑定:

{"keys": ["$"], "command": "insert_snippet", "args": {"contents": "\\$"}, 
    "context": [
        {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}
    ] 
}

请记住,这是 JSON 列表中的一个条目,因此文件应以 开头[]并且如果有前面的条目,则需要在它前面加一个逗号,等等。(请参阅文档$在这个例子中)。这只是告诉 ST在你$在 LaTeX 文档中输入内容时插入一个。

相关内容