首页 > 其他分享 >VS Code 中 HTML文件使用emmet语法 感叹号!+Tab 生成HTML元素的修改方法

VS Code 中 HTML文件使用emmet语法 感叹号!+Tab 生成HTML元素的修改方法

时间:2023-06-21 12:02:54浏览次数:71  
标签:文件 Code vscode html VS HTML 感叹号 emmet snippets

在 visual studio code(以下简称 vscode)新建一个html,输入!后会提示按tab键生成html元素:

image

这种方法生成的格式不适合我们,需要修改它;

image

方法一,原有基础上简单的修改 lang 和 charset 这两个

在 vscode 上,依次:文件 - 首选项 - 设置 ,输入 emmet.variables 然后 添加项,如下图:

image

建议:搜索 Trigger Expansion On Tab 同样勾上;

这样,再生成就是这样了:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

方法二,使用emmet语法彻底自定义这个感叹号的模板(推荐)

注意:此方法需要了解 emmet 语法,当然这语法很简单;

参考 vscode 的官方文档:https://code.visualstudio.com/docs/editor/emmet#_using-custom-emmet-snippets

官方翻译是:要自定义 Emmet 代码片段需要在名为 snippets.json 的 json 文件中定义。ExtsionsPath 设置应该包含包含此文件的目录的路径。

白话文是:在 vscode 的设置中找到 emmet Extensions Path 设置项,填入你自定义的本地绝对路径,要求这个路径里面必须包含 snippets.json 文件,这文件用来定义emmet代码片段的,包括覆盖 感叹号!

操作:

1、在 C:\Users\你的用户名\AppData\Roaming\Code\User 上新建一个 emmet 文件夹,里面新建一个 snippets.json 文件,内容是:

{
  "html": {
    "snippets": {
      "!": "{<!DOCTYPE html>}html[lang=zh-CN]>(head>meta[charset=UTF-8]+meta[name=viewport content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0, minimal-ui:ios\"]+meta[http-equiv=X-UA-Compatible content=\"ie=edge\"]+title{Document}+link[rel=stylesheet href=\"${1}\"]+script[src=\"${2}\"])+body"
    }
  },
  "css": { 
    "snippets": {    
    }
  }
}

2、在 vscode 上,依次:文件 - 首选项 - 设置 ,输入 emmet Extensions Path 然后添加项,填入你的路径:C:\Users\你的用户名\AppData\Roaming\Code\User\emmet\

image

重启 vscode,再试一下,下面就是生成的:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0, minimal-ui:ios">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link rel="stylesheet" href="">
    <script src=""></script>
</head>
<body>
    
</body>
</html>

方法三:不使用自带的emmet,而是用自己的代码片段(推荐)

这种方法,不需要了解 emmet 语法,与 方法二 没啥不同;

在vsc上,依次:文件 - 首选项 - 配置用户代码片段 - 打开 html.json(没有就新建,如下图)

image

image

用下面的来替换:

{
    "diy h5": {
        "prefix": "!",
        "body": [
            "<!DOCTYPE html>",
            "<html lang=\"zh-CN\">\n",
            "<head>",
            "\t<meta charset=\"UTF-8\">",
            "\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0,minimal-ui:ios\">",
            "\t<meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">",
            "\t<title>Document</title>",
            "\t<link rel=\"stylesheet\" href=\"$1\">",
            "\t<script src=\"$2\"></script>",
            "</head>\n",
            "<body>\n$3",
            "</body>\n",
            "</html>"
        ],
        "description": "The full sample code - html5."
    }
}

然后,就能看到我们的代码片段了:

image

第一个感叹号是 emmet 的代码片段,第二个才是我们要的,要隐藏第一个感叹号!,步骤如下:

在方法二中, 将 snippets.json 文件的感叹号的值,改为 \t ,重启vsc即可;

{
  "html": {
    "snippets": {
      "!": "\t"
    }
  }
}

方法四,不使用感叹号!+tab,而是使用 html:5 来生成html骨架

在 vscode 上,依次:文件 - 首选项 - 设置 - 搜索 emmet Abbreviation,如下图勾选:

image

然后在html文件中直接输入html,然后会提示html:5,选择这个回车也就可以自动生成html模板了:

image

参考
https://code.visualstudio.com/docs/editor/emmet#_using-custom-emmet-snippets
https://blog.csdn.net/m0_56991207/article/details/125697024

标签:文件,Code,vscode,html,VS,HTML,感叹号,emmet,snippets
From: https://www.cnblogs.com/abc1069/p/17495908.html

相关文章

  • Porting Code to Python 3 with 2to3
    参考https://www.cmi.ac.in/~madhavan/courses/prog2-2012/docs/diveintopython3/porting-code-to-python-3-with-2to3.html......
  • IDEA 取消“Commented out code (3 lines) ” 提示
    IDEA  多行注释,会提示“Commentedoutcode(3lines)”,怎么取消?File>Setting>CodeStyle>Inspections>Java 把“Commentedoutcode”的对钩取消之后就可以了。  ......
  • 世界知名XML专家力作 ——《重构HTML:改善Web应用的设计》
    世界知名XML——《重构HTML:改善Web媒体评论Elliotte的著作在我的书架上始终占据一席之地。……他通过本书把重构的益处带入了HTML世界。                                   ——MartinFowler ......
  • Martin Fowler谈《重构HTML:改善Web应用的设计》
    MartinFowler谈《重构HTML:改善Web仅仅十余年,Web就从一门大有希望的技术演变成了世界基础设施的重要组成部分。在这个绚丽迷人的年代中,涌现了许多有用的资源。一如往常,我们在追求最佳实践的过程中不断地学习技术,而技术本身的成熟也促使我们更好地使用它。无论多么复杂的Web应......
  • VS编译错误 【xxx.exe 已退出,代码为 9】【Microsoft.TypeScript.targets(561,5): erro
    先直接上图。错误列表报错如下: 输出列表报错如下: 解决思路如下:1、查了百度,没找到有用的东西。2、看了微软的官方,MSB6006:“process”在退出时出现代码`exitcode`。-MSBuild|MicrosoftLearn原文是“执行命令并返回非零退出代码或指示其输出中出现错误时,会发生此错......
  • AtCoder Regular Contest 162 E Strange Constraints
    洛谷传送门AtCoder传送门完全没有思路。但是其实不难的。设\(d_i\)为\(i\)在\(B\)中的出现次数,题目要求:\(\foralli\in[1,n],d_i\leA_i\);对于位置\(i\),\(d_j\leA_i\)的数\(j\)可以被放到\(B_i\)。考虑按照\(d_i\)从大到小dp。设\(f_{i,j,k}\)......
  • CodeForces 合集
    1838E.CountSupersequenceshttps://codeforces.com/contest/1838/problem/E题意给定\(n,m,k\),一个长度为\(n\)的序列\(a=(a_1,a_2,\dots,a_n)\),满足\(1\leqa_i\leqk\),求有多少个序列\(b=(b_1,b_2,\dots,b_m)\),满足\(a\)是\(b\)的一个子序列,并且\(......
  • 文心一言 VS 讯飞星火 VS chatgpt (43)-- 算法导论5.4 7题
    七、为使特征序列长度的下界变得更精确,请说明在n次硬币的公平抛掷中,不出现比Ign-2lglgn更长的连续正面特征序列的概率小于1/n。文心一言:在n次硬币的公平抛掷中,每个硬币正、反面朝上的概率均为1/2。让我们考虑一个事件A,其表示在n次抛掷中不出现比连续lgn更长的连续......
  • 文心一言 VS 讯飞星火 VS chatgpt (43)-- 算法导论5.4 7题
    七、为使特征序列长度的下界变得更精确,请说明在n次硬币的公平抛掷中,不出现比Ign-2lglgn更长的连续正面特征序列的概率小于1/n。文心一言:在n次硬币的公平抛掷中,每个硬币正、反面朝上的概率均为1/2。让我们考虑一个事件A,其表示在n次抛掷中不出现比连续lgn更长的连续正......
  • VS2019调用Matlab2019b生成的dll时初始化异常
    在VisualStudio中使用C++调用Matlab程序我目前在写一个用VS和Matlab混编的程序,由于之前的版本(VS2005+MATLAB2010b)太老了,现在想换用VS2019+MATLAB2019b的版本。我原本以为会很简单就能完成配置,没想到在运行时会出现下面的问题。(帧不在模块中。在加载的模块中未找到当前堆栈帧。无......