我的需求
输入a,我希望出来的是:
<a href="" title="" rel="noopener noreferrer"></a>
而不是默认的:
<a href=""></a>
方法步骤
- 去你喜欢的路径下新建一个snippets.json
- 在里面写上你的自定义语法(怎么写?)
- 打开VSCode→设置→输入emm搜索
- 在Emmet: Extensions Path下填入你的路径(怎么填?)
- 重新打开或加载VSCode即可
常见问题
“为什么我用不了?”
说是常见问题,其实全部都是我亲身经历的问题……
由于不懂代码,网上也完全搜不到线索,真的超级绝望的……
我用最笨的办法排查了好久才找到怎么解决,还好结果值得!
特此记录,以助来者。
是路径格式的问题吗?
D:\software\VSCode\snippets.json为什么不行?
→
D:/software/VSCode/snippets.json也不行→不是Windows反斜杠的锅
→
D:/software/VSCode→行了,是路径不能带上文件本体的原因
→
D:\software\VSCode→也行的,斜杠正反不敏感
是json里面写错了吗?
我完全照着官方示例,照葫芦画瓢写的我的版本啊,为什么不行?
{
"html": {
"snippets": {
"a": "<a href="" title="" rel="noopener noreferrer"></a>
",
}
}
}
试了几种版本,集齐了VSCode的两种报错:
(喂!谁想集这个啊!(╯‵□′)╯︵┻━┻)
Found error CommaExpected while parsing the file
Found error PropertyNameExpected while parsing the file
最后找到真相的我泪流了出来,国粹飞了出来……
- 在JSON中,对象的最后一个键值对后面不能有逗号。
- 在JSON中,字符串本身包含的双引号需要用反斜杠转义。
虽然没写过JSON,但我写过CSS啊,句末加分号不是最佳实践吗?
怎么轮到这个JSON,反倒变成不能加了呢?
还能咋办,宠着咯!
转义双引号又是什么意思?
跟在html里把尖括号<写成<一个意思:
别让电脑误会我要开始写标签了!其实我只是想写个<而已。
在JSON里双引号"也同样地已经承担包裹字符串的任务了:
你不想让它误会,就得写成\"的形式才行。
说了这么多废话,还不快把正确示例交出来!
我的示例
{
"html": {
"snippets": {
"a": "<a href=\"\" title=\"\" rel=\"noopener noreferrer\"></a>",
"t": "<?php get_template_part('back-btn'); ?>",
"b":"<div><a href=\"<?php echo esc_url(home_url('/')); ?>\" class=\"banner\" title=\"Back to Home\">KazeLife</a></div>"
}
}
}
官方示例
{
"html": {
"snippets": {
"ull": "ul>li[id=${1} class=${2}]*2{ Will work with html, pug, haml and slim }",
"oll": "<ol><li id=${1} class=${2}> Will only work in html </ol>",
"ran": "{ Wrap plain text in curly braces }"
}
},
"css": {
"snippets": {
"cb": "color: black",
"bsd": "border: 1px solid ${1:red}",
"ls": "list-style: ${1}"
}
}
}
VSCode详细的官方说明点这里,我看不懂就不解读了。