片段用元音替换重音元音,而不是在崇高文本中使用波浪号

时间:2016-08-04 21:01:54

标签: sublimetext3 sublimetext sublime-text-plugin sublimetext-snippet

每次我输入一个LaTeX包(sublime text 3)片段时: (点),?,*,#,由部分\ label {sec:*****}和%section *****(end)中的“_”字符替换。也将大写字母替换为小写。这里是片段:

<snippet>
<content><![CDATA[
\section{${1:section name}} % (fold)
\label{sec:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3)/g}}}
${0:$TM_SELECTED_TEXT}
% section $2 (end)
]]></content>
    <tabTrigger>sec</tabTrigger>
    <scope>text.tex.latex</scope>
    <description>Section</description>
</snippet>

我的问题是:我怎样才能改变?用元音代替重音元音的片段,没有代字号,即 如果我使用该片段,结果是:

\section{acción además menú aquí acné} % (fold)
\label{sec:acción_además_menú_aquí_acné}

% section acción_además_menú_aquí_acné (end)

但我希望得到以下内容:

\section{acción además menú aquí acné} % (fold)
\label{sec:accion_ademas_menu_aqui_acne}

% section accion_ademas_menu_aqui_acne (end)

1 个答案:

答案 0 :(得分:2)

您可以通过手动指定要查找的字符以及要替换它们的内容来完成此操作。这是因为ST很遗憾似乎不支持POSIX character equivalents

使用以下代码段:

<snippet>
<content><![CDATA[
\section{${1:section name}} % (fold)
\label{sec:${2:${1/(?i:(á)|([éę])|(í)|(ó)|(ú)|(ń))|\\\w+\{(.*?)\}|\\(.)|(\w)|([^\w\\]+)/(?{10}_:\L$7$8(?1a:)(?2e:)(?3i:)(?4o:)(?5u:)(?6n:)$9)/g}}}
${0:$TM_SELECTED_TEXT}
% section $2 (end)
]]></content>
    <tabTrigger>sec</tabTrigger>
    <scope>text.tex.latex</scope>
    <description>Section</description>
</snippet>

输入sec 标签,然后在acción además menú aquí acné ńę中键入/粘贴会导致:

\section{acción además menú aquí acné_ńę} % (fold)
\label{sec:accion_ademas_menu_aqui_acne_ne}

% section accion_ademas_menu_aqui_acne_ne (end)

有关替换格式语法的详细信息,请参阅http://www.boost.org/doc/libs/1_56_0/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html