Ultisnips: возможность отключить некоторые фрагменты с помощью одной команды ex? - PullRequest
0 голосов
/ 05 ноября 2019

Я пишу латекс, и недавно нашел некоторые из следующих фрагментов:

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) для обозначения чего-либо, но я неЯ не хочу, чтобы вы действительно стали дробью. Обычно я закомментирую эти фрагменты на данный момент, и для моего класса вероятности, когда я действительно хочу дроби, раскомментируйте их.

Очевидно, что это пародия на полезность Ultisnips. Как я могу упростить мою жизнь, например, просто выполнив простую команду ex, чтобы закомментировать эти вещи (не комментируя остальные мои tex.snippets)? Есть ли другой способ сделать мою жизнь проще?

1 Ответ

1 голос
/ 05 ноября 2019

Если формат всегда похож на примеры, вы можете использовать tpope / commentary, чтобы сделать

:g/Fraction/norm gcap

В противном случае вам нужно будет найти соответствующий диапазон в файле и выполнить

:[range]s/^/"/

Можно ли вместо этого использовать v(u|y) в вашем классе логики, полностью избегая фрагментов? В качестве альтернативы отключите автоматический запуск фрагментов при работе с этими файлами (я думал, что Ultisnips все равно требуется триггер).

...