我在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部分。
但是,当对字符串使用它时,我需要先点击值的每一边,删除单引号,然后选择值并点击我的密钥绑定代码段。这需要两次鼠标点击,双击和三次按键,以及更精确的鼠标瞄准。使用整数,我只需要双击和一次按键。由于我有几千个文件要完成这些替换,这将会产生许多小时的工作差异。
是否可以在代码段中添加一些内容,使其删除特定字符,在这种情况下是单引号?我认为可以进行某种替换,但我在文档中找不到任何内容。
答案 0 :(得分:1)
官方文档有点稀疏,但社区开发的unofficial documentation要完整得多。代码段中支持提升PCRE样式的正则表达式,有关信息,请参阅here。我会留给你开发用于删除引号的正则表达式:)
或者,有几个插件可以帮助您:Expand Selection to Quotes
和Unquote
。每次运行“扩展选择到引号”命令时,它都会将选择范围扩展为下一组引号:
从这开始:
运行命令一次,在引号内选择字符串:
再次运行命令以选择引号:
然后运行Unquote命令删除引号,留下选择:
我建议创建一个运行expand_selection_to_quote
两次,unquote
一次,然后再运行您的代码段的宏。将此绑定绑定到与原始代码段不同的键绑定,因此您可以仅将片段用于单个单词,将宏用于字符串。