Добавить вкладку в выражении Python в UltiSnip
Я сделал модификацию примера, приведенного в документации UltiSnip:
snippet "be(gin)?( (\S+))?" "begin{} / end{}" br
\begin{${1:`!p
snip.rv = match.group(3) if match.group(2) is not None else "something"`}}${2:`!p
if match.group(2) is not None and match.group(3) != "proof":
snip.rv = "\label{"+t[1]+":}"`}
${3:${VISUAL}}
\end{$1}$0
endsnippet
который, по сравнению с оригинальным добавить \label{envname:}
и если envname
является proof
тогда мы не добавили это. Это может быть полезно, когда мы пишем thm
среда, например
be lem<tab>
дам
\begin{lem}\label{lem:}
<c-j>
\end{lem}
Единственный недостаток в том, что я не знаю, как добавить заполнитель в позиции \label{lem:$4}
, Любая идея?
1 ответ
Я получаю рабочую версию, но не чистую в коде:
snippet "be(gin)?( (\S+))?" "begin{} / end{}" br
\begin{${1:`!p
snip.rv = match.group(3) if match.group(2) is not None else "something"`}}${2:`!p
if match.group(2) is not None and match.group(3) != "proof":
snip.rv = '\label{'+t[1]+':'`$4`!p
if match.group(2) is not None and match.group(3) != "proof":
snip.rv ='}'`}
${3:${VISUAL}}
\end{$1}$0
endsnippet