vscode中vue怎么格式化代码

html-css011

vscode中vue怎么格式化代码,第1张

PS:现在推荐使用vetur插件

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可以生成如下代码: