基础编辑

Visual Studio Code 首先是一个代码编辑器,它包含了高效编写源代码所需的功能。本主题将带您了解编辑器的基础知识,并帮助您快速上手编写代码。

键盘快捷键

在编写代码时能够保持手不离开键盘对于提高工作效率至关重要。VS Code 不仅内置了丰富的默认键盘快捷键,还允许您进行自定义设置。

多重选择(多光标)

VS Code 支持多光标,以便进行快速、同步的编辑。您可以使用 Alt+点击 添加辅助光标(显示较细)。每个光标根据其所在的上下文独立运行。添加多个光标的常用方法是使用 ⌥⌘↓ (Windows Ctrl+Alt+Down, Linux Shift+Alt+Down)⌥⌘↑ (Windows Ctrl+Alt+Up, Linux Shift+Alt+Up),分别在下方或上方插入光标。

注意

您的显卡驱动程序(例如 NVIDIA)可能会覆盖这些默认快捷键。

Multi-cursor

⌘D (Windows, Linux Ctrl+D) 用于选中光标处的单词,或选中文本的下一个匹配项。

提示

在使用多光标查找时,您可以通过运行 ⌘K ⌘D (Windows, Linux Ctrl+K Ctrl+D) 跳过下一个匹配项。这有助于您在编辑重复文本时避免添加不需要的选择。

Multi-cursor-next-word

提示

您也可以使用 ⇧⌘L (Windows, Linux Ctrl+Shift+L) 添加更多光标,这将在当前选中内容的每一个匹配处添加选择。

多光标修饰键

如果您想将应用多光标的修饰键更改为 macOS 上的 Cmd+点击 或 Windows 和 Linux 上的 Ctrl+点击,可以通过 editor.multiCursorModifier 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来实现。这让来自 Sublime Text 或 Atom 等其他编辑器的用户可以继续使用他们熟悉的修饰键。

该设置可以设置为

  • ctrlCmd - 映射到 Windows 上的 Ctrl 和 macOS 上的 Cmd
  • alt - 现有的默认值 Alt

还有一个菜单项 选择 > 切换为 Ctrl+点击多光标选择 > 切换为 Alt+点击多光标,可用于快速切换此设置。

转到定义打开链接 手势也会遵循此设置并进行相应调整,以确保不发生冲突。例如,当设置为 ctrlCmd 时,可以使用 Ctrl/Cmd+点击 添加多个光标,而打开链接或转到定义则使用 Alt+点击

收缩/扩展选区

快速收缩或扩展当前选区。使用 ⌃⇧⌘← (Windows, Linux Shift+Alt+Left)⌃⇧⌘→ (Windows, Linux Shift+Alt+Right) 触发。

以下是使用 ⌃⇧⌘→ (Windows, Linux Shift+Alt+Right) 扩展选区的示例

Expand selection

列(块)选择

将光标置于一角,然后按住 Shift+Alt 同时拖动到对角。

Column text selection

注意

当使用 Ctrl/Cmd 作为 多光标修饰键 时,这会变为 Shift+Ctrl/Cmd

在 macOS 和 Windows 上有默认的列选择快捷键,但在 Linux 上没有。

命令 命令 ID
⇧↓ (Windows, Linux Shift+Down) 向下选择列 cursorColumnSelectDown
⇧↑ (Windows, Linux Shift+Up) 向上选择列 cursorColumnSelectUp
⇧← (Windows, Linux Shift+Left) 向左选择列 cursorColumnSelectLeft
⇧→ (Windows, Linux Shift+Right) 向右选择列 cursorColumnSelectRight
⇧PageDown (Windows, Linux Shift+PageDown) 向下翻页选择列 cursorColumnSelectPageDown
⇧PageUp (Windows, Linux Shift+PageUp) 向上翻页选择列 cursorColumnSelectPageUp

如果需要,您可以 编辑 keybindings.json 将其绑定到更习惯的按键上。

列选择模式

用户设置 Editor: Column Selection 控制此功能。一旦进入该模式(状态栏会有提示),鼠标手势和箭头键默认将创建列选择。此全局切换也可以通过 选择 > 列选择模式 菜单项访问。此外,也可以从状态栏禁用列选择模式。

保存 / 自动保存

默认情况下,VS Code 需要明确的操作才能将更改保存到磁盘,即 ⌘S (Windows, Linux Ctrl+S)

当编辑器有未保存的更改时,编辑器选项卡上会显示一个圆点指示器,资源管理器视图也会显示一个标记,指示未保存文件的数量。这些更改尚未保存到磁盘,但 VS Code 会自动备份它们,以便在应用程序意外关闭时可以恢复(请参阅 热退出)。

但是,可以轻松开启 自动保存,它会在配置的延迟后或焦点离开编辑器时保存更改。开启此选项后,无需手动保存文件。开启 自动保存 最简单的方法是使用 文件 > 自动保存 切换开关。

如需更多对 自动保存 的控制,请打开用户或工作区 设置 并查找相关选项:

  • files.autoSave 在 VS Code 中打开 在 VS Code Insiders 中打开 :可选值
    • off - 禁用自动保存。
    • afterDelay - 在配置的延迟时间后保存文件(默认为 1000 毫秒)。
    • onFocusChange - 当焦点离开包含未保存更改的文件时保存文件。
    • onWindowChange - 当焦点离开 VS Code 窗口时保存文件。
  • files.autoSaveDelay 在 VS Code 中打开 在 VS Code Insiders 中打开 :当 files.autoSave 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 afterDelay 时,配置以毫秒为单位的延迟时间。默认值为 1000 毫秒。

如果您想针对特定语言或文件类型自定义 自动保存 功能,可以通过在 settings.json 文件中添加特定语言的规则来实现。

例如,禁用 LaTeX 文件的 自动保存

    "[latex]": {
        "files.autoSave": "off",
    },

热退出

默认情况下,VS Code 在您退出时会记住文件的未保存更改。当通过 文件 > 退出(macOS 上为 Code > 退出)或关闭最后一个窗口时,会触发热退出。

您可以通过设置 files.hotExit 在 VS Code 中打开 在 VS Code Insiders 中打开 为以下值来配置热退出

  • "off":禁用热退出。
  • "onExit":在关闭应用程序时触发热退出,即在 Windows/Linux 上关闭最后一个窗口时,或者触发 workbench.action.quit 命令时(通过命令面板、快捷键或菜单)。下次启动时将恢复所有未打开文件夹的窗口。
  • "onExitAndWindowClose":在关闭应用程序时触发热退出(即 Windows/Linux 上关闭最后一个窗口,或触发 workbench.action.quit 命令时),对于任何打开了文件夹的窗口,无论是否为最后一个窗口,也会触发。下次启动时将恢复所有未打开文件夹的窗口。若要恢复关闭前的文件夹窗口,请将 window.restoreWindows 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 all

如果热退出出现问题,所有备份都存储在标准安装位置的以下文件夹中

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

查找与替换

VS Code 允许您快速查找并替换当前打开文件中的文本。按 ⌘F (Windows, Linux Ctrl+F) 打开编辑器中的查找控件并输入搜索字符串。搜索结果将在编辑器、概览标尺和迷你地图中高亮显示。

VS Code 会在您输入时立即开始搜索。如果只想在按 Enter 后开始搜索,请清除 editor.find.findOnType 在 VS Code 中打开 在 VS Code Insiders 中打开 设置。

要在找到匹配项后自动关闭查找控件并将焦点返回给编辑器,请启用 editor.find.closeOnResult 在 VS Code 中打开 在 VS Code Insiders 中打开 设置。

如果当前文件中存在多个匹配项,当查找输入框拥有焦点时,按 Enter 跳转到下一个结果,或按 ⇧Enter (Windows, Linux Shift+Enter) 跳转到上一个结果。

默认情况下,VS Code 会为工作区保存您的查找和替换记录,并在重启后恢复。您可以使用 editor.find.history 在 VS Code 中打开 在 VS Code Insiders 中打开 editor.find.replaceHistory 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来配置此行为。将值设置为 never 可禁用历史记录保存。

从选区填充搜索字符串

当打开查找控件时,它会自动将编辑器中选中的文本填充到查找输入框中。如果未选中任何内容,则光标下的单词将插入到输入框中。

Seed Search String From Selection

可以通过将 editor.find.seedSearchStringFromSelection 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 "never" 来关闭此功能。

在选区内查找

默认情况下,查找操作在编辑器中的整个文件上运行。若要将搜索限制在选中文本,请选择查找控件上的 在选区内查找 图标,或按 ⌥⌘L (Windows, Linux Alt+L)

Find In Selection

如果您希望将其作为查找控件的默认行为,可以将 editor.find.autoFindInSelection 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 always,或者如果您希望仅在选中了多行内容时才在选中文本上运行,则设置为 multiline

高级查找和替换选项

对于更高级的场景,查找和替换控件具有以下选项

  • 查找控件

    • 匹配大小写
    • 匹配整个单词
    • 正则表达式
  • 替换控件

    • 保留大小写

Advanced Find and Replace Options

多行支持和查找控件缩放

您可以通过将文本粘贴到查找输入框和替换输入框中来搜索多行文本。按 Ctrl+Enter 可在输入框中插入新行。

Multiple Line Support

搜索长文本时,查找控件的默认大小可能太小。您可以拖动左侧边栏来放大查找控件,或双击左侧边栏将其最大化或恢复到默认大小。

Resize Find control

全局文件搜索

VS Code 允许您快速搜索当前打开文件夹中的所有文件。按 ⇧⌘F (Windows, Linux Ctrl+Shift+F) 并输入搜索词。搜索结果将按包含该搜索词的文件分组,显示每个文件中的命中次数及其位置。展开文件即可预览该文件内的所有命中项,然后单击其中一个命中项即可在编辑器中查看。

A simple text search across files

提示

VS Code 还在搜索框中支持正则表达式搜索。

您可以通过选择搜索框右下角的省略号(切换搜索详情)来配置高级搜索选项(或按 ⇧⌘J (Windows, Linux Ctrl+Shift+J))。这将显示用于配置搜索的附加字段。

提示

您可以使用快速搜索快速查找当前打开文件夹中所有文件中的文本。打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并输入 搜索:快速搜索 命令。

高级搜索选项

Advanced search options

在搜索框下方的两个输入框中,您可以输入要包含或排除在搜索之外的模式。如果您输入 example,它将匹配工作区中所有命名为 example 的文件夹和文件。如果您输入 ./example,它将匹配工作区顶级目录下的 example/ 文件夹。使用 , 分隔多个模式。路径必须使用正斜杠。您还可以使用 glob 模式 语法,例如

  • * 匹配路径段中的零个或多个字符
  • ? 匹配路径段中的一个字符
  • ** 匹配任意数量的路径段,包括零个
  • {} 用于组合条件(例如 {**/*.html,**/*.txt} 匹配所有 HTML 和文本文件)
  • [] 用于声明要匹配的字符范围(example.[0-9] 匹配 example.0example.1 等)
  • [!...] 用于对要匹配的字符范围取反(example.[!0-9] 匹配 example.aexample.b,但不匹配 example.0

关于大小写敏感性的说明: Glob 模式遵循操作系统文件系统的规则。在 Windows 和 macOS 上,模式是不区分大小写的(例如,*.CS 匹配 file.cs)。在 Linux 上,模式是区分大小写的。这与搜索文本的 匹配大小写 开关是分开的,后者控制搜索文本本身是否区分大小写。了解更多关于 glob 模式 的信息。

VS Code 默认排除了一些文件夹,以减少您不感兴趣的搜索结果(例如:node_modules)。打开 设置 并在 files.exclude 在 VS Code 中打开 在 VS Code Insiders 中打开 search.exclude 在 VS Code 中打开 在 VS Code Insiders 中打开 部分下更改这些规则。

请注意,搜索视图中的 glob 模式与设置(如 files.exclude 在 VS Code 中打开 在 VS Code Insiders 中打开 search.exclude 在 VS Code 中打开 在 VS Code Insiders 中打开 )的工作方式不同。在设置中,您必须使用 **/example 来匹配工作区子文件夹 folder1/example 中名为 example 的文件夹。在搜索视图中,默认已假设 ** 前缀。这些设置中的 glob 模式始终相对于工作区文件夹的路径进行评估。

还要注意 要排除的文件 框中的 使用排除设置和忽略文件 切换按钮。该开关决定是否排除被 .gitignore 文件忽略和/或被 files.exclude 在 VS Code 中打开 在 VS Code Insiders 中打开 search.exclude 在 VS Code 中打开 在 VS Code Insiders 中打开 设置匹配的文件。

要包含的文件 框中,您可以使用 仅在已更改文件中搜索 切换按钮,将搜索结果限制为具有未提交源代码管理更改的文件。当没有代码仓库或没有要搜索的更改时,此切换按钮将被禁用。

注意

.gitignore 文件中的模式在 Windows 和 macOS 上不区分大小写,在 Linux 上区分大小写。了解更多关于 glob 模式大小写敏感性 的信息。

提示

在资源管理器中,您可以右键单击文件夹并选择 在文件夹中查找,仅在特定文件夹内搜索。

搜索并替换

您还可以在多个文件中执行搜索并替换。展开搜索小部件以显示替换文本框。

search and replace

当您在替换文本框中输入文本时,您将看到挂起更改的差异显示。您可以从替换文本框中跨所有文件进行替换,替换一个文件中的所有匹配项,或替换单个更改。

search and replace diff view

提示

您可以使用 (Windows, Linux Down) (Windows, Linux Up) 来浏览您的搜索词历史记录,从而快速复用之前的搜索词。

Regex 替换中的大小写更改

VS Code 支持在编辑器中或全局进行搜索和替换时更改正则表达式匹配组的大小写。这可以通过修饰符 \u\U\l\L 完成,其中 \u\l 会将单个字符转为大写/小写,而 \U\L 会将匹配组的其余部分转为大写/小写。

示例

Changing case while doing find and replace

修饰符也可以叠加——例如,\u\u\u$1 会将组的前三个字符转为大写,或 \l\U$1 会将第一个字符转为小写,并将其余部分转为大写。捕获组在替换字符串中通过 $n 引用,其中 n 是捕获组的顺序。

搜索编辑器

搜索编辑器允许您在全尺寸编辑器中查看工作区搜索结果,并具备语法高亮显示和可选的周围上下文行。

下方是对单词 'SearchEditor' 的搜索,其中包含了匹配项前后各两行的文本上下文。

Search Editor overview

打开搜索编辑器 命令会打开一个现有的搜索编辑器(如果存在),否则创建一个新的。新建搜索编辑器 命令将始终创建一个新的搜索编辑器。

在搜索编辑器中,可以使用 转到定义 操作导航到结果,例如使用 F12 在当前编辑器组中打开源位置,或使用 ⌘K F12 (Windows, Linux Ctrl+K F12) 在侧边的编辑器中打开。此外,您可以使用 search.searchEditor.singleClickBehaviour 在 VS Code 中打开 在 VS Code Insiders 中打开 search.searchEditor.doubleClickBehaviour 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来配置单击或双击搜索结果的行为。例如,打开预览定义窗口或打开源位置。

您还可以使用搜索视图顶部的 打开新建搜索编辑器 按钮,并使用结果树顶部的 在编辑器中打开 链接或 搜索编辑器:在编辑器中打开结果 命令,将现有的搜索视图结果复制到搜索编辑器中。

Search Editor Button

上面的搜索编辑器是通过选择搜索视图顶部的 打开新建搜索编辑器 按钮(第三个按钮)打开的。

搜索编辑器命令和参数

  • search.action.openNewEditor - 在新选项卡中打开搜索编辑器。
  • search.action.openInEditor - 将当前搜索结果复制到新的搜索编辑器中。
  • search.action.openNewEditorToSide - 在当前打开窗口旁的新窗口中打开搜索编辑器。

您可以向搜索编辑器命令(search.action.openNewEditorsearch.action.openNewEditorToSide)传递两个参数,以允许快捷键配置新搜索编辑器的行为

  • triggerSearch - 打开搜索编辑器时是否自动运行搜索。默认为 true。
  • focusResults - 是否将焦点置于搜索结果或查询输入框中。默认为 true。

例如,以下快捷键会在打开搜索编辑器时运行搜索,但将焦点保留在搜索查询控件中。

{
  "key": "ctrl+o",
  "command": "search.action.openNewEditor",
  "args": { "query": "VS Code", "triggerSearch": true, "focusResults": false }
}

搜索编辑器上下文默认值

设置 search.searchEditor.defaultNumberOfContextLines 在 VS Code 中打开 在 VS Code Insiders 中打开 的默认值为 1,意味着在搜索编辑器中,每行结果的前后会显示一行上下文。

复用上次搜索编辑器的配置

设置 search.searchEditor.reusePriorSearchConfiguration 在 VS Code 中打开 在 VS Code Insiders 中打开 (默认为 false)允许您在创建新搜索编辑器时复用上次激活的搜索编辑器的配置。

IntelliSense

我们总是提供单词补全,但对于 JavaScript、JSON、HTML、CSS、SCSS、Less、C# 和 TypeScript 等丰富的 语言,我们提供真正的 IntelliSense 体验。如果语言服务知道可能的补全,IntelliSense 建议会在您输入时弹出。您可以随时通过 ⌃Space (Windows, Linux Ctrl+Space) 手动触发。默认情况下,TabEnter 是接受建议的快捷键,但您也可以 自定义这些快捷键

提示

建议过滤支持驼峰命名法,因此您可以输入方法名中的大写字母来缩小建议范围。例如,“cra”将快速调出“createApplication”。

提示

IntelliSense 建议可以通过 editor.quickSuggestions 在 VS Code 中打开 在 VS Code Insiders 中打开 editor.suggestOnTriggerCharacters 在 VS Code 中打开 在 VS Code Insiders 中打开 设置 进行配置。

JavaScript 和 TypeScript 开发人员可以利用 npmjs 类型声明 (typings) 文件仓库来获取常用 JavaScript 库(Node.js、React、Angular)的 IntelliSense。您可以在 JavaScript 语言 主题和 Node.js 教程中找到关于使用类型声明文件的详细说明。

IntelliSense 文档 中了解更多信息。

格式化

VS Code 对源代码格式化有很好的支持。编辑器有两个明确的格式化操作

  • 格式化文档 (⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I)) - 格式化整个活动文件。
  • 格式化选区 (⌘K ⌘F (Windows, Linux Ctrl+K Ctrl+F)) - 格式化选中的文本。

您可以从 命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 或编辑器右键上下文菜单中调用这些操作。

VS Code 为 JavaScript、TypeScript、JSON、HTML 和 CSS 提供了默认格式化程序。每种语言都有特定的格式化选项(例如 html.format.indentInnerHtml 在 VS Code 中打开 在 VS Code Insiders 中打开 ),您可以在用户或工作区 设置 中根据喜好调整这些选项。如果您安装了其他为同一语言提供格式化功能的扩展,也可以禁用默认的语言格式化程序。

"html.format.enable": false

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

  • editor.formatOnType 在 VS Code 中打开 在 VS Code Insiders 中打开 - 输入后格式化该行。
  • editor.formatOnSave 在 VS Code 中打开 在 VS Code Insiders 中打开 - 保存时格式化文件。
  • editor.formatOnPaste 在 VS Code 中打开 在 VS Code Insiders 中打开 - 格式化粘贴的内容。
注意

并非所有格式化程序都支持粘贴时格式化,因为这需要它们支持格式化文本的选择或范围。

除了默认的格式化程序外,您还可以在市场中找到支持其他语言或格式化工具的扩展。有一个 Formatters 类别,您可以轻松搜索并找到 格式化扩展。在 扩展 视图搜索框中,输入 'formatters' 或 'category:formatters' 以查看 VS Code 内经过过滤的扩展列表。

折叠

您可以使用行号和行首之间的装订线上的折叠图标来折叠源代码区域。将鼠标移至装订线并单击即可折叠或展开区域。在折叠图标上使用 Shift + 点击 可折叠或展开该区域以及其中的所有区域。

Folding

您还可以使用以下操作

  • 折叠 (⌥⌘[ (Windows, Linux Ctrl+Shift+[)) 折叠光标处最内层的未折叠区域。
  • 展开 (⌥⌘] (Windows, Linux Ctrl+Shift+])) 展开光标处的折叠区域。
  • 切换折叠 (⌘K ⌘L (Windows, Linux Ctrl+K Ctrl+L)) 折叠或展开光标处的区域。
  • 递归折叠 (⌘K ⌘[ (Windows, Linux Ctrl+K Ctrl+[)) 折叠光标处最内层的未折叠区域以及该区域内的所有区域。
  • 递归展开 (⌘K ⌘] (Windows, Linux Ctrl+K Ctrl+])) 展开光标处的区域以及该区域内的所有区域。
  • 全部折叠 (⌘K ⌘0 (Windows, Linux Ctrl+K Ctrl+0)) 折叠编辑器中的所有区域。
  • 全部展开 (⌘K ⌘J (Windows, Linux Ctrl+K Ctrl+J)) 展开编辑器中的所有区域。
  • 折叠级别 X (⌘K ⌘2 (Windows, Linux Ctrl+K Ctrl+2) 用于级别 2) 折叠级别 X 的所有区域,当前光标位置的区域除外。
  • 折叠所有块注释 (⌘K ⌘/ (Windows, Linux Ctrl+K Ctrl+/)) 折叠所有以块注释标记开头的区域。

折叠区域默认基于行的缩进进行评估。当一行比后面的一行或多行具有更小的缩进时,折叠区域开始;当遇到具有相同或更小缩进的行时,区域结束。

折叠区域也可以基于编辑器所配置语言的语法标记进行计算。以下语言已经提供语法感知折叠:Markdown、HTML、CSS、LESS、SCSS 和 JSON。

如果您更喜欢切换回基于缩进的折叠,请使用

  "[html]": {
    "editor.foldingStrategy": "indentation"
  },

区域也可以由每种语言定义的标记来指定。目前以下语言定义了标记

语言 起始区域 结束区域
Bat ::#regionREM #region ::#endregionREM #endregion
C# #region #endregion
C/C++ #pragma region #pragma endregion
CSS/Less/SCSS /*#region*/ /*#endregion*/
Coffeescript #region #endregion
F# //#region(#_region) //#endregion(#_endregion)
Java //#region//<editor-fold> //#endregion//</editor-fold>
Markdown <!-- #region --> <!-- #endregion -->
Perl5 #region=pod #endregion=cut
PHP #region #endregion
PowerShell #region #endregion
Python #region# region #endregion# endregion
TypeScript/JavaScript //#region //#endregion
Visual Basic #Region #End Region

若要仅折叠和展开由标记定义的区域,请使用

  • 折叠标记区域 (⌘K ⌘8 (Windows, Linux Ctrl+K Ctrl+8)) 折叠所有标记区域。
  • 展开标记区域 (⌘K ⌘9 (Windows, Linux Ctrl+K Ctrl+9)) 展开所有标记区域。

折叠选区

从选区创建手动折叠范围 命令 (⌘K ⌘, (Windows, Linux Ctrl+K Ctrl+,)) 从当前选中的行创建一个折叠范围并将其折叠。该范围被称为 手动 折叠范围,它会覆盖折叠提供程序计算出的范围。

手动折叠范围可以使用 删除手动折叠范围 命令 (⌘K ⌘. (Windows, Linux Ctrl+K Ctrl+.)) 移除。

手动折叠范围对于没有编程语言支持折叠的情况特别有用。

缩进

VS Code 允许您控制文本缩进以及是否使用空格或制表符。默认情况下,VS Code 插入空格并使用每个 Tab 键代表 4 个空格。如果您想使用其他默认值,可以修改 editor.insertSpaces 在 VS Code 中打开 在 VS Code Insiders 中打开 editor.tabSize 在 VS Code 中打开 在 VS Code Insiders 中打开 设置

    "editor.insertSpaces": true,
    "editor.tabSize": 4,

自动检测

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

auto detect indentation

您可以单击状态栏上的缩进显示,调出一个包含缩进命令的下拉菜单,允许您更改打开文件的默认设置或在制表符和空格之间进行转换。

indentation commands

注意

VS Code 的自动检测会检查 2、4、6 或 8 个空格的缩进。如果您的文件使用不同数量的空格,缩进可能无法正确检测。例如,如果您的规范是使用 3 个空格缩进,您可能需要关闭 editor.detectIndentation 在 VS Code 中打开 在 VS Code Insiders 中打开 并明确将制表符大小设置为 3。

    "editor.detectIndentation": false,
    "editor.tabSize": 3,

文件编码支持

通过在 用户设置工作区设置 中使用 files.encoding 在 VS Code 中打开 在 VS Code Insiders 中打开 设置,可以全局或按工作区设置文件编码。

files.encoding setting

您可以在状态栏中查看文件编码。

Encoding in status bar

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

Reopen or save with a different encoding

然后选择一种编码。

Select an encoding

改写模式

在 1.96 版本之前,除非您安装了 Vim 键盘映射扩展,否则 VS Code 仅支持 插入 模式,即字符在光标位置插入。

自 1.96 版本起,VS Code 支持 改写 模式,让您能够覆盖现有字符,而不是在光标位置插入字符。默认情况下,改写模式处于关闭状态。

若要在插入和改写模式之间切换,请在命令面板中运行 切换改写/插入模式 命令,或按 (⌥⌘O (Windows, Linux Insert))。当处于改写模式时,状态栏指示器会显示 OVR

您可以通过配置 editor.overtypeCursorStyle 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来更改改写模式的光标样式。

使用 editor.overtypeOnPaste 在 VS Code 中打开 在 VS Code Insiders 中打开 设置以在粘贴时覆盖文本。此设置生效的前提是必须处于改写模式。

文件对比

VS Code 支持多种比较当前文件内容或任意两个文件内容的方法。

当您在编辑器中打开一个活动文件时,您可以使用以下对比选项

  • 与工作区文件比较:在命令面板中,选择 文件:将活动文件与...进行比较,然后选择要比较的另一个文件。
  • 与剪贴板比较:在命令面板中,选择 File: Compare Active File with Clipboard⌘K C (Windows, Linux Ctrl+K C))来将当前文件与剪贴板中的内容进行比较。
  • 与已保存文件比较:在命令面板中,选择 File: Compare Active File with Saved⌘K D (Windows, Linux Ctrl+K D))来将当前文件与最后一次保存的版本进行比较。

比较任意两个文件

  • 在资源管理器视图中右键点击一个文件并选择 Select for Compare(选择以进行比较)。然后,右键点击第二个文件并选择 Compare with Selected(与选定项进行比较)
  • 若要开始比较两个空白编辑器窗口,请在命令面板中选择 File: Compare New Untitled Text Files(文件:比较新的无标题文本文件)
提示

你可以使用 --diff 选项从命令行启动 VS Code 以比较两个文件。了解更多关于 VS Code 命令行界面的信息。

后续步骤

你已经了解了基本的用户界面——VS Code 还有更多功能。继续阅读以了解

常见问题

是否可以全局搜索和替换?

可以,展开搜索视图的文本框以包含替换文本字段。你可以在工作区的所有文件中进行搜索和替换。请注意,如果你没有在 VS Code 中打开一个文件夹,搜索将仅在当前打开的文件中运行。

global search and replace

如何开启自动换行?

你可以通过 editor.wordWrap 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来控制自动换行。默认情况下, editor.wordWrap 在 VS Code 中打开 在 VS Code Insiders 中打开 off(关闭),但如果你将其设置为 on(开启),文本将根据编辑器的视口宽度进行换行。

    "editor.wordWrap": "on"

你可以使用 ⌥Z (Windows, Linux Alt+Z) 在当前 VS Code 会话中切换自动换行。

你还可以使用 editor.rulers 在 VS Code 中打开 在 VS Code Insiders 中打开 设置在编辑器中添加垂直列标尺,该设置接受一个数组,包含你希望显示垂直标尺的列字符位置。

与其他编辑器一样,剪切复制等命令应用于整个自动换行的行。三击可选中整个自动换行的行。按两次 Home 键可将光标移动到行首。按两次 End 键可将光标移动到行尾。

如何避免在自动换行的行中放置额外的光标?

如果你希望在当前选定内容上方或下方添加光标时忽略行换行,可以通过键盘快捷键的 args 传入 { "logicalLine": true },如下所示

{
  "key": "shift+alt+down",
  "command": "editor.action.insertCursorBelow",
  "when": "textInputFocus",
  "args": { "logicalLine": true },
},
{
  "key": "shift+alt+up",
  "command": "editor.action.insertCursorAbove",
  "when": "textInputFocus",
  "args": { "logicalLine": true },
},
© . This site is unofficial and not affiliated with Microsoft.