Sublime Text的特殊片段

时间:2017-02-01 06:37:19

标签: html sublimetext2 sublimetext3 sublimetext sublime-text-plugin

在过去的几天里,我不得不使用stackoverflow,在其中我发现了一个非常有用的开发人员。谢谢大家!!

我正在开展大项目,我需要一点帮助。我在Sublime Text 3上使用moodle xml文件。

这是我所拥有的代码的一小部分:

<questiontext format="html">
  <text>Here is my sample text</text>
</questiontext>

我需要将其转换为:

<questiontext format="html">
  <text><![CDATA[<audio preload="auto"><source src="https://www.mywebsite.com/sample.mp3"></audio>Here is my sample text?]]></text>
</questiontext>

问题是我需要改变大约400行,这是我需要改变的。文字&#34;这是我的示例文本&#34;到处都是不同的。我怎样才能做出这样的转变?创建一个片段?老实说,我已经研究了如何创建片段,但是无法弄清楚如何创建这样的片段...欢迎所有的学习消息

1 个答案:

答案 0 :(得分:1)

一个片段用于输入常用文本(即文本片段),以节省您输入新文本的时间。如果您已经有需要修改的文本,则代码片段不是答案。

为此,您希望使用查找和替换执行某些操作,尤其是使用Regular Expression查找和匹配所需的文本。

对于上面的示例,过程将类似于以下内容:

从菜单中选择public string tostrFor(int n) { string s = ""; for (int index = 0; index < string.Concat(n--, "").Length; index++) { char c = string.Concat(n--, "")[index]; s = s + c; } return s; } 或使用适用于您操作系统的相应按键打开替换面板(如果您不知道,可在菜单中看到它)。

在显示底部的面板中,确保&#34;正则表达式&#34;和#34;突出显示匹配&#34;打开,&#34;保存案例&#34;被关闭了。请参阅按钮上的工具提示。

接下来,在Find > Replace...中,输入您要查找的文字,例如:

Find What

正则表达式部分是<text>(.*)</text> ,它表示&#34;匹配任何字符序列,包括任何字符序列,并捕获(保存)您选择的内容&#34;。

当您输入文本时,如果您在缓冲区中观看,您将看到Sublime概述正在匹配的文本,因为我们打开了#34;突出显示匹配&#34;。

(.*)面板中,输入以下文字:

Replace With

这里神奇的部分是靠近末尾的位置<text><![CDATA[<audio preload="auto"><source src="https://www.mywebsite.com/sample.mp3"></audio>\1\?]]</text> ;说&#34;插入我们在查找字段中捕获的第一件事,然后是问号&#34 ;;文本的其余部分是您在问题中指定的内容。

如果您的示例并非真的需要在文本末尾添加问号(在您添加的示例中),那么您就不需要\1\?部分。< / p>

现在您可以按\?ReplaceReplace All的所有实例都将替换为替换字符串,除了{什么不重要} {1}}部分是因为原始行中的文本将被保留。

根据您的实际情况,您可能需要根据需要进行调整(例如,如果您的示例文字没有很好地布置或者某些内容)。

我推荐this tutorial之类的东西(我也在上面链接),以便更深入地了解正在发生的事情。特别是,这将解释为什么,为了添加问号,您需要使用<text>something</text>而不仅仅是something,我完全掩饰了它,因为它对读者来说是一个很好的练习。 ;)