Visual Studio Code 使用笔记

简介

接下来我将分享一下 Visual Studio Code 的常用配置和使用技巧。VSCode 文档地址

选择主题

如果需要更换主题,可以通过 File > Preferences > Color Theme 或者使用 Ctrl + K Ctrl + T 快捷键打开主题菜单来选择主题。

用户和工作区配置

VSCode 提供了两种不同的配置范围:

  • 用户配置 -全局应用于你打开的任何 VSCode 实例的配置。
  • 工作区配置 -存储在工作区中的配置,仅在打开工作区时适用。

工作区配置将覆盖用户配置。工作区配置特定于项目,方便开发人员之间共享。

要打开用户和工作区配置通过如下方式:

  • Windows/Linux -File > Preferences > Settings
  • macOS -Code > Preferences > Settings

也可以使用快捷键 Ctrl + Shift + P 然后输入 Preferences: Open Settings 以 UI 或 JSON 文件形式来打开配置。

默认情况下我们打开配置文件是以 UI 配置的形式打开的,如果你不想使用 UI 而习惯使用 JSON 文件形式来配置的话,可以在 settings.json 配置文件中将 workbench.settings.editor 配置项设置为 json 来修改打开配置文件方式,该配置项有两个参数值 uijson

用户配置文件位于以下位置:

  • Windows %APPDATA%\Code\User\settings.json
  • macOS $HOME/Library/Application Support/Code/User/settings.json
  • Linux $HOME/.config/Code/User/settings.json

工作区通常只是在你的项目根文件夹下,工作区配置、调试配置及任务配置都在项目根目录下的 .vscode 文件夹中。
.vscode 中有如下几个文件,调试配置文件 launch.json、任务配置文件 tasks.json 和工作区配置文件 settings.json

保存/自动保存

默认情况下需要手动来保存文件,如使用快捷键 Ctrl + S 来保存文件。
如果嫌太麻烦的话可配置成自动保存,打开 File > Auto Save 配置即可。

如果需要更精细的配置则打开用户的 settings.json 配置文件加入以下配置。

files.autoSave: 配置值如下

  • off 禁用自动保存。
  • afterDelay 延迟(默认1000 ms)后保存文件。
  • onFocusChange 当焦点移出编辑后的文件时保存文件。
  • onWindowChange 当焦点移出 VSCode 窗口时保存文件。

files.autoSaveDelay: 延迟保存文件的时间配置,当 files.autoSave 的值为 afterDelay 时该值生效,单位为毫秒(默认 1000 ms)。

格式化

VSCode 编辑器有两个明确的格式化操作:

  • Format Document (Shift + Alt + F) -格式化整个活动文件。
  • Format Selection (Ctrl + K Ctrl + F) -格式化所选文本。

VSCode 具有 JavaScript,TypeScript,JSON 和 HTML 的默认格式化程序。每种语言都有特定的格式设置选项(例如 html.format.indentInnerHtml ),也可以在用户或工作区配置中将其调整为自己的偏好。如果安装了另一个扩展程序也可以提供相同语言的格式化配置,也可以禁用默认语言格式化程序,如下。

"html.format.enable": false

除了手动调用代码格式外,还可以根据用户动作(例如键入、保存或粘贴)来触发格式化。这些默认情况下处于关闭状态,但是可以通过以下设置启用这些行为:

  • editor.formatOnType 键入后设置行格式。
  • editor.formatOnSave 保存时格式化文件。
  • editor.formatOnPaste 格式化粘贴的内容。

以上的配置选项值用 truefalse 来开启或关闭配置。

缩进

VSCode 可以控制文本的缩进以及是否要使用空格或制表符。VSCode 默认情况是插入空格,每个 Tab 键使用 4 个空格。如果想使用其他设置,则可以修改 editor.insertSpaceseditor.tabSize 配置项。

// 是否使用空格
"editor.insertSpaces": true,
// 空格或制表符的大小
"editor.tabSize": 4,

VSCode 会分析打开的文件并确定文档中使用的缩进。自动检测到的缩进将覆盖默认缩进设置。检测到的设置显示在状态栏的右侧:
自动检测缩进

可以单击状态栏的缩进字样以显示可修改缩进命令的下拉菜单,允许你更改打开文件的默认设置,在制表符和空格之间进行转换。
缩进命令

文件编码支持

可以在 “用户配置” 或 “工作区配置” 中的 files.encoding 配置项修改文件编码,该配置项默认值为 utf8
也可以在状态栏中查看文件编码。
在状态栏中编码

单击状态栏中的编码按钮,以使用其他编码重新打开或保存活动文件。
重新打开或使用其他编码保存

然后选择一种编码。
选择编码

折叠代码

折叠代码在单个文件有非常多的函数或方法时非常有用。
可以使用以下快捷操作来折叠代码:

  • 折叠 (Ctrl + Shift + [) 在光标处折叠最里面的未折叠区域。
  • 展开 (Ctrl + Shift + ]) 在光标处展开折叠区域。
  • 切换折叠 (Ctrl + K Ctrl + L) 折叠或展开光标处的区域。
  • 递归折叠 (Ctrl + K Ctrl + [) 在光标处折叠最里面的未折叠区域以及该区域内的所有区域。
  • 递归展开 (Ctrl + K Ctrl + ]) 展开光标处的区域以及该区域内的所有区域。
  • 折叠 X 级 (Ctrl + K Ctrl + 2 第 2 级) 折叠 X 级的所有区域,除了当前光标位置的区域(级别有 0-8 级)。
  • 折叠所有块注释 (Ctrl + K Ctrl + /) 折叠以块注释标记开头的所有区域。
  • 全部折叠 (Ctrl + K Ctrl + 0) 折叠编辑器中的所有区域。
  • 全部展开 (Ctrl + K Ctrl + J) 在编辑器中展开所有区域。

默认情况下,折叠区域基于线条的缩进进行评估。当一行的缩进量小于一个或多个后续行时,折叠区域开始,而当缩进相同或较小的行时,折叠区域结束。

搜索替换

VSCode 可以快速查找当前打开文件的文本并替换。按 Ctrl + F 在编辑器中打开 “查找小部件”,搜索结果将在编辑器的概述标尺和小地图中突出显示。
如果当前打开的文件中有多个匹配结果,则在查找输入框处于焦点状态时,可按 Enter 键和 Shift + Enter 键导航到下一个或上一个结果。
打开 “查找小部件” 后,它将自动在编辑器中将所选文本填充到 “查找” 输入框中。如果选择为空,则会将光标下方的单词插入到输入框中。
可以通过设置 editor.find.seedSearchStringFromSelection 为 false 关闭此功能。

默认情况下,查找操作在编辑器中的整个文件上运行。但它也可以在选定的文本上运行。可以通过单击 “查找” 小部件上的汉堡包图标来启用此功能。

汉堡包图标

如果希望它成为 “查找小部件” 的默认行为,则可以将 editor.find.autoFindInSelection 设置为 always 或者 multiline

除了查找和替换为纯文本之外,”查找小部件” 还具有三个高级搜索选项:

  • Match Case -区分大小写
  • Match Whole Word -匹配整个单词
  • Regular Expression -正则表达式

替换输入框支持保留大小写,可以通过单击保存大小写(AB)按钮将其打开,打开后替换框的大写字母都会转换为小写后再替换。

Visual Studio Code 使用笔记

你可以通过将文本粘贴到 “查找输入框” 或 “替换输入框” 中,可以搜索替换多行文本。按下 Ctrl + Enter 会在输入框中插入新的一行。
Multiple Line Support

搜索长文本时,”查找小部件” 的默认大小可能太小。可以拖动左窗框以放大 “查找小部件”,或双击左窗框以将其最大化或缩小到其默认大小。
Resize Find Widget

VSCode 还可以快速搜索当前打开的文件夹中的所有文件。按 Ctrl + Shift + F 并输入关键字。搜索结果被分组到包含关键字的文件中,并标明每个文件中的匹配项及其位置。展开文件可以查看该文件中的所有匹配预览。然后,单击其中一个匹配项,在编辑器中查看它。
A simple text search across files

也支持在搜索框中进行正则表达式搜索。

还可以通过单击右侧搜索框下方的省略号(或切换搜索详细信息)来配置高级搜索选项(或按 Ctrl + Shift + J)。这将显示其他字段以配置搜索。

Visual Studio Code 使用笔记

进阶搜索选项

进阶搜索选项

在搜索框下面的输入框中,可以输入包含(files to include)或排除(files to exclude)搜索的模式。如果你输入 example,它将匹配工作区中名为 example 的每个文件夹和文件。如果你输入 ./example,它将匹配工作区顶层的文件夹 example/。使用 ! 将这些模式从搜索中排除。!example 将跳过搜索任何名为 example 的文件夹或文件。使用 , 来分隔多个模式。路径必须使用正斜杠。你还可以使用 glob 语法:

  • * 匹配路径段中的一个或多个字符。
  • ? 匹配路径段中的一个字符。
  • ** 匹配任意数量的路径段,包含空
  • {} 分组条件(例如:{**/*.html,**/*.txt} 匹配所有 HTML 文件和文本文件)。
  • [] 声明要匹配的字符范围(example.[0-9] 匹配 example.0example.1…. example.9

VSCode 默认情况下会排除一些文件夹,以减少你不感兴趣的搜索结果的数量(例如:node_modules)。可以打开设置在 files.excludesearch.exclude 配置项中更改这些规则,如下:

"files.exclude": {
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true
},
"search.exclude": {
    "**/node_modules": true,
    "**/bower_components": true,
    "**/*.code-search": true
}

搜索并替换

可以跨文件搜索和替换。展开搜索窗口小部件以显示 “替换” 文本框。
搜索并替换

当在 “替换” 文本框中键入文本时,我们将看到差异显示未完成的更改。我们可以从 “替换” 文本框中替换所有文件,将所有文件替换为一个文件或替换单个更改。
搜索并替换差异视图

正则表达式搜索

要使用正则表达式搜索首先需要启用 Regular Expression。

Regular Expression

启用 Regular Expression 后我们就可以愉快的使用正则表达式搜索了。

调试

Visual Studio Code 的主要功能之一就是其强大的调试支持。
VSCode 内置了 Node.js 的调试。其他语言则以扩展的方式支持调试,在扩展中搜索 Debuggers 并找到对应语言的扩展安装后就可以支持了。

打开调试配置视图,在 VSCode 侧面的活动栏中选择 “Run” 图标或使用快捷键 Ctrl + Shift + D

Debug icon

“Run” 视图显示与运行和调试有关的所有信息,并在顶部带有调试命令和配置设置栏。

如果还未配置运行和调试(未创建 launch.json),将显示 “运行开始” 视图。
初始运行和调试视图

在顶层 “Run” 菜单包含最常见的运行和调试命令:

运行和调试命令

配置

要在 VSCode 中运行或调试简单的应用程序,按 F5 键,VSCode 会尝试运行当前处于活动状态的文件。
VSCode 将调试配置 launch.json 文件保存在工作区(项目根文件夹)的 .vscode 文件夹中或用户设置的文件夹中。
创建 launch.json 文件,需在 VSCode 中打开项目文件夹(File > Open Folder),然后在运行视图顶部栏上选择配置齿轮图标。
launch 配置

VSCode 将尝试自动检测我们的调试环境,但是如果失败,则必须手动来选择它:
调试环境选择器

以下是为 Node.js 调试生成的启动配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${file}"
    }
  ]
}

如果返回 “文件资源管理器” 视图(Ctrl + Shift + E),我们将会看到 VSCode 创建了一个 .vscode 文件夹,并将 launch.json 文件添加到了我们的工作区中。

Visual Studio Code 使用笔记

注意,启动配置中可用的属性因调试器而异。我们可以使用 IntelliSense 建议(Ctrl + Space)来查找特定调试器存在的属性。悬停帮助也可用于所有属性。

启动和附加配置

在 VSCode 中,有两种核心调试模式,LaunchAttach,它们处理两种不同的工作流和开发者群体。

如果我们是浏览器工具开发背景,则可能不习惯 “从工具中启动”,因为我们的浏览器实例已经打开。打开 DevTools 时,我们只需将 DevTools 附加到打开的浏览器选项卡上。另一方面,如果我们是服务器或桌面开发背景,则让我们的编辑器为我们启动进程是很正常的,并且我们的编辑器会自动将其调试器附加到新启动的进程。

解释 launch 和 attach 之间区别的最好方法是将 launch 配置视为在 VSCode 附加到应用之前如何在调试模式下启动应用的诀窍,而 attach 配置是如何将 VSCode 的调试器连接到已经运行的应用程序或进程的秘诀。

调试动作

调试会话开始后,”调试工具栏” 将出现在编辑器的顶部。
调试动作

  • 继续/暂停 F5
  • 跳过 F10
  • 进入 F11
  • 移出 Shift + F11
  • 重新启动 Ctrl + Shift + F5
  • 停止 Shift + F5

Launch.json属性

有许多 launch.json 属性可帮助支持不同的调试器和调试方案。我们一旦为 type 属性指定了值,就可以使用 IntelliSense(Ctrl + Space)查看可用 type 的列表。

对于每个启动配置,必须具有以下属性:

  • type - 用于启动配置的调试器的类型。每个已安装的调试扩展都会引入一种类型,例如内置的 node 或者由扩展引入的 phpgo
  • request - 配置请求类型。当前,支持 launchattach
  • name - 名称,用于显示在 “调试启动配置” 下拉列表中。

这是所有启动配置可用的一些可选属性:

  • presentation - 使用表示对象中的 ordergrouphidden 属性,可以在 “调试配置” 下拉列表和 “调试” 快速选择中对配置和化合物进行排序,分组和隐藏。
  • preLaunchTask - 要在调试会话开始之前启动任务,将此属性设置为 task.json(在工作区的 .vscode 文件夹中)指定的任务的名称。或者,可以将其设置为 ${defaultBuildTask} 以使用默认的构建任务。
  • postDebugTask - 要在调试会话结束时启动任务,将此属性设置为 task.json(在工作区的 .vscode 文件夹中)指定的任务的名称。
  • internalConsoleOptions - 该属性控制调试会话期间 “调试控制台” 面板的可见性。
  • debugServer - 仅适用于调试扩展作者: 该属性使我们可以连接到指定的端口,而不必启动调试适配器。
  • serverReadyAction - 如果要在调试中的程序向调试控制台或集成终端输出特定消息时在 Web 浏览器中打开 URL。

许多调试器支持以下一些属性:

  • program - 启动调试器时要运行的可执行文件或文件。
  • args - 传递给程序进行调试的参数。
  • env - 环境变量(值 null 可用于取消定义变量)。
  • cwd - 当前工作目录,用于查找依赖关系和其他文件
  • port - 连接到正在运行的进程时的端口
  • stopOnEntry - 程序启动时立即中断
  • console - 使用哪种控制台,例如 internalConsoleintegratedTerminal 或者 externalTerminal

变量替换

VSCode 将常用的路径和其他值用作变量,并支持 launch.json 中字符串内的变量替换。这意味着我们不必在调试配置中使用绝对路径。例如,${workspaceFolder} 给出工作区文件夹的根路径,${file} 在活动编辑器中打开的文件以及 ${env:Name} 环境变量 “名称”。

{
  "type": "node",
  "request": "launch",
  "name": "Launch Program",
  "program": "${workspaceFolder}/app.js",
  "cwd": "${workspaceFolder}",
  "args": ["${env:USERNAME}"]
}

版本控制

Visual Studio Code 具有集成的源代码控制,并且包括内置的 Git 支持。通过扩展,可以使用许多其他源代码控制提供程序功能。
Git概述

VSCode 附带了一个 Git 源代码管理器(SCM)扩展。大多数源代码管理 UI 和工作流程在其它 SCM 扩展中是通用的。

注意:VSCode 利用计算机本地 Git,因此在使用这些功能之前,首先需要安装 Git。确保至少安装了 version 2.0.0

左侧的 “源代码管理” 图标将始终指示我们当前在存储库中进行了多少更改的概述。点击它会为我们显示当前存储库更改的详细信息:CHANGESSTAGED CHANGESMERGE CHANGES

点击每个项目将向我们详细显示每个文件中的文本更改。注意,对于未进行的更改,右侧的编辑器仍可让我们编辑文件

我们还可以在 VSCode 的左下角找到存储库状态的指示符:当前分支,脏指示符以及当前分支的上传和下载提交数。我们可以通过点击状态指示器并从列表中选择 Git 引用来检出存储库中的任何分支。

Visual Studio Code 使用笔记

提交

可以通过文件中的上下文操作或通过点击操作按钮来执行暂存(git add)和未暂存(git reset)。
阶段更改按钮

如上图,将修改添加到缓存区则点击文件名后面的加号即可,如果需要将缓存区的修改放回工作区则点击文件名后面的减号,如果需要丢弃工作区的修改则点击带拐弯的箭头即可。

我们可以在更改上方输入提交消息,然后按 Ctrl + Enter(macOS:⌘ + Enter)进行更改。如果有任何阶段性的更改(添加到缓存区的修改),则仅将那些更改提交,否则将提交所有更改。

我们可以在 Git 视图顶部的 ... “更多操作” 菜单中找到更具体的 “提交” 操作。
更多动作按钮

克隆库

我们可以使用命令面板中的 (Ctrl + Shift + P) Git: Clone 命令克隆一个 Git 存储库。执行命令后将被要求提供远程存储库(例如在 GitHub 上)的 URL 和放置本地存储库的父级目录。
然后,我们可以将 URL 粘贴到 Git:Clone 提示中。
设置存储库URL

分支和标签

我们可以通过(Ctrl + Shift + PGit: Create Branch 和(Ctrl + Shift + PGit: Checkout to 命令在 VSCode 中新增和切换分支。

远程

假设我们的存储库已连接到某个远程仓库,并且签出的分支也与远程仓库的分支关联,VSCode 为我们提供了 push、pull、sync 操作来同步该分支(sync 操作会先执行 pull 命令,然后执行 push 命令)。

VSCode 可以定期地从远程服务器获取更改。这使得 VSCode 能够显示本地存储库在远程存储库之前或之后进行了多少更改。从 VSCode 1.19 开始,该特性在默认情况下是禁用的,可以使用 git.autofetch 设置来启用它。

标识

如果打开的文件夹是 Git 存储库并开始进行更改,则 VSCode 将在装订线和概览标尺中添加有用的注释。

  • 红色三角形表示已删除行的位置
  • 绿色条表示新添加的行
  • 蓝色条表示已修改的行

标识

合并冲突

Git合并
合并冲突由 VSCode 识别。突出显示了差异,并且有内联操作来接受一个或两个更改。解决冲突后,暂存有冲突的文件,以便我们提交那些更改。

查看差异

我们的 Git 工具支持在 VSCode 中查看差异。
VSCode中的文件差异

另差异编辑器中有一个检查窗格,该窗格以统一的修补程序格式显示更改。我们可以使用(F7)转到下一个差异和(Shift + F7)转到上一个差异。可以使用箭头键浏览各行,然后按 Enter 键将在 Diff 编辑器中跳回到所选的行中。

终端

在 VSCode 中,我们可以从工作区的底部打开一个集成终端。这非常方便,因为我们无需切换窗口或更改现有终端的状态即可执行快速的命令行任务。

打开终端的方式如下:

  • 使用 Ctrl + ` 快捷键打开终端(如果再次使用该快捷键则会隐藏终端,这很方便)。
  • 使用 View > Terminal 菜单打开。
  • Command Palette (Ctrl + Shift + P) 输入 View: Toggle Integrated Terminal 命令打开。

管理多个终端

我们可以创建多个打开到不同位置的终端,并在它们之间轻松切换。可以通过点击 TERMINAL 面板右上角的加号图标或使用 Ctrl + Shift + ` 快捷键来添加终端实例。该操作将在下拉列表中创建另一个条目,可用于在它们之间进行切换。
多个终端
按下垃圾桶按钮可删除终端实例。

如果经常使用多个终端,则可以使用绑定键的 focusNextfocusPrevious 在各个终端切换。

终端分割

分割终端可以通过使用 Ctrl + Shift + 5 快捷键或通过右键点击上下文菜单来拆分终端。
终端分割

聚焦拆分的终端窗格时,可以使用以下命令之一移动焦点并调整大小:

Key Command
Alt + Left Focus Previous Pane
Alt + Right Focus Next Pane
unassigned Resize Pane Left
unassigned Resize Pane Right
unassigned Resize Pane Up
unassigned Resize Pane Down

配置

在 Linux 和 macOS 上使用的 Shell 默认为 $SHELL,Windows 10 上使用 PowerShell 和 Windows 早期版本上使用 cmd.exe。
可以通过在用户配置中设置 terminal.integrated.shell.* 来手动配置覆盖这些设置。使用 terminal.integrated.shellArgs.* 用户配置将参数传递到终端 Shell。

注意:这些配置在工作区范围内不会自动生效,必须使用 (Ctrl + Shift + P) Terminal: Manage Workspace Shell Permissions 命令将工作区列入白名单以允许设置我们的 shell、shell args 及其环境。

Windows

对于 Windows,在终端下拉列表中有一个 shell 选择器,可以在检测到的几个 shell 之间进行选择,包括 Command Prompt,PowerShell,PowerShell Core,Git Bash 和 WSL Bash。可以通过输入 Terminal: Select Default Shell 命令打开选择菜单设置默认的 Shell。
也可以通过用户配置来设置,如:

{
// Command Prompt
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe"
// PowerShell
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
// Git Bash
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
// Bash on Ubuntu (on Windows)
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
}

Shell参数

我们可以在启动 Shell 程序时将参数传递给 Shell 程序。
例如,要启用运行 bash 作为登录 Shell 程序(运行 .bash_profile),传入 -l 参数:

{
// Linux
"terminal.integrated.shellArgs.linux": ["-l"]
}

使用变量

shellshellArgsenvcwd 终端设置均支持解析变量:

{
// Open the terminal in the currently opened file's directory
"terminal.integrated.cwd": "${fileDirname}"
}

终端显示配置

可以使用以下配置来自定义终端的集成字体和行高:

  • terminal.integrated.fontFamily 设置终端字体。
  • terminal.integrated.fontSize 设置终端字体大小。
  • terminal.integrated.fontWeight 终端内用于非粗体文本的字体粗细。
  • terminal.integrated.fontWeightBold 终端内用于粗体文本的字体粗细。
  • terminal.integrated.letterSpacing 控制终端的字母间距,这是一个整数值,代表要在字符之间添加的其他像素的数量。
  • terminal.integrated.lineHeight 控制终端的行高,该数字乘以终端字体大小即可获得以像素为单位的实际行高。

终端绑定快捷键

以下是可在集成终端中快速导航的键盘快捷键:

Key Command
Ctrl + ` Show integrated terminal
Ctrl + Shift + ` Create new terminal
Ctrl + Alt + PageUp Scroll up
Ctrl + Alt + PageDown Scroll down
Shift + PageUp Scroll page up
Shift + PageDown Scroll page down
Ctrl + Home Scroll to top
Ctrl + End Scroll to bottom
unassigned Clear the terminal

其他终端命令可用,并且可以绑定到我们喜欢的键盘快捷键,例如:

  • workbench.action.terminal.focus: 聚焦终端。这类似于切换,但是如果可见,则将终端聚焦而不是隐藏终端。
  • workbench.action.terminal.focusNext: 重点关注下一个终端实例。
  • workbench.action.terminal.focusPrevious: 重点关注上一个终端实例。
  • workbench.action.terminal.focusAtIndexN: 将终端对准索引 N (N=1-9)
  • workbench.action.terminal.kill: 删除当前的终端实例。
  • workbench.action.terminal.runSelectedText: 在终端实例中运行选定的文本。
  • workbench.action.terminal.runActiveFile: 在终端实例中运行活动文件。

复制粘贴

  • Linux: Ctrl + Shift + CCtrl + Shift + V
  • macOS: Cmd + CCmd + V
  • Windows: Ctrl + CCtrl + V

运行选中的文本

使用 runSelectedText 命令,先在编辑器中选择需要运行文本,然后运行命令(Ctrl + Shift + PTerminal: Run Selected Text in Active Terminal
如果在活动编辑器中没有选择任何文本的话,则在终端中运行光标所在的那一行。

打开特定的目录

默认情况下,终端将在资源管理器中打开的文件夹中打开。terminal.integrated.cwd 设置允许指定自定义的路径:

{
  "terminal.integrated.cwd": "/home/user"
}

在 Windows 上的分割终端在父终端初始目录中启动。在 macOS 和 Linux 上,分割终端将继承父终端的当前工作目录。可以使用 terminal.integrated.splitCwd 配置项修改继承方式:

{
  "terminal.integrated.splitCwd": "workspaceRoot"
}

该配置项有三个值:

  • workspaceRoot -打开一个新的分割终端时将使用工作区根目录作为工作目录。在多工作区中,可以选择要使用的根目录。
  • initial -打开一个新的分割终端时将使用父终端初始的工作目录。
  • inherited -在 macOS 和 Linux 上,新的分割终端将使用父终端的工作目录。在 Windows 上,该行为与 initial 相同。

快捷键编辑

打开 VSCode 的快捷键列表使用 Ctrl + K Ctrl + S,或编辑快捷键配置文件重新绑定快捷键。
配置文件使用 Ctrl + Shift + p 输入 Preferences: Open Keyboard Shortcuts (JSON) 命令打开。

配置文件位置:

  • Windows %APPDATA%\Code\User\keybindings.json
  • macOS $HOME/Library/Application Support/Code/User/keybindings.json
  • Linux $HOME/.config/Code/User/keybindings.json

配置键的规则:

  • 一个 key 描述按下的键。
  • 一个 command 包含要执行的命令的标识符。
  • 一个可选的 when 子句,其中包含一个布尔表达式,将根据当前上下文进行评估。
// Place your key bindings in this file to override the defaults
[
    { "key": "home",    "command": "cursorHome",    "when": "editorTextFocus" }
]

常用快捷键

以下是 VSCode 默认的快捷键。

编辑器:

新建窗口             Ctrl + Shift + N
打开文件夹           Ctrl + K Ctrl + O
打开资源管理器        Ctrl + Shift + E
显示/关闭侧边栏       Ctrl + B
打开键盘快捷方式      Ctrl + K Ctrl + S
查找文件/安装插件     Ctrl + p
全局搜索             Ctrl + Shift + F
全局替换             Ctrl + Shift + H
文件中搜索           Ctrl + F
文件中替换           Ctrl + H
跳转行数             Ctrl + G
拆分编辑器           Ctrl + 1/2/3
关闭编辑器窗口       Ctrl + W
新建无标题文件       Ctrl + N
下一个编辑页面       Ctrl + PageDown
上一个编辑页面       Ctrl + PageUp
关闭编辑页面         Ctrl + F4 或 Ctrl + W
关闭所有编辑页面     Ctrl + K Ctrl + W

终端:

新建终端              Ctrl + Shift + `
控制台终端显示与隐藏   Ctrl + ~
粘贴到活动终端         Ctrl + Shift + V
分裂终端              Ctrl + Shift + 5
聚焦到上一个窗格       Alt + LeftArrow
聚焦到下一个窗格       Alt + RightArrow

编辑内容:

单行注释           Ctrl + /
多行注释           Alt + Shift + A
复制当前行         Shift + Alt + Up/Down
上下移动当前行     Alt + Up/Down
删除当前行         Ctrl + Shift + K
代码格式化         Shift + Alt + F
行增加缩进         Ctrl + [
行减少缩进         Ctrl + ]
裁剪尾随空格       Ctrl + K Ctrl + X
折叠代码           Ctrl + K Ctrl + 0 (0-8 级别,0级表示全部折叠,1级表示只折叠一级的中括号,其他以此类推)
折叠注释块         Ctrl + K Ctrl + /
全部展开           Ctrl + K Ctrl + J
快速回到顶部       Ctrl + Home
快速回到底部       Ctrl + End

调试:

打开调试           F5
关闭调试           Shift + F5

其他

光标多项选择

光标多项选择使用 Alt + 鼠标左键 快捷键就行多项选择。

列框的选择

列框的选择使用 Shift + Alt + 拖动鼠标到对角 来选择。

在 macOS 和 Windows 上,还有用于列选择的默认键绑定,但在 Linux 上没有。

Key Command Command ID
Ctrl+Shift+Alt+Down Column Select Down cursorColumnSelectDown
Ctrl+Shift+Alt+Up Column Select Up cursorColumnSelectUp
Ctrl+Shift+Alt+Left Column Select Left cursorColumnSelectLeft
Ctrl+Shift+Alt+Right Column Select Right cursorColumnSelectRight
Ctrl+Shift+Alt+PageDown Column Select Page Down cursorColumnSelectPageDown
Ctrl+Shift+Alt+PageUp Column Select Page Up cursorColumnSelectPageUp

可以编辑 keybindings.json 绑定快捷键。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1
colin_king

mk

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!