当前位置:首页 > 技术 > 正文内容

VS Code 中 Vue 文件 Emmet 补全、代码运行与调试配置指南

访客 技术 2026年7月14日 2

Vue 文件中 Tab 键无法触发 HTML 标签补全

在使用 VS Code 编辑 Vue 文件时,若按下 Tab 键无法自动补全 HTML 标签,通常是因为 Emmet 功能未正确启用。可通过修改用户设置解决。

按下 Ctrl+, 打开设置界面,切换到 JSON 模式(即编辑 settings.json),添加以下配置:

{
    "html-css-class-completion.enableEmmetSupport": true,
    "emmet.triggerExpansionOnTab": true,
    "emmet.showAbbreviationSuggestions": true,
    "emmet.showExpandedAbbreviation": "always",
    "emmet.includeLanguages": {
        "javascript": "html"
    }
}

其中关键配置为 triggerExpansionOnTab,它允许通过 Tab 键触发 Emmet 缩写展开。此外,将 JavaScript 中的片段识别为 HTML 可提升 JSX 或模板字符串中的补全体验。

使用 Run Code 插件运行 Python 报错"模块未找到"

当使用 Code Runner 插件执行 Python 脚本时,可能会因解释器路径或环境问题导致"Module not found"错误。可通过自定义执行命令解决。

settings.json 中配置 code-runner.executorMap,明确指定 Python 解释器路径:

{
    "code-runner.executorMap": {
        "python": "/usr/bin/python3 -u $fullFileName"
    }
}

更灵活的方式是动态获取当前选中的解释器:

{
    "code-runner.executorMap": {
        "python": "${command:python.interpreterPath} -u $fullFileName"
    },
    "code-runner.runInTerminal": false
}

设置 runInTerminalfalse 可使输出显示在插件专用面板而非终端中,便于快速查看结果。

为代码文件自动插入头部注释

可通过创建用户代码片段(User Snippets)实现一键插入标准化文件头,如作者信息、创建时间等。

  1. 使用快捷键 Cmd+Shift+P(macOS)或 Ctrl+Shift+P(Windows/Linux)打开命令面板。
  2. 输入并选择 Preferences: Configure User Snippets
  3. 选择全局片段或语言专属片段(如 python.json)进行编辑。

示例:为 Python 添加带元信息的头部模板:

{
    "Python File Header": {
        "prefix": "hdr",
        "body": [
            "#!/usr/bin/env python",
            "# -*- coding: utf-8 -*-",
            "# @Author: ${1:YourName}",
            "# @Created: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}",
            "# @Desc: ${2:Description here}"
        ],
        "description": "Insert standard Python file header"
    }
}

保存后,在任意 Python 文件中输入 hdr 并按 Tab 即可生成该头部。

调试配置详解与最佳实践

VS Code 的调试功能通过 .vscode/launch.json 文件定义,合理配置可大幅提升开发效率。

核心字段说明

字段 类型 必填 说明 常用值
name string 调试配置的名称,出现在启动菜单中 "Debug Main Module"
type string 调试器类型,Python 推荐使用 debugpy "debugpy", "python"
request string 请求类型:launch 启动新进程,attach 连接已有进程 "launch", "attach"
program string 条件必填 要运行的脚本文件路径 "${file}", "main.py"
module string 条件必填 以模块形式运行(支持相对导入) "src.app.cli"
cwd string 程序运行时的工作目录 "${workspaceFolder}"
console string 输出目标控制台 "integratedTerminal"
args array 传递给程序的命令行参数 ["--debug", "--port", "8000"]
python string 指定 Python 解释器路径 "${command:python.interpreterPath}"

启动方式对比:program vs module

programmodule 不应同时存在,二者逻辑互斥:

  • program:对应命令 python script.py,适用于独立脚本。
  • module:对应命令 python -m package.module,适用于包结构项目,支持相对导入(如 from .utils import helper)。

建议:对于包含 src/ 目录和 __init__.py 的工程化项目,优先使用 module 避免导入错误。

工作目录与交互控制台设置

cwd 决定相对路径资源的查找位置。例如读取配置文件 config.yaml 时,若未设置 cwd,可能导致文件找不到。推荐统一设置为项目根目录:

"cwd": "${workspaceFolder}"

console 控制输出行为:

  • internalConsole:不支持 input() 输入,适合日志观察。
  • integratedTerminal:支持用户交互,推荐使用。
  • externalTerminal:弹出外部窗口,适合长时间运行任务。

常用内置变量

在配置中可使用动态变量提升灵活性:

  • ${file}:当前文件完整路径
  • ${workspaceFolder}:项目根目录
  • ${command:python.interpreterPath}:当前 Python 解释器路径
  • ${cwd}:当前工作目录

典型调试配置模板

模板一:调试当前打开的文件(脚本场景)

{
    "name": "Run Current Script",
    "type": "debugpy",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "cwd": "${workspaceFolder}"
}

模板二:运行模块(工程化项目)

{
    "name": "Launch CLI Module",
    "type": "debugpy",
    "request": "launch",
    "module": "src.myproject.cli",
    "console": "integratedTerminal",
    "cwd": "${workspaceFolder}",
    "args": ["--interactive"]
}

模板三:复杂参数与环境变量调试

{
    "name": "Full Debug Setup",
    "type": "debugpy",
    "request": "launch",
    "module": "src.api.server",
    "cwd": "${workspaceFolder}",
    "console": "integratedTerminal",
    "args": ["--host", "localhost", "--port", "5000"],
    "env": {
        "ENV": "development",
        "LOG_LEVEL": "DEBUG"
    },
    "justMyCode": false
}
标签: VSCode

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。