Ultisnips:使用单个 ex 命令禁用某些片段的选项?
Ultisnips: option to disable some snips with a single ex command?
我正在写 Latex,最近发现了以下一些片段:
snippet // "Fraction" iA
\frac{}{}[=10=]
endsnippet
snippet '((\d+)|(\d*)(\)?([A-Za-z]+)((\^|_)(\{\d+\}|\d))*)/' "Fraction" wrA
\frac{`!p snip.rv = match.group(1)`}{}[=10=]
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] + "}"
`{}[=10=]
endsnippet
snippet / "Fraction" iA
\frac{${VISUAL}}{}[=10=]
endsnippet
对于我的逻辑 class,我们使用符号 v(u/y) 来表示某些东西,但我不希望 u/y 实际上变成分数。通常我所做的是暂时注释掉这些片段,并且我的概率 class,当我真的想要分数时,取消注释它们。
显然,这是对 Ultisnips 实用程序的讽刺。我怎样才能让我的生活更轻松,例如,只需发出一个简单的 ex 命令来注释掉这些东西(而不注释掉我 tex.snippets 的其余部分)?还有其他方法可以让我的生活更轻松吗?
如果格式总是像例子,你可以用tpope/commentary做
:g/Fraction/norm gcap
否则您需要在文件中找到合适的范围并执行
:[range]s/^/"/
是否可以在您的逻辑 class 中使用 v(u|y)
来完全避免片段?或者,在处理这些文件时禁用自动触发代码片段(我认为 Ultisnips 无论如何都需要触发器。)
我正在写 Latex,最近发现了以下一些片段:
snippet // "Fraction" iA
\frac{}{}[=10=]
endsnippet
snippet '((\d+)|(\d*)(\)?([A-Za-z]+)((\^|_)(\{\d+\}|\d))*)/' "Fraction" wrA
\frac{`!p snip.rv = match.group(1)`}{}[=10=]
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] + "}"
`{}[=10=]
endsnippet
snippet / "Fraction" iA
\frac{${VISUAL}}{}[=10=]
endsnippet
对于我的逻辑 class,我们使用符号 v(u/y) 来表示某些东西,但我不希望 u/y 实际上变成分数。通常我所做的是暂时注释掉这些片段,并且我的概率 class,当我真的想要分数时,取消注释它们。
显然,这是对 Ultisnips 实用程序的讽刺。我怎样才能让我的生活更轻松,例如,只需发出一个简单的 ex 命令来注释掉这些东西(而不注释掉我 tex.snippets 的其余部分)?还有其他方法可以让我的生活更轻松吗?
如果格式总是像例子,你可以用tpope/commentary做
:g/Fraction/norm gcap
否则您需要在文件中找到合适的范围并执行
:[range]s/^/"/
是否可以在您的逻辑 class 中使用 v(u|y)
来完全避免片段?或者,在处理这些文件时禁用自动触发代码片段(我认为 Ultisnips 无论如何都需要触发器。)