如何创建自定义代码段,该代码段将自动输入我在变量前缀中键入的值?
我想要一个将创建html起始标签注释块的代码段。例如,如果我键入,/se hello
我希望结果是
<!-- $var start-->
<!-- $var end-->
在哪里$var
被替换为“你好”。感谢您的阅读!
正如VSCode片段文档所说,它使用TextMate为其片段提供动力。TextMate使用形式为$name
和的变量${name:default}
,幸运的是$TM_CURRENT_WORD
,这些变量可能足以满足您的需求。但是,没有内置变量可以直接在代码段名称(即$arg1
和$arg2
作为变量)之后获取多个参数。以为您可以对内插的Shell代码执行类似的操作,但是不幸的是:
片段语法遵循TextMate片段语法,但“插补外壳代码”和使用\ u除外。两者都不支持。
重点矿
但是,对于这个简单的示例,下面的索引变量示例可能就足够了。
<!-- $1 start-->
$0
<!-- $1 end-->
$i
为您提供了一个需要填写的值,您可以使用制表符在每个选项之间切换。的$0
是,其中,光标移到在该端部(所述摘录的默认的端部)。您可以选择执行以下操作:
<!-- ${1: default text} start-->
$0
<!-- $1 end-->
它将开始看起来像:
<!-- default text start-->
<!-- default text end-->
同时选择两个默认值进行编辑。
所有这些放在一起在snippets.json
文件中看起来像这样:
{
"se": {
"scope": "html",
"prefix": "se",
"body": [
"<!-- ${1:default text} start-->",
"\t$0",
"<!--$1 end-->"
]
}
}
正如@Mark所指出的那样,如果您希望它不仅可以用于HTML,还可以使用$BLOCK_COMMENT_START
,$BLOCK_COMMENT_END
并且每种语言都会有所不同。该代码段如下所示:
{
"se": {
// Leaving scope off will make it a global snippet
"prefix": "se",
"body": [
"$BLOCK_COMMENT_START ${1:default text} start $BLOCK_COMMENT_END",
"\t$0",
"$BLOCK_COMMENT_START$1 end $BLOCK_COMMENT_END"
]
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句