0

我正在写Latex,最近发现了以下一些片段:

snippet // "Fraction" iA
\\frac{$1}{$2}$0
endsnippet

snippet '((\d+)|(\d*)(\\)?([A-Za-z]+)((\^|_)(\{\d+\}|\d))*)/' "Fraction" wrA
\\frac{`!p snip.rv = match.group(1)`}{$1}$0
endsnippet

priority 1000
snippet '^.*\)/' "() Fraction" wrA
`!p
stripped = match.string[:-1]
depth = 0
i = len(stripped) - 1
while True:
    if stripped[i] == ')': depth += 1
    if stripped[i] == '(': depth -= 1
    if depth == 0: break;
    i -= 1
snip.rv = stripped[0:i] + "\\frac{" + stripped[i+1:-1] + "}"
`{$1}$0
endsnippet

snippet / "Fraction" iA
\\frac{${VISUAL}}{$1}$0
endsnippet

对于我的逻辑类,我们使用符号 v(u/y) 来表示某些东西,但我不希望 u/y 实际上成为分数。通常我所做的只是暂时注释掉这些片段,对于我的概率类,当我确实想要分数时,取消注释它们。

显然,这是对 Ultisnips 实用性的讽刺。我怎样才能让我的生活更轻松,例如,只需发出一个简单的 ex 命令来注释掉这些东西(而不注释掉我的 tex.snippets 的其余部分)?还有其他方法可以让我的生活更轻松吗?

4

1 回答 1

1

如果格式总是像示例一样,你可以使用 tpope/commentary 来做

:g/Fraction/norm gcap

否则,您需要在文件中找到适当的范围并执行

:[range]s/^/"/

是否可以v(u|y)在您的逻辑类中使用,完全避免使用片段?或者,在处理这些文件时禁用片段的自动触发(我认为 Ultisnips 无论如何都需要触发器。)

于 2019-11-05T12:45:11.790 回答