代码导航
Visual Studio Code 有一个高生产力的代码编辑器,结合了编程语言服务,赋予了你 IDE 的力量和文本编辑器的速度。在这个主题中,我们将首先描述 VS Code 的语言智能功能(建议、参数提示、智能代码导航),然后展示核心文本编辑器的强大功能。
快速文件导航
提示: 你可以通过其名称打开任何文件,当您输入 ⌘P (Windows, Linux Ctrl+P) (快速打开)。
当您在浏览项目时,探索者非常适合在文件之间导航。然而,当您在处理任务时,您会发现自己快速在相同的文件之间跳转。VS Code 提供了两个强大的命令,可以轻松使用键盘快捷键在文件内外导航。
按住 Ctrl 并按下 Tab 以查看在编辑器组中打开的所有文件列表。要打开其中一个文件,请再次使用 Tab 来选择您要导航到的文件,然后松开 Ctrl 以打开它。

或者,您可以使用⌃-(Windows Alt+左,Linux Ctrl+Alt+-)和⌃⇧-(Windows Alt+右,Linux Ctrl+Shift+-)在文件和编辑位置之间导航。如果您在同一个文件的不同行之间跳转,这些快捷键可以轻松地在这些位置之间导航。
面包屑导航
编辑器的上方有一个导航栏,叫做面包屑导航。它显示当前的位置,并允许您快速导航到文件夹、文件和符号之间。

面包屑始终显示文件路径,并且在语言扩展的帮助下,显示到光标位置的符号路径。显示的符号与大纲视图和转到符号中的显示相同。
选择路径中的一个面包屑会显示一个下拉菜单,列出该级别的兄弟节点,以便您可以快速导航到其他文件夹和文件。

如果当前文件类型对符号有语言支持,您将看到当前符号路径以及同一级别和以下级别的其他符号下拉菜单。

您可以使用 视图 > 显示面包屑 开关或 来关闭面包屑。
面包屑定制
面包屑的外观可以自定义。如果你有非常长的路径,或者只对文件路径或符号路径感兴趣,你可以使用
上,关,和最后它们定义了你看到的路径部分或什么部分。默认情况下,导航路径显示文件和符号图标在导航路径的左侧,但你可以通过设置移除这些图标。面包屑中的符号顺序
您可以使用 来控制符号在面包屑下拉菜单中的排序方式
允许的值为:
职位- 文件中的位置(默认)名字- 拼字母顺序类型- 符号类型顺序
面包屑路径复制
您可以通过右键单击编辑器标签并选择 复制面包屑路径 来复制完整的面包屑路径。这将把包括文件和符号名称在内的完整路径复制到剪贴板。
你可以通过 配置符号路径分隔符
输入:.输入:.
面包屑键盘导航
要与面包屑导航进行交互,请使用聚焦面包屑导航命令或按⇧⌘.(Windows, Linux Ctrl+Shift+.)。它将选择最后一个元素并打开一个下拉菜单,允许您导航到同级文件或符号。使用←(Windows, Linux 左)和→(Windows, Linux 右)键盘快捷键来跳转到当前元素之前或之后的元素。下拉菜单出现时,开始输入 - 所有匹配的元素将被高亮显示,并选择最佳匹配以进行快速导航。
你也可以在没有下拉菜单的情况下与面包屑互动。按 ⇧⌘; (Windows, Linux Ctrl+Shift+;) 以聚焦最后一个元素,使用 ← (Windows, Linux Left) 和 → (Windows, Linux Right) 来导航,使用 Space 在编辑器中显示元素。
转到定义
如果语言支持的话,你可以通过按F12来查看符号的定义。
如果你按住Ctrl并悬停在一个符号上,将出现声明的预览:

提示: 您可以使用 Ctrl+Click 跳转到定义,或者使用 Ctrl+Alt+Click 在旁边打开定义。
转到类型定义
一些语言还支持通过运行转到类型定义命令从编辑器上下文菜单或命令面板跳转到符号的类型定义。这将带您转到符号类型的定义。命令编辑器操作:转到类型定义 默认情况下没有绑定到键盘快捷键,但您可以添加自己的自定义 键绑定。
转到实现
语言 也可以通过按 ⌘F12 (Windows, Linux Ctrl+F12) 跳转到符号的实现。对于一个接口,这会显示该接口的所有实现者,对于抽象方法,这会显示该方法的所有具体实现。
前往符号
你可以使用 ⇧⌘O 在文件内导航符号(Windows, Linux Ctrl+Shift+O)。输入 : 后,符号将按类别分组。按 Up 或 Down 并导航到你想要的位置。

通过名称打开符号
一些语言支持在文件之间跳转到符号,使用⌘T(Windows, Linux Ctrl+T)。输入您要导航到的类型的首字母,无论它在哪个文件中,然后按Enter

窥视
我们觉得,当你只是想快速查看一些内容时,最糟糕的事情就是在所有上下文之间进行切换。这就是为什么我们支持预览编辑器。当你执行Go to References搜索(通过⇧F12(Windows, Linux Shift+F12),或者Peek Definition(通过⌥F12(Windows Alt+F12,Linux Ctrl+Shift+F10),我们嵌入了结果:

您可以在预览编辑器中导航到不同的引用,并在现场进行快速编辑。点击预览编辑器的文件名或在结果列表中双击将打开引用到外部编辑器。
提示: 此外,如果您按 Escape 或在预览编辑区域双击,预览Windows将关闭。您可以使用 来禁用此行为。
编辑器.稳定窥视设置.
括号匹配
匹配的括号会在光标靠近其中一个时被突出显示。

提示: 您可以使用 ⇧⌘\ (Windows, Linux Ctrl+Shift+\) 跳转到匹配的括号
括号配对着色
匹配的括号对也可以通过设置进行颜色化
真输入:.

所有颜色都可以进行主题化,并且可以配置最多六种颜色。
你可以使用
"workbench.colorCustomizations": {
"editorBracketHighlight.foreground1": "#FFD700",
"editorBracketHighlight.foreground2": "#DA70D6",
"editorBracketHighlight.foreground3": "#179fff",
},
参考信息
一些语言如 C# 支持内联引用信息,这些信息可以实时更新。这使您能够快速分析您的编辑对项目的影响或您的特定方法或属性在整个项目中的受欢迎程度:

提示: 直接通过点击这些注释来调用窥探引用操作。
提示: 通过 可以在 CodeLens 中打开或关闭参考信息。
编辑器.代码洞察设置.
重命名符号
一些语言支持在文件之间重命名符号。按F2,然后输入新的期望名称并按Enter。符号的所有用法将在所有文件中被重命名。

错误和警告
警告或错误可以通过配置的任务、丰富的语言服务或代码分析工具(linters)生成,这些工具会在后台不断分析你的代码。由于我们喜欢无错误的代码,警告和错误会在多个地方显示:
- 在状态栏中,有一个所有错误和警告的计数摘要。
- 您可以点击摘要或按⇧⌘M(Windows, LinuxCtrl+Shift+M)以显示PROBLEMS面板,其中列出了所有当前错误。
- 如果你打开一个有错误或警告的文件,它们将与文本一起在线内显示,并显示在概览标尺上。

提示: 要在当前文件中循环遍历错误或警告,您可以按 ⌥F8 (Windows, Linux Alt+F8) 或 ⇧⌥F8 (Windows, Linux Shift+Alt+F8),这将显示一个内联区域,详细说明问题和可能的代码操作(如果可用):

代码操作
警告和错误可以提供代码行动(也称为快速修复)来帮助解决问题。这些将在编辑器的左边缘以一个灯泡的形式显示。点击灯泡将显示代码行动选项或执行该操作。
镶嵌提示
一些语言提供内联提示:即关于源代码的附加信息,这些信息会内联显示。这通常用于显示推断出的类型。下面的示例展示了显示JavaScript变量和函数返回类型的内联提示。

镶嵌提示可以启用/禁用
出站链接保护
为了保护您的安全,VS Code 在从编辑器打开一个外部网站链接之前会显示一个提示。

您可以在浏览器中访问外部网站,或选择复制链接或取消请求。如果您选择配置受信域,下拉菜单允许您信任确切的网址、信任网址域和子域,或信任所有域以禁用出站链接保护。

选项管理受信任的域,也可以随时从命令面板中使用,会打开受信任的域JSON文件,在此您可以添加、删除或修改受信任的域。
// 你可以使用“管理受信任的域”命令来打开这个文件。
// 保存这个文件以应用受信任的域规则。
[
"*.twitter.com"
]
该受信任域的JSON文件还包含支持的域格式示例和受默认信任的域列表,例如https://*.visualstudio.com和https://*.microsoft.com输入:.
下一步
既然你知道了编辑器的工作方式,是时候尝试一些其他的事情了……
- 简介视频 - 代码编辑 - 观看一个关于代码编辑功能的介绍视频。
- 用户界面 - 如果您错过了VS Code的基本指导。
- 键绑定 - 了解如何修改键盘快捷键以符合您的喜好。
- 调试 - 这是VS Code真正闪耀的地方。
常见问题
如何能自动选择 Quick Open 中的第二个条目而不是第一个?
使用命令工作台.操作.快速打开上一个编辑器, 你可以在快速打开中自动选择第二个条目。这在你想从列表中选择上一个条目而不需要调用另一个键盘快捷键时很有用:
[
{
"key": "ctrl+p",
"command": "workbench.action.quickOpenPreviousEditor"
},
{
"key": "ctrl+p",
"command": "-workbench.action.quickOpen"
}
]
如何将Ctrl+Tab配置为在所有组的所有编辑器之间导航
默认情况下,Ctrl+Tab在相同编辑器组的编辑器之间导航。如果您想在所有打开的编辑器组中导航,您可以为创建键盘快捷键工作台.操作.快速打开最近使用的编辑器和工作台.操作.快速打开最近未使用编辑器命令:
[
{
"key": "ctrl+tab",
"command": "workbench.action.quickOpenPreviousRecentlyUsedEditor",
"when": "!in Editors Picker"
},
{
"key": "ctrl+shift+tab",
"command": "workbench.action.quickOpenLeastRecentlyUsedEditor",
"when": "!in Editors Picker"
}
]
如何在最近使用的编辑器之间导航而无需选择器
以下是一些可以在编辑器中导航但不打开选择器的命令列表:
| 键 | 命令 | 命令 ID |
|---|---|---|
| 打开最近使用的编辑器 | 工作台.操作.打开最近使用的下一个编辑器 |
|
| 打开以前使用的编辑器 | 工作台.操作.打开最近使用的上一个编辑器 |
|
| 打开组中最近使用的编辑器 | 工作台.操作.打开最近使用的编辑器中的下一个 |
|
| 打开组中以前用过的编辑器 | 工作台.操作.打开最近使用的编辑器组 |