【问题标题】:Is there a way of making sublime snippets with a regex trigger?有没有办法用正则表达式触发器制作崇高的片段?
【发布时间】:2019-08-18 01:08:00
【问题描述】:

我正在尝试制作一个由正则表达式触发的 sn-p。在 Sublime Text 3 中甚至可能吗?

我试过了,但没有触发。我已经检查过 sublime 是否使用 Find and Replace 选项正确替换了它。

<snippet>
<content><![CDATA[$1_$2
]]></content>
<tabTrigger>([a-zA-z])(\d)</tabTrigger>
<description></description>
<scope>text.tex.latex</scope>
</snippet>

我希望通过在任何与字符后跟数字匹配的单词后按 Tab 来触发我的 sn-p,并将其替换为字符、_ 和数字。

示例

a1 变成 a_1

X0 变成 X_0

【问题讨论】:

    标签: regex sublimetext3


    【解决方案1】:

    sublime-snippet 文件的触发文本必须是文字文本才能触发; Sublime 不会根据正则表达式匹配它。要执行类似的操作,您需要一个绑定到 tab 键(例如)的插件命令,该命令触发一个命令,该命令检查光标左侧的文本以查看它是否匹配正则表达式和然后在此基础上展开。

    我不知道有一个通用包可以做这样的事情(尽管Emmet 这样做是为了扩展 HTML 标记,但它不是通用的并且已知会干扰常规的制表符完成),但可能列出了一个package control.

    Sublime 论坛上的This forum post 包含一个示例插件,该插件的功能与此非常相似,不过,作为此类事情的起点,它可能很有用。根据您上面的示例,只要您将示例中的scope 换成您的 sn-p 中的那个,它就应该做您想做的事情,以便它在 LaTeX 文件而不是 Markdown 中触发。在这种情况下,您可能还需要重命名命令。


    [编辑]如果您不确定如何在 Sublime Text 中使用插件,this video 将介绍如何使用。

    【讨论】:

    • 我必须做什么才能使用sublime 和sublime_plugin 导入?
    • @MaxWell Sublime 自己提供它们,因此您只需将插件保存在适当的位置,它会自动找到它们。如果您不熟悉,我添加了一个视频链接,该视频介绍了如何在 Sublime 中使用插件。
    • 是的,最后一条评论很有帮助。它完全奏效了!你有没有其他关于在 Sublime 上使用插件可以做的事情的教程?
    • 此外,如何让插件在 LaTeX 数学环境中自动触发?
    • @MaxWell 还没有,但这是我正在为即将在我的 YouTube 频道上播放的视频所做的事情之一。如果有足够具体的范围,则可能仅在数学环境内触发它,但我一般对 LaTeX 知之甚少。可能值得用一些 LaTeX 示例和用于语法高亮显示的包的名称(如果有的话)提出一个单独的问题。
    【解决方案2】:

    我的猜测是,也许是这个表达方式,

    (?i)(?<=<tabTrigger>[a-z])(?=\d<\/tabTrigger>)
    

    替换为_ 可能是您可能想到的,例如。


    如果您想探索/简化/修改表达式,它已经 在右上角的面板上进行了解释 regex101.com。如果你愿意,你 也可以在this link看,怎么搭配 针对一些样本输入。


    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      相关资源
      最近更新 更多