win10崩溃,重装win7,结果sublime text插件无法安装,各种心塞,于是决定转战vscode。
与sublime text相比,vscode有不少优点:
中文输入法支持更好。在windows平台下,需要st支持中文输入需要安装各种插件,而且效果也是差强人意。
基础功能更全面。vscode自带插件管理、git、sidebar、集成终端、emmet等功能,st每次都需要自己安装,浪费时间。
但是st插件更丰富,vscode插件相对较少,vue相关插件vscode更是只有一个,而且使用起来有不少问题,并且作者已经很久没有更新了,折腾了一下午,最终可以用来编写vue项目了。
vscode关于vue插件现在只有vscode-vue一个,安装完成代码提示并没有生效,这是因为vue文件的语言模式默认为html,需要在setting.json中设置:
"files.associations": {
"*.vue": "vue"
}
但是此时编写样式emmet插件不能正确识别,所以我后来也放弃了这种方式。
仔细思考,编写vue项目主要需要:
代码补全&代码片段
emmet正确生成html标签
emmet正确生成css、scss
代码高亮
其中2、3、4点,在html中都是可以做到的,而vue的代码补全与代码片段只需要自己编写就可以了,于是我将vue文件的语言模式还原为默认的html,在用户代码片段中加入vue文件需要的代码片段(文件-首选项-用户代码片段-html),最终效果还可以。
添加的代码片段(持续更新):
{
// Place your snippets for HTML here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, ${id} and ${id:label} and ${1:label} for variables. Variables with the same id are connected.
// Example:
"Print to console": {
"prefix": "log",
"body": [
"console.log('$1')",
"$2"
],
"description": "Log output to console"
},
"Create vue template": {
"prefix": "vuec",
"body": [
"<template>",
"</template>",
"<script>",
"export default {",
" name: \"${1:component_name}\",",
" data () {",
"return {",
"}",
" }",
"}",
"</script>",
"<style lang=\"${2:css}\" scoped>",
"</style>"
],
"description": "Create vue template"
}
}
1.生成标签:直接输入标签名按tab键即可, 比如div 然后tab就可生成<div></div>
2.如果想要生成多个相同标签 标签名加上*号就可以, 比如:div*3 就快速生成3个div标签.
3. 如果有父子级关系, 可以使用>比如 ul>li 就可以.
4.如果是兄弟关系的标签用+号就可以了, 比如: div+p.
5.如果带有类名或者id名字的, 直接.dome 或者#two tab键就可以了.
6.如果生成的div类名是有顺序的, 可以用自增符号$. 比如 .dome$*3
初始化文档
HTML文档需要包含一些固定的标签,比如<html>、<head>、<body>等,现在你只需要1秒钟就可以输入这些标签。比如输入“!”或“html:5”,然后按Tab键或ctrl+e:
html:5 或!:用于HTML5文档类型
html:xt:用于XHTML过渡文档类型
html:4s:用于HTML4严格文档类型
轻松添加类、id、文本和属性
1、连续输入元素名称和ID,Emmet会自动为你补全,比如输入p#foo:2、连续输入类和id,比如p.bar#foo,会自动生成:
3、下面来看看如何定义HTML元素的内容和属性。你可以通过输入h1{foo}和a[href=#],就可以自动生成如下代码:
嵌套
现在你只需要1行代码就可以实现标签的嵌套
>:子元素符号,表示嵌套的元素
+:同级标签符号
^:可以使该符号前的标签提升一行
分组
可以通过嵌套和括号来快速生成一些代码块,比如输入(.foo>h1)+(.bar>h2),ctrl+e会自动生成:
隐式标签
声明一个带类的标签,只需输入div.item,就会生成<div class="item"></div>。在过去版本中,可以省略掉div,即输入.item即可生成<div class="item"></div>。现在如果只输入.item,则Emmet会根据父标签进行判定。比如在<ul>中输入.item,就会生成<li class="item"></li>。下面是所有的隐式标签名称:
li:用于ul和ol中
tr:用于table、tbody、thead和tfoot中
td:用于tr中
option:用于select和optgroup中
定义多个元素
要定义多个元素,可以使用*符号。比如,ul>li*3可以生成如下代码: