Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
Windows Terminal安装及美化_创想鸟

Windows Terminal安装及美化

windows terminal是微软推出的新一代终端,具有超高的可扩展性,用户可以自由定制终端的外观,比旧版cmd的黑色窗口更加美观且功能强大。

安装只需在Windows自带的应用商店中搜索Windows Terminal,点击安装即可。您也可以通过下载Microsoft/Terminal的源码进行自定义安装。

Windows Terminal安装及美化

基本配置首先启动Windows Terminal终端,点击右下角的三角形图标,选择Settings以打开配置文件profiles.json

Windows Terminal安装及美化

以下是配置PowerShellCmd的示例,如需配置其他终端如GitBash,请参考下面的代码进行自定义设置。

"profiles":[    {        // PowerShell        "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",  // 唯一ID        "name": "PowerShell",        "commandline": "powershell.exe", // 命令行所在位置        "colorScheme" : "Campbell",      // 主题        "useAcrylic": true,              // 毛玻璃        "acrylicOpacity" : 0.8,          // 不透明度        "fontSize": 10,                  // 字体大小        "fontFace" : "Consolas",         // 字体        "cursorShape" : "emptyBox",      // 光标形状,bar/emptyBox/filledBox/underscore/vintage        "padding": "10, 10, 10, 10",     // 边距        "closeOnExit": true,             // 关闭时退出终端        "startingDirectory": "./",       // 当前目录打开        "historySize": 9001,             // 上滚历史行数        "hidden": false    },    {        // Command        "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",        "name": "Command",        "commandline": "cmd.exe",        // 命令行所在位置        "colorScheme" : "Campbell",      // 主题        "useAcrylic": true,              // 毛玻璃        "acrylicOpacity" : 0.8,          // 不透明度        "fontSize": 10,                  // 字体大小        "fontFace" : "Consolas",         // 字体        "cursorShape" : "emptyBox",      // 光标形状,bar/emptyBox/filledBox/underscore/vintage        "padding": "10, 10, 10, 10",     // 边距        "closeOnExit": true,             // 关闭时退出终端        "startingDirectory": "./",       // 当前目录打开        "hidden": false,        "historySize": 9001    }],

美化方面,推荐使用Fira Code字体。访问Github仓库,点击releases下载FiraCode_2.zip解压后进入tff文件夹,双击安装字体。安装后,在配置文件profiles.json中修改字体设置并保存。

"profiles":[    {        // PowerShell        ...        "fontFace" : "Fira Code",  // 字体        ...    }]

为了修改配色,访问终端配色开源库iTerm2-Color-Schemes,选择喜欢的配色方案。例如,这里选择rebecca,在配色库中找到rebecca.json,复制配色方案。

{  "name": "rebecca",  "black": "#12131e",  "red": "#dd7755",  "green": "#04dbb5",  "yellow": "#f2e7b7",  "blue": "#7aa5ff",  "purple": "#bf9cf9",  "cyan": "#56d3c2",  "white": "#e4e3e9",  "brightBlack": "#666699",  "brightRed": "#ff92cd",  "brightGreen": "#01eac0",  "brightYellow": "#fffca8",  "brightBlue": "#69c0fa",  "brightPurple": "#c17ff8",  "brightCyan": "#8bfde1",  "brightWhite": "#f4f2f9",  "background": "#292a44",  "foreground": "#e8e6ed"}

在配置文件profiles.json中找到schemes列表,将复制的配色方案粘贴进去。

"schemes": [    {        "name": "rebecca",        "black": "#12131e",        "red": "#dd7755",        "green": "#04dbb5",        "yellow": "#f2e7b7",        "blue": "#7aa5ff",        "purple": "#bf9cf9",        "cyan": "#56d3c2",        "white": "#e4e3e9",        "brightBlack": "#809699",        "brightRed": "#ff92cd",        "brightGreen": "#01eac0",        "brightYellow": "#fffca8",        "brightBlue": "#69c0fa",        "brightPurple": "#c17ff8",        "brightCyan": "#8bfde1",        "brightWhite": "#f4f2f9",        "background": "#292a44",        "foreground": "#e8e6ed"    }]

最后,在profiles列表中将相应终端的colorScheme属性设置为配色方案中的name值。

"profiles":[    {        // PowerShell        ...        "colorScheme" : "rebecca",       // 主题        ...    }]

为了添加Emoji,由于Typecho编辑器不支持Emoji,这里提供了一个Emoji表情网站,供您自行选择使用。

使用管理员模式打开PowerShell,输入以下命令创建配置文件。

if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }# C:Users[用户名]DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

安装choco

> iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex# 报错的话应该是Powershell的执行策略问题> Get-ExecutionPolicy  # 查看当前策略> Set-ExecutionPolicy Unrestricted  # 设置为Unrestricted# 等下全部配置完成后,再将执行策略设回前面查看策略时的值(更安全)> choco                # 测试是否安装成功

使用choco安装ConEmu

某地板超炫企业网站1.1 某地板超炫企业网站1.1

1、演示:以截图为准 2、程序说明 程序试用后台:http://你的域名/admin/login.asp 后台登陆帐号:admin 密码:admin123 说明: 这个是基于asp+access的企业网站源码,数据库已设有有防下载,网站更安全 要修改网站,自定义你自己要的页面,和美化页面都是你自己完成,网站源码程序完整,后台功能强大。 调试运行环境:要安装IIS服务器(IIS的安装和配置,安装好

某地板超炫企业网站1.1 0 查看详情 某地板超炫企业网站1.1

> choco install ConEmu

安装oh-my-poshposh-git

> Install-Module posh-git -Scope CurrentUser> Install-Module oh-my-posh -Scope CurrentUser> install-module posh-git

打开PowerShell配置文件,如果不知道文件路径可使用$PROFILE查看,打开后插入以下语句。

Import-Module posh-gitImport-Module oh-my-poshSet-Theme Paradox  # 设置主题,具体可选主题可看后面function prompt {"PS $pwd X >" }    # X代表Emoji表情

最后在PowerShell内输入配置文件路径来更新配置并重启PowerShell

随机Emoji可以通过打开oh-my-posh主题配置文件目录来实现。

# 主题配置文件目录C:Users[用户名]DocumentsWindowsPowerShellModulesoh-my-posh2.0.332Themes

选择想修改的主题文件,复制一份重命名为myTheme.psm1,打开myTheme.psm1进行修改。找到以下表示右箭头>的语句,并在其前面加入#进行注释。

# $prompt += Write-Prompt -Object ($sl.PromptSymbols.PromptIndicator) -ForegroundColor $sl.Colors.VirtualEnvBackgroundColor

然后插入以下代码。

$food = Get-Random -InputObject ("X","X","X"....)  # X代表Emoji标签$color = Get-Random -InputObject ("VirtualEnvBackgroundColor", "WithForegroundColor", "GitDefaultColor", "PromptHighlightColor", "PromptBackgroundColor", "WithBackgroundColor")$prompt += Write-Prompt -Object ($sl.PromptSymbols.PromptIndicator) -ForegroundColor $sl.Colors.$color$prompt += Write-Prompt -Object "$food "

Windows Terminal安装及美化

最后打开PowerShell配置文件,应用myTheme主题。

Set-Theme myTheme  # 设置主题

最终效果如下:

Windows Terminal安装及美化

其它myTheme主题配置如下:

#requires -Version 2 -Modules posh-gitfunction Write-Theme {    param(        [bool]        $lastCommandFailed,        [string]        $with    )    $lastColor = $sl.Colors.PromptBackgroundColor    $prompt = Write-Prompt -Object $sl.PromptSymbols.StartSymbol -ForegroundColor $sl.Colors.PromptForegroundColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor    #check the last command state and indicate if failed    If ($lastCommandFailed) {        $prompt += Write-Prompt -Object "$($sl.PromptSymbols.FailedCommandSymbol) " -ForegroundColor $sl.Colors.CommandFailedIconForegroundColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor    }    #check for elevated prompt    If (Test-Administrator) {        $prompt += Write-Prompt -Object "$($sl.PromptSymbols.ElevatedSymbol) " -ForegroundColor $sl.Colors.AdminIconForegroundColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor    }    $user = $sl.CurrentUser    $computer = [System.Environment]::MachineName    $path = Get-FullPath -dir $pwd    if (Test-NotDefaultUser($user)) {        # User@Hostname         $prompt += Write-Prompt -Object "$user " -ForegroundColor $sl.Colors.GitDefaultColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor        # $prompt += Write-Prompt -Object "$user@$computer " -ForegroundColor $sl.Colors.SessionInfoForegroundColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor    }    if (Test-VirtualEnv) {        $prompt += Write-Prompt -Object "$($sl.PromptSymbols.SegmentForwardSymbol) " -ForegroundColor $sl.Colors.SessionInfoBackgroundColor -BackgroundColor $sl.Colors.VirtualEnvBackgroundColor        $prompt += Write-Prompt -Object "$($sl.PromptSymbols.VirtualEnvSymbol) $(Get-VirtualEnvName) " -ForegroundColor $sl.Colors.VirtualEnvForegroundColor -BackgroundColor $sl.Colors.VirtualEnvBackgroundColor        $prompt += Write-Prompt -Object "$($sl.PromptSymbols.SegmentForwardSymbol) " -ForegroundColor $sl.Colors.VirtualEnvBackgroundColor -BackgroundColor $sl.Colors.PromptBackgroundColor    }    else {        $prompt += Write-Prompt -Object "$($sl.PromptSymbols.SegmentForwardSymbol) " -ForegroundColor $sl.Colors.SessionInfoBackgroundColor -BackgroundColor $sl.Colors.PromptBackgroundColor    }    # Writes the drive portion    $prompt += Write-Prompt -Object "$path " -ForegroundColor $sl.Colors.PromptForegroundColor -BackgroundColor $sl.Colors.PromptBackgroundColor    $status = Get-VCSStatus    if ($status) {        $themeInfo = Get-VcsInfo -status ($status)        $lastColor = $themeInfo.BackgroundColor        $prompt += Write-Prompt -Object $($sl.PromptSymbols.SegmentForwardSymbol) -ForegroundColor $sl.Colors.PromptBackgroundColor -BackgroundColor $lastColor        $prompt += Write-Prompt -Object " $($themeInfo.VcInfo) " -BackgroundColor $lastColor -ForegroundColor $sl.Colors.GitForegroundColor    }    # Writes the postfix to the prompt    $prompt += Write-Prompt -Object $sl.PromptSymbols.SegmentForwardSymbol -ForegroundColor $lastColor    # Time    # $timeStamp = Get-Date -UFormat %R    # $timestamp = "$timeStamp"    # $prompt += Set-CursorForRightBlockWrite -textLength ($timestamp.Length + 1)     # 一堆空格到行末    # $prompt += Write-Prompt $timeStamp -ForegroundColor $sl.Colors.GitDefaultColor  # 行末    # $prompt += Set-Newline  # NewLine    if ($with) {        $prompt += Write-Prompt -Object "$($with.ToUpper()) " -BackgroundColor $sl.Colors.WithBackgroundColor -ForegroundColor $sl.Colors.WithForegroundColor    }    # $prompt += Write-Prompt -Object ($sl.PromptSymbols.PromptIndicator) -ForegroundColor $sl.Colors.VirtualEnvBackgroundColor    # $prompt    ######################    $food = Get-Random -InputObject (“X”,“X”,“X”,“X”,“X”,)    $color = Get-Random -InputObject ("VirtualEnvBackgroundColor", "WithForegroundColor", "GitDefaultColor", "PromptHighlightColor", "PromptBackgroundColor", "WithBackgroundColor")    $prompt += Write-Prompt -Object ($sl.PromptSymbols.PromptIndicator) -ForegroundColor $sl.Colors.$color    $prompt += Write-Prompt -Object "$food "    ######################}$sl = $global:ThemeSettings #local settings$sl.PromptSymbols.StartSymbol = ''$sl.PromptSymbols.PromptIndicator = [char]::ConvertFromUtf32(0x276F)$sl.PromptSymbols.SegmentForwardSymbol = [char]::ConvertFromUtf32(0xE0B0)$sl.Colors.PromptForegroundColor = [ConsoleColor]::White$sl.Colors.PromptSymbolColor = [ConsoleColor]::White$sl.Colors.PromptHighlightColor = [ConsoleColor]::DarkBlue$sl.Colors.GitForegroundColor = [ConsoleColor]::Black$sl.Colors.WithForegroundColor = [ConsoleColor]::DarkRed$sl.Colors.WithBackgroundColor = [ConsoleColor]::Magenta$sl.Colors.VirtualEnvBackgroundColor = [System.ConsoleColor]::Red$sl.Colors.VirtualEnvForegroundColor = [System.ConsoleColor]::White

以上就是Windows Terminal安装及美化的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/749331.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何将学到的MySQL数据库技术与实际工作需求结合起来?
上一篇 2025年11月25日 19:28:12
悟空浏览器为什么这么卡顿_悟空浏览器卡顿原因分析及解决方案
下一篇 2025年11月25日 19:28:13

相关推荐

  • 在Java中如何通过Stream实现交集与差集

    交集可通过filter结合contains获取两集合共有元素,差集则保留一个集合中不在另一集合的元素,示例使用list1.stream().filter(list2::contains)得[3,4],filter(e->!list2.contains(e))得[1,2],建议将list2转为H…

    2026年9月22日
    000
  • Java Swing中按钮与文本框事件处理的实践指南

    本文将深入探讨Java Swing中ActionListener的正确使用方法,指导开发者如何为GUI按钮和文本框实现事件监听,从而处理用户输入、执行计算并实时更新界面。文章将重点讲解如何在actionPerformed方法中获取用户输入、进行类型转换、处理潜在异常,并提供一个完整的计算器示例来演示…

    2026年9月22日
    100
  • MySQL查询缓存配置及性能_MySQL重复查询响应速度提升

    MySQL查询缓存配置及性能_MySQL重复查询响应速度提升MySQL查询缓存配置及性能_MySQL重复查询响应速度提升MySQL查询缓存配置及性能_MySQL重复查询响应速度提升MySQL查询缓存配置及性能_MySQL重复查询响应速度提升

    mysql查询缓存已不适用于现代应用场景,尤其在8.0版本中被彻底移除。它仅适合读多写少、数据几乎不变的静态查询,通过内存直接返回结果提升性能;但在数据频繁更新时,因基于表级的缓存失效机制,每次写操作都会清空相关缓存,导致频繁重建缓存并消耗大量cpu资源,形成性能瓶颈。此外,sql语句匹配严格、内存…

    2026年9月22日 用户投稿
    400
  • VSCode搭建前端开发环境(新手必备,插件配置详解)

    vscode是前端开发的理想选择,因其轻量、可扩展且拥有活跃的社区支持,能通过插件将基础编辑器打造成高效智能的开发环境。其优势在于启动快、资源占用低、内置git和调试工具,并拥有强大的插件生态,适配react、vue等各类前端技术栈。新手必装插件包括eslint与prettier(保障代码规范与格式…

    2026年9月22日
    000
  • Linux平台下的Eclipse配置

    在linux平台上配置eclipse时,可能会遇到一些常见的问题和优化需求。本文将详细介绍如何解决这些问题,并提供优化eclipse的建议。 启动Eclipse报错 启动Eclipse时,如果遇到以下错误: A Java Runtime Environment (JRE) or Java Devel…

    2026年9月22日
    000
  • 怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法

    怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法

    最实用的方法是使用iCloud共享相簿,它支持情侣间视频快速上传与实时同步。首先双方需开启iCloud照片中的共享相簿功能,然后创建专属相簿并邀请对方加入。此后,任一方添加的视频会自动同步至对方设备,且不占用个人iCloud空间。相比AirDrop(限近距离)、即时通讯工具(压缩画质)或云盘(占存储…

    2026年9月22日 用户投稿
    000
  • 深入理解PHP数组中JSON字符串的解析与数据提取

    本文将详细讲解如何在PHP中处理包含JSON格式字符串的数组。通过使用json_decode函数,我们可以将这些JSON字符串转换为可操作的PHP数组,进而轻松提取所需的shortname和fullname等键值对。教程将提供清晰的示例代码,演示循环遍历和直接访问两种数据提取方式,帮助开发者高效地解…

    2026年9月22日
    100
  • AdobeIllustrator如何导出AI生成的图片?矢量图像保存的步骤

    首先明确输出需求,再选择“文件>导出>导出为…”或“文件>存储为…”,根据用途选取合适格式如SVG、PDF或AI,确保矢量信息保留,参数设置需匹配目标平台要求。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ Adob…

    2026年9月22日
    000
  • PHP面向对象开发:解决父类构造器参数在嵌套子对象方法中丢失的问题

    在PHP面向对象编程中,我们经常会遇到类继承和对象组合的场景。一个常见的问题是,当父类构造函数接收参数并用于初始化内部的子对象时,该子对象的方法在后续调用中可能无法正确访问到这些参数,甚至显示为null。本文将深入探讨这一问题,并提供两种有效的解决方案。 引言与问题阐述 考虑一个典型的web应用架构…

    2026年9月22日
    000
  • 使用MockWebServer对FeignClient进行单元测试

    本文详细阐述了如何利用Spring Cloud LoadBalancer和MockWebServer对FeignClient进行高效单元测试。通过在测试配置中动态注册MockWebServer实例,并将其作为FeignClient的服务发现目标,开发者可以精确模拟后端API的行为,包括各种HTTP响…

    2026年9月22日
    000
  • Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力

    Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力

    mysql死锁和阻塞问题可通过sublime分析日志排查。1.使用关键词搜索及正则匹配快速定位死锁信息块;2.通过查找waiting状态事务并折叠无关内容聚焦阻塞链;3.结合general log与事务id查找sql执行顺序;4.利用语法高亮、列选择等功能提升日志可读性。这些方法能有效提高排查效率。…

    2026年9月22日 用户投稿
    100
  • 常见分布式任务调度工具浅析

    一、背景 在日常业务中,经常会遇到需要在特定时间执行任务或周期性执行任务的需求。这些任务通常被归类为定时任务。为了满足这种需求,各种任务调度框架应运而生,如Timer、ScheduledThreadPoolExecutor(没错,它也可以用于定时任务)、Quartz等。然而,随着分布式和微服务的发展…

    2026年9月22日
    100
  • win11平板模式无法自动切换怎么办_win11平板模式自动切换异常修复方法

    首先检查设备形态和设置,确保键盘分离或屏幕翻转到位,并在“平板电脑”设置中启用自动切换;若无效,重启Windows资源管理器、更新传感器驱动或重装感应式旋转锁驱动;最后通过sfc /scannow命令修复系统文件,恢复平板模式自动切换功能。 如果您发现Windows 11的平板模式无法根据设备形态自…

    2026年9月22日
    100
  • Canva中AI生成图片如何导出?教你快速保存设计作品的方法

    答案:Canva中导出AI生成图片的操作与普通图片相同,点击右上角“分享”按钮,选择“下载”,可选PNG、JPG、PDF、SVG、MP4或GIF等格式;为保证画质,建议优先选用PNG格式,避免有损压缩,同时选择高分辨率和合适尺寸,Pro用户可进一步调整质量与透明背景设置;除下载外,还可通过分享链接、…

    2026年9月22日
    800
  • windows怎么用命令行删除顽固文件_命令行删除顽固文件的方法

    使用命令行可强制删除顽固文件,先以管理员身份运行cmd或PowerShell,通过del /f /q或Remove-Item -Force命令删除文件,若被占用则用taskkill终止进程,或进入安全模式删除,也可用rd /s /q删除整个目录。 如果您尝试删除某个文件时,发现资源管理器无法完成操作…

    2026年9月22日
    200
  • VSCode安全更新机制解析

    VSCode通过自动检查、数字签名验证和用户可控策略确保更新安全。启动时后台定期HTTPS请求检查新版本,每日一次;安装包经平台特定签名(Windows Authenticode、macOS代码签名、Linux GPG)验证完整性;用户可选自动更新、提示或关闭,企业可集中管控;微软通过安全入口响应漏…

    2026年9月22日
    100
  • Linux系统中文件属性和权限实战操作

    Linux系统中文件属性和权限实战操作Linux系统中文件属性和权限实战操作Linux系统中文件属性和权限实战操作Linux系统中文件属性和权限实战操作

    —–原本今天的文章是昨天晚上就要更新的,但是由于昨天晚上下班回到住的地方,发现停电了,所以就没写成。今天是在上一篇文章–linux系统中文件类型的基础上,继续进行深入的学习。好了,直接开干。 一、文件的操作权限: 1、在这之前我想还是很有必要介绍对文件的操作权限(…

    2026年9月22日 用户投稿
    200
  • PHP中为数组元素设置默认值的最佳实践:使用Null合并运算符

    本教程将介绍如何在PHP中为数组元素设置默认值,尤其当源数据可能为空或缺失时。通过利用PHP 7+提供的Null合并运算符(??),可以简洁高效地实现这一需求,避免冗长的条件判断,提高代码可读性和健壮性。 引言:处理缺失或空值时的数组赋值 在Web开发中,我们经常需要从用户请求、数据库查询或其他外部…

    2026年9月22日
    000
  • Hazelcast缓存数据未显示:排查与解决指南

    本文旨在解决在使用Spring Cache结合Hazelcast时,通过@CachePut等注解成功将数据放入缓存,但无法通过HazelcastInstance获取缓存数据的问题。文章将深入探讨可能的原因,并提供详细的配置步骤和代码示例,帮助开发者正确配置和使用Hazelcast缓存。 在使用Spr…

    2026年9月22日
    000
  • VSCode快速配置Dart:Flutter开发、中文提示、热加载

    安装vscode并下载flutter sdk,解压至无中文或特殊字符的路径;2. 将flutter sdk的bin目录添加到系统环境变量path中;3. 打开新终端执行flutter doctor,根据提示安装缺失的依赖;4. 在vscode扩展商店安装dart和flutter扩展;5. 确保在调试…

    2026年9月22日
    200

发表回复

登录后才能评论
关注微信