当前位置: 首页 > news >正文

HOW - vscode 使用指南

目录

  • 一、基本介绍
    • 1. 安装 VS Code
    • 2. 界面介绍
    • 3. 扩展和插件
    • 4. 设置和自定义
  • 二、常用界面功能和快捷操作(重点)
    • 常用界面功能
    • 快捷操作
  • 三、资源和支持

Visual Studio Code(VS Code)是一款由微软开发的免费、开源的代码编辑器,支持多种编程语言和丰富的插件扩展。以下是一个基本的使用指南(基于 Mac),帮助你快速上手 VS Code。

假如你希望在你的项目里引入 VS Code,可以阅读 WHAT - Web 代码编辑器(含 LSP - Language Server Protocol) 中关于 Monaco Editor 的部分。

一、基本介绍

1. 安装 VS Code

  • 下载和安装:从 VS Code 官网 下载适合你操作系统的安装包并安装。
  • 启动 VS Code:安装完成后,启动 VS Code。

请添加图片描述

2. 界面介绍

  • 活动栏(Activity Bar):位于最左侧,用于切换不同的视图,比如文件资源管理器、搜索、源代码管理(Git)、调试、扩展等。
  • 主侧边栏(Side Bar):默认显示文件资源管理器,点击活动栏的图标可以切换到其他视图。
  • 编辑器区域(Editor Area):主编辑区域,可以同时打开多个文件。
  • 面包屑导航(Breadcrumbs):显示当前文件的路径,方便快速导航。
  • 状态栏(Status Bar):位于底部,显示各种状态信息,比如当前分支、文件编码、行列号等。

3. 扩展和插件

  • 安装扩展:点击活动栏中的扩展图标,搜索你需要的扩展,点击 安装
  • 常用扩展
    • Prettier - Code formatter:一个流行的代码格式化工具,支持多种编程语言。自动格式化代码,保证代码风格一致。
    • ESLint:JavaScript 和 TypeScript 的静态检查工具。帮助发现和修复代码中的错误和潜在问题。
    • GitLens — Git supercharged:增强 VS Code 中的 Git 功能。提供丰富的 Git 相关信息,如文件更改记录、代码片段的提交历史等。
    • Github Copilot:由 GitHub 和 OpenAI 合作开发的 AI 编码助手。通过 AI 提供代码建议、自动完成代码片段,支持多种编程语言和框架。
    • Tabnine:基于 AI 的代码自动补全工具。通过机器学习模型提供智能代码补全建议,支持多种编程语言,极大提高编程效率。
    • Visual Studio IntelliCode:利用 AI 提供代码建议。根据上下文提供智能代码建议,提高编程效率。
    • Live Server:在本地服务器上运行你的应用,自动刷新页面。通过右键点击 HTML 文件并选择 “Open with Live Server”,可以启动一个本地开发服务器,每次保存文件时页面会自动刷新。
    • Path Intellisense:文件路径的智能提示。在输入文件路径时提供自动补全建议。
    • Bracket Pair Colorizer 2:此扩展已弃用,因为此功能现在内置于 VS Code。
    • Auto Rename Tag:自动重命名配对的 HTML/XML 标签。修改一个标签时,自动更新对应的闭合标签。
    • HTML CSS Support:在 HTML 文件中提供 CSS 类名和 ID 的自动补全。提高 HTML 和 CSS 文件的编辑效率。
    • CSS Peek:允许在 HTML 文件中直接查看和编辑 CSS。通过 Ctrl + 点击 类名或 ID,可以在 HTML 中直接查看对应的 CSS 定义。
    • JavaScript (ES6) code snippets:JavaScript ES6 代码片段集合。提供常用 JavaScript 代码片段,快速插入代码。
    • IntelliSense for CSS class names in HTML:在 HTML 文件中提供 CSS 类名的自动补全。根据项目中的 CSS 文件,提供类名补全建议。
    • Markdown All in One:Markdown 文件编辑的全能工具。提供 Markdown 语法高亮、预览、快捷键、TOC(目录生成)等多种功能,简化 Markdown 文档的编写和维护。

4. 设置和自定义

  • 打开设置:通过 文件 > 首选项 > 设置 或快捷键 Ctrl + , 打开设置。
  • 用户设置和工作区设置:用户设置全局生效,工作区设置只在当前项目生效。

一般下载插件或者界面化编辑设置时,会生成 setting.json 文件并包含响应配置项的属性和值,可以快捷键 Ctrl + , 打开设置后,点击如下右侧图标:

请添加图片描述

setting.json 文件示例:

{"workbench.colorTheme": "Default Light+","editor.minimap.enabled": false,"tabnine.experimentalAutoImports": true,"editor.defaultFormatter": "dbaeumer.vscode-eslint","eslint.alwaysShowStatus": true,"eslint.format.enable": true,"editor.tabSize": 2,"git.confirmSync": false,"explorer.confirmDelete": false,"explorer.confirmDragAndDrop": false,"gitlens.views.branches.branches.layout": "list","diffEditor.ignoreTrimWhitespace": false,"editor.formatOnSave": true,"github.copilot.editor.enableAutoCompletions": true
}

这份文件在你新设备安装VScode时想要直接复用配置时很有用。毕竟在A公司你只能用A公司的账户,换了B公司就不能通过登录来同步配置了。

  1. workbench.colorTheme
  • 描述:设置 VS Code 的主题。
  • 值:“Default Light+” 使用默认的亮色主题。
  1. editor.minimap.enabled
  • 描述:是否启用编辑器中的缩略图(minimap)。
  • 值:false 禁用缩略图。
  1. tabnine.experimentalAutoImports
  • 描述:启用 Tabnine 的实验性自动导入功能。
  • 值:true 启用此功能。
  1. editor.defaultFormatter
  • 描述:设置默认的代码格式化工具。
  • 值:“dbaeumer.vscode-eslint” 使用 ESLint 作为默认格式化工具。
  1. eslint.alwaysShowStatus
  • 描述:总是在底部状态栏显示 ESLint 的状态。
  • 值:true 启用此功能。
  1. eslint.format.enable
  • 描述:启用 ESLint 的格式化功能。
  • 值:true 启用此功能。
  1. editor.tabSize
  • 描述:设置编辑器中的 tab 宽度。
  • 值:2 将 tab 宽度设置为 2 个空格。
  1. git.confirmSync
  • 描述:在同步 Git 仓库之前是否确认。
  • 值:false 禁用确认对话框,直接同步。
  1. explorer.confirmDelete
  • 描述:在删除文件之前是否确认。
  • 值:false 禁用确认对话框,直接删除。
  1. explorer.confirmDragAndDrop
  • 描述:在文件拖放操作之前是否确认。
  • 值:false 禁用确认对话框,直接拖放。
  1. gitlens.views.branches.branches.layout:
  • 描述:设置 GitLens 插件中分支视图的布局。
  • 值:“list” 将分支视图设置为列表布局。
  1. diffEditor.ignoreTrimWhitespace
  • 描述:是否在比较差异时忽略行尾空格。
  • 值:false 不忽略行尾空格。
  1. editor.formatOnSave
  • 描述:在保存文件时自动格式化代码。
  • 值:true 启用此功能。
  1. github.copilot.editor.enableAutoCompletions
  • 描述:启用 GitHub Copilot 的自动补全功能。
  • 值:true 启用此功能。

二、常用界面功能和快捷操作(重点)

常用界面功能

  1. 编辑器区域-右上角点击如下图标即可拆分编辑器

请添加图片描述

  1. 编辑器区域-右上角点击如下图标即可查看上一次/下一次commit变更请添加图片描述

  2. 编辑器区域右上角点击如下图标即可选择

GitLens 插件支持的能力

  • Toogle file Blame:显示当前文件每行的最新提交者和提交信息。
  • Toogle File Heatmap:显示文件的热力图,突出显示最近更改过的代码行。
  • Toogle File Changes:显示当前文件的所有更改记录。
    请添加图片描述
  1. 文件资源管理器-源代码管理右侧图标可以选择“以树形式查看”,可以更清晰地知道变更文件所处位置

请添加图片描述

  1. 文件资源管理器-在指定文件点击右键-open file history,可查看历史变更记录

请添加图片描述

  1. 文件资源管理器-对指定文件a点击右键选择“以进行比较”,然后对指定文件b点击右键选择“与已选项目进行比较”,即可查看两个文件内容差异
    请添加图片描述
  2. 活动栏-源代码管理-底部支持 commits、stashes 快速查看
    请添加图片描述

快捷操作

  • 打开命令面板

Ctrl + Shift + P

不记得某些操作的快捷键,可以使用该方式访问

请添加图片描述

  • 打开底部面板(含终端)

command+J

请添加图片描述

  • 选择并打开文件

command + P

  • 文件内编辑

command + F:当前文件内查找。若希望全局搜索,可 command + Shift + F

command + option + F:当前文件内替换

  • 多个编辑窗口

**command+**:拆分编辑器
Cmd + 1, Cmd + 2, Cmd + 3:直接将焦点移动到相应的编辑器组
Cmd + K Cmd + LeftCmd + K Cmd + Right:在编辑器组之间循环移动光标
command+option+左右方向键:移动光标在控制台/编辑器之间移动

  • multi-cursor editing 支持多行同时编辑

option+鼠标单击:支持选择任意行同时编辑
请添加图片描述

shift+option+鼠标拖拽移动:支持选择连续多行同时编辑

command+option+方向键:支持选择连续多行同时编辑

  • 行操作

control+g:跳转到某一行

shift+option+上下方向键:复制当前行

option+上下方向键:移动当前行

shift+command+k:删除当前行

  • 重命名和变量重构

按 F2:替换同名变量名

请添加图片描述

  • 格式化

shift+option+F

Additional formatters are available in the extension gallery

建议开启设置中的保存自动格式化。

  • 代码块收起和展开

option+command+[ 或 ]:[ 为收起,] 为展开

command+k+command+0:收起所有

command+k+command+j:展开所有

  • 错误定位

按 F8:定位到出错位置

  • Emmet

譬如 ul>li.item$*5

三、资源和支持

  • 官方文档:访问 VS Code 官方文档 获取更详细的使用指南和教程。
  • 社区支持:可以在 Stack Overflow、GitHub 等社区寻求帮助。

通过以上步骤,你应该能顺利上手 VS Code,提升你的开发效率。

相关文章:

HOW - vscode 使用指南

目录 一、基本介绍1. 安装 VS Code2. 界面介绍3. 扩展和插件4. 设置和自定义 二、常用界面功能和快捷操作(重点)常用界面功能快捷操作 三、资源和支持 Visual Studio Code(VS Code)是一款由微软开发的免费、开源的代码编辑器&…...

刚刚!《国家科学技术奖励条例》迎来最新修订

【SciencePub学术】《国务院关于修改〈国家科学技术奖励条例〉的决定》已经于2024年5月11日国务院第32次常务会议通过,现予公布: 国务院决定对《国家科学技术奖励条例》作如下修改: 一、将第二条修改为:“国家设立下列国家科学技术…...

MySQL -- SQL笔试题相关

1.银行代缴花费bank_bill 字段名描述serno流水号date交易日期accno账号name姓名amount金额brno缴费网点 serno: 一个 BIGINT UNSIGNED 类型的列,作为主键,且不为空。该列是自动增量的,每次插入新行时,都会自动递增生成一个唯一的…...

VB6 MQTT为什么在物联网应用中使用 MQTT 而不是 HTTP?

有需要VBA,VB6,VB.NET等方面的MQTT的可以找我 一、MQTT简介 MQTT被广泛用于物联网(IoT:Internet of Things)领域,其中大量的设备需要进行实时通信和数据交换。它采用了一种发布/订阅(publish/subscribe)模型,其中消息的发送者(发布者&#…...

软设之希尔排序

假设有n个元素&#xff0c;先取一个小于n的整数d1作为一个增量&#xff0c;把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组中进行直接插入排序;然后&#xff0c;取第二个增量d2<d1重复上诉的分组和排序&#xff0c;直到所取得增量dt1&#…...

WPF Binding对象

在WinForm中&#xff0c;我们要想对控件赋值&#xff0c;需要在后台代码中拿到控件对象进行操作&#xff0c;这种赋值形式&#xff0c;从根本上是无法实现界面与逻辑分离的。 在WPF中&#xff0c;微软引入了Binding对象&#xff0c;通过Binding&#xff0c;我们可以直接将控件与…...

Educational Codeforces Round 127 D. Insert a Progression

Insert a Progression time limit per test: 2 second memory limit per test: 256 megabytes input: standard input output: standard output You are given a sequence of n n n integers a 1 , a 2 , … , a n a_1, a_2, \dots, a_n a1​,a2​,…,an​. You are also giv…...

树莓集团:构筑全国数字影像生态链

在数字化浪潮席卷全球的今天&#xff0c;数字影像技术正以前所未有的速度改变着我们的生活。成都树莓集团以远见卓识和坚定步伐&#xff0c;专注于全国数字影像生态链的建设&#xff0c;不断推动着文创产业的创新与发展。 树莓集团致力于打造一个完整的数字影像生态链&#xff…...

物联网——TIM定时器、PWM驱动呼吸灯、舵机和直流电机

定时器概念&#xff08;常用于输出PWM波形&#xff0c;驱动电机&#xff09; 时间脉冲数时钟周期&#xff1b; 这里的脉冲数6553665536&#xff0c;支持定时器级联&#xff0c;从而延长定时 定时器类型 基本定时器原理图&#xff08;UI:更新中断&#xff0c; U:更新事件&#…...

Elasticsearch 认证模拟题 -2

一、题目 有一个索引 task3&#xff0c;其中有 fielda&#xff0c;fieldb&#xff0c;fieldc&#xff0c;fielde 现要求对 task3 重建索引&#xff0c;重建后的索引新增一个字段 fieldg 其值是fielda&#xff0c;fieldb&#xff0c;fieldc&#xff0c;fielde 的值拼接而成。 …...

Java-----Comparable接口和Comparator接口

在Java中&#xff0c;我们会经常使用到自定义类&#xff0c;那我们如何进行自定义类的比较呢? 1.Comparable接口 普通数据的比较 int a10;int b91;System.out.println(a<b); 那自定义类型可不可以这样比较呢&#xff1f;看一下代码 我们发现会报错&#xff0c;因为自定义…...

通信技术体会

比如 pcie可以看成是全连接的ahb bus&#xff0c;但又不是。 因为pcie还是axi&#xff08;神似split/cutthrough&#xff09;。&#xff08;axi更多是接口而不是bus&#xff09;。 pcie虽然物理层和usb都是serdes&#xff0c;但transaction layer就是上面这样的&#xff0c;也就…...

Linux系统安全及其应用

文章目录 一、用户账号安全管理1.1 系统账号的清理1.2 对用户账号的操作1.2.1 锁定和解锁用户1.2.2 删除无用账号 1.3 对重要文件进行锁定1.4 密码安全控制1.4.1 新建用户1.4.2 已有用户 二、历史命令管理2.1 历史命令限制2.2 自动清空历史命令 三、设置终端登录的安全管理3.1 …...

JVM内存划分类加载的过程双亲委派模型的详解

JVM内存划分 JVM也就是java进程&#xff0c;这个进程一旦跑起来就会从操作系统这里申请一大块内存空间&#xff0c;JVM接下来就要进一步的对这个大的空间进行划分&#xff0c;划分成不同区域&#xff0c;从而每个区域都有不同的功能作用&#xff0c;一共分为如下几个区域 1.堆…...

Java异常详解

Java异常详解 前言一、异常类的定义Java异常异常类的构成Java常见运行错误异常示例除以 0数组下标越界访问 null 对象 防御式编程异常的好处LBYL 风格的代码EAFP 风格的代码 二、异常的基本用法捕获异常基本语法代码示例不处理异常使用 try catch 后的程序执行过程catch 只能处…...

C++入门3——类与对象2(类的6个默认成员函数)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 构造函数的概念 2.2 构造函数的特性 3. 析构函数 3.1 析构函数的概念 3.2 析构函数的特性 4.拷贝构造函数 4.1 拷贝构造函数的概念 4.2 拷贝构造函数的特性 5.赋值运算符重载函数 5.1运算符重载函数 5.2 赋值运算符重…...

CobaltStrike基本渗透

目录 CobaltStrike简介 主要功能&#xff1a; 使用注意&#xff1a; 在使用CobaltStrike进行渗透测试时&#xff0c;务必遵守法律法规&#xff0c;并获得合法授权。 CobaltStrike安装 前提 安装 服务端安装 windows安装 CS基本使用 监听器配置 一些基本的攻击…...

【linux深入剖析】进程间通信

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1.进程间通信目的2. 什么…...

关系数据库:关系模式

文章目录 基本概述关系的相关名词术语笛卡儿积与关系关系的类型 关系模式总结 基本概述 关系的相关名词术语 关系&#xff1a;简单来说&#xff0c;就是一张二维表格。属性(Attribute)&#xff1a;也称字段或列&#xff0c;在现实世界中&#xff0c;要描述一个事务常常取若干…...

医学图像处理质量的评价方法

评判处理后医学图像的质量是确保图像处理技术有效性和可靠性的关键。以下是一些常用的图像质量评估方法和指标&#xff1a; 1. 主观评估 主观评估是由专业人员&#xff08;如放射科医生&#xff09;通过视觉检查对图像质量进行评分。常用的主观评估方法包括&#xff1a; 视觉…...

Ehcache Java 缓存框架

详解 下图是 Ehcache 在应用程序中的位置&#xff1a; Ecache 是一个广泛使用的 Java 缓存框架&#xff0c;能够有效提升应用性能&#xff0c;并减少与后端数据库的交互次数。它采用了一系列高级缓存策略&#xff0c;包括内存缓存、磁盘缓存、分布式缓存等&#xff0c;并提供了…...

详解Spring IoCDI(二)

目录 承接上文&#xff1a;详解Spring IoC&DI &#xff08;一&#xff09; 1.IoC详解 1.1方法注解Bean 1.2方法注解要配合类注解使用 1.3定义多个对象 1.4重命名Bean 1.5扫描路径 2.DI详解 2.1DI与IoC的关系 2.2属性注入 2.3构造方法注入 2.4Setter注入 2.5 三…...

说明白计算机网络之TCP的流量控制与拥塞控制之慢开始算法与拥塞避免算法

TCP的流量控制 利用滑动窗口实现流量控制 设A向B发送数据&#xff0c;连接建立时候&#xff0c;B告诉A自身的接收窗口大小&#xff0c;A的发送窗口大小不能超过接收方B的窗口大小 流量控制&#xff1a;发送方发送速率不要太快&#xff0c;要让接收方来得及接收。窗口大小的单…...

这款信创FTP软件,可实现安全稳定的文件传输

信创&#xff0c;即信息技术应用创新&#xff0c;2018年以来&#xff0c;受“华为、中兴事件”影响&#xff0c;国家将信创产业纳入国家战略&#xff0c;并提出了“28n”发展体系。“8”具体指金融、石油、电力、电信、交通、航空航天、医院、教育等主要行业。目前企业使用比较…...

代码随想录算法训练营第十天|232.用栈实现队列、225. 用队列实现栈

232.用栈实现队列 题目链接&#xff1a;232. 用栈实现队列 文档讲解&#xff1a;代码随想录 状态&#xff1a;写出来 &#xff0c;但差强人意 思路&#xff1a; 定义两个容器&#xff0c;可以是Stack&#xff0c;也可以是Deque&#xff0c;stackIn相当于临时容器,用来存放元素&…...

STM32 IIC协议

本文代码使用 HAL 库。 文章目录 前言一、什么是IIC协议二、IIC信号三、IIC协议的通讯时序1. 写操作2. 读操作 四、上拉电阻作用总结 前言 从这篇文章开始为大家介绍一些通信协议&#xff0c;包括 UART&#xff0c;SPI&#xff0c;IIC等。 UART串口通讯协议 SPI通信协议 一、…...

Java生成随机数的几种方式

随机数&#xff0c;在一些特殊场景下&#xff0c;是非常常用的。比如一些测试和验证场景、安全加密、随机抽样等都有随机数的‘身影’。 一、 使用java.util.Random类 java.util.Random类提供了更全面的随机数生成功能&#xff0c;包括随机整数、随机浮点数、随机布尔值等。 p…...

【面试】什么是Java虚拟机

目录 1. 说明2. 关键点 1. 说明 1.Java虚拟机&#xff08;Java Virtual Machine&#xff0c;简称JVM&#xff09;是运行所有Java程序的抽象计算机&#xff0c;是Java语言的运行环境。2.JVM是Java平台无关性的关键&#xff0c;它允许Java程序在任何支持JVM的硬件和操作系统上运…...

Go 语言的基本构成、要素与编写规范

Go 语言&#xff0c;作为由 Google 开发的现代编程语言&#xff0c;以其简洁、高效和并发编程能力而著称。在构建高性能分布式系统和现代软件开发中&#xff0c;Go 语言正日益受到欢迎。本篇文章将详细探讨 Go 语言程序结构的各个要素&#xff0c;包括函数定义、注释规范、数据…...

从了解到掌握 Spark 计算框架(二)RDD

文章目录 RDD 概述RDD 组成RDD 的作用RDD 算子分类RDD 的创建1.从外部数据源读取2.从已有的集合或数组创建3.从已有的 RDD 进行转换 RDD 常用算子大全转换算子行动算子 RDD 算子综合练习RDD 依赖关系窄依赖宽依赖宽窄依赖算子区分 RDD 血统信息血统信息的作用血统信息的组成代码…...