大家好,我试图在崇高中制作一个片段。这样它就会占用字符串并将它们放入位置1,2等等。
例如,这是我的字符串:
a, b, c, d, e
我想在其上运行代码段,以便进入:
console.info('a:', a, 'b:', b, 'c:', c, 'd:', d, 'e:', e);
我希望它适用于任意数量的变量,因此即使是a, b, c
它也会吐出console.info('a:', a, 'b:', b, 'c:', c)
我尝试了各种各样的崇高片段教程但无法管理它,这可能吗?
答案 0 :(得分:2)
Sublime文本有snippet substitutions但您可能不熟悉它的语法。您可以使用此示例代码段内容:
<content><![CDATA[
console.info(${SELECTION/(\w+)[^\w]*/'\1\:', \1, /g}'_END_');
]]></content>
<强>解释强>:
我们替换
的每一次出现(\w+)[^\w]*
选择中的:
'\1\:', \1,
\w
内部匹配单词字符(字母,数字或非字符)。这些是变量名称使用的字符。\w+
匹配contiguos \w
,因此它匹配变量名称,而[\w]*
匹配非单词字符(空格,逗号,分隔符......)\1
表示输出在第一组中捕获的字符串(变量名称)。因此,'\1\:', \1,
'variableName:', variableName
替换
\g
修饰符表示这是全局完成的,对于选择内的每个变量名称($SELECTION
变量)。这部分增加了一个问题,因为a, b, c, d
被替换为'a:', a, 'b:', b, 'c:', c, 'd:', d,
(查看有问题的额外最终逗号)。这就是为什么我添加了一个最终的'_END_'
令牌,这是一个可能你想要用空字符串替换的workarund。
请记住,我们没有区分变量名之间的分隔符,因此您可以使用逗号,空格,引号等,因为只会捕获变量名。
所以两者:
age, name, height, weight
age name, height weight
在选择文本并使用以下代码调用代码段(键绑定或命令为palete)时替换:
console.info('age:', age, 'name:', name, 'height:', height, 'weight:', weight, '_END_');