如何在Sublime Text 2片段中使用replace命令?

时间:2014-10-15 23:14:33

标签: sublimetext2 sublimetext

我在Sublime Text 2中定义了一个片段,如下所示:

<snippet>
    <content><![CDATA[
<cfqueryparam cfsqltype="cf_sql_${1:integer}" value="$SELECTION">
]]></content>
    <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
    <!-- <tabTrigger>hello</tabTrigger> -->
    <!-- Optional: Set a scope to limit where the snippet will trigger -->
    <!-- <scope>source.python</scope> -->
</snippet>

这可以正确地在所选文本周围创建cfQueryParam标记,并突出显示我可能需要为不同数据类型更改的cfSqlType部分。

但是,当对字符串使用它时,我需要先点击值的每一边,删除单引号,然后选择值并点击我的密钥绑定代码段。这需要两次鼠标点击,双击和三次按键,以及更精确的鼠标瞄准。使用整数,我只需要双击和一次按键。由于我有几千个文件要完成这些替换,这将会产生许多小时的工作差异。

是否可以在代码段中添加一些内容,使其删除特定字符,在这种情况下是单引号?我认为可以进行某种替换,但我在文档中找不到任何内容。

1 个答案:

答案 0 :(得分:1)

官方文档有点稀疏,但社区开发的unofficial documentation要完整得多。代码段中支持提升PCRE样式的正则表达式,有关信息,请参阅here。我会留给你开发用于删除引号的正则表达式:)

或者,有几个插件可以帮助您:Expand Selection to QuotesUnquote。每次运行“扩展选择到引号”命令时,它都会将选择范围扩展为下一组引号:

从这开始:

运行命令一次,在引号内选择字符串:

再次运行命令以选择引号:

然后运行Unquote命令删除引号,留下选择:

我建议创建一个运行expand_selection_to_quote两次,unquote一次,然后再运行您的代码段的宏。将此绑定绑定到与原始代码段不同的键绑定,因此您可以仅将片段用于单个单词,将宏用于字符串。

祝你好运!