代码导航
Visual Studio Code 拥有高生产力的代码编辑器,结合编程语言服务,能兼具集成开发环境(IDE)的强大功能和文本编辑器的速度。在本主题中,我们将首先介绍VS Code的语言智能功能(建议、参数提示、智能代码导航),然后展示核心文本编辑器的强大功能。
快速文件导航
提示:你可以在输入⌘P(Windows,Linux Ctrl+P)(快速打开)时,按名称打开任何文件。
Explorer 非常适合在探索项目时切换文件。然而,当你在做任务时,你会发现自己会快速在同一组文件之间跳来跳去。VS Code 提供了两个强大的命令,用于在文件间导航,并配有易于使用的快捷键。
按住Ctrl并按Tab键可查看编辑器组中所有已打开的文件列表。要打开这些文件,再次用Tab键选择你想访问的文件,然后松开Ctrl打开它。

或者,你也可以使用 ⌃-(Windows Alt+Left,Linux Ctrl+Alt+-)和 ⌃⇧-(Windows Alt+Right,Linux Ctrl+Shift+-)来在文件间导航和编辑位置。如果你在同一个文件的不同行间跳跃,这些快捷键可以让你轻松地在这些位置之间切换。
面包屑
编辑器内容上方有一个导航栏,称为“面包屑”。它显示当前位置,并允许你快速在文件夹、文件和符号之间切换。

面包屑总是显示文件路径,并通过语言扩展显示符号路径直到光标位置。显示的符号与轮廓视图和“前往符号”中相同。
在路径中选择面包屑会显示该关卡的下拉菜单,方便你快速导航到其他文件夹和文件。

如果当前文件类型支持符号语言,你会看到当前的符号路径以及同一层级及以下的其他符号下拉菜单。

你可以用“视图>显示面包屑”开关或
面包屑定制
面包屑的外观可以自定义。如果你有非常长的路径,或者只对文件路径或符号路径感兴趣,可以使用
关于,不对劲, 和最后它们定义了你是否看到或看到路径的哪一部分。默认情况下,面包屑会在面包屑左侧显示文件和符号图标,但你可以通过设置来移除这些图标面包屑中的符号顺序
你可以用
允许的值有:
职位- 文件中的位置(默认)名称- 字母顺序类型- 符号类型顺序
面包屑路径复制
你可以在编辑器标签下右键点击“复制面包屑路径”来复制完整的面包屑路径。这会将完整路径,包括文件和符号名复制到剪贴板。
你可以用
..
面包屑键盘导航
要作面包屑,请使用“聚焦面包屑”命令或按⇧⌘。(Windows,Linux Ctrl+Shift+)。它会选择最后一个元素,并打开一个下拉菜单,让你导航到兄弟文件或符号。使用←(Windows,Linux 左侧)和→(Windows,Linux 右侧)快捷键,切换到当前元素的前后。下拉菜单出现后,开始输入——所有匹配元素都会被高亮显示,并选择最佳匹配以便快速导航。
你也可以不用下拉菜单就和面包屑互动。按⇧⌘;(Windows,Linux Ctrl+Shift+;)聚焦最后一个元素,使用 ←(Windows,Linux 左)和 →(Windows,Linux 右)导航,使用空格键在编辑器中显示该元素。
前往定义
如果有语言支持,你可以按F12进入符号定义。
如果你按Ctrl并将鼠标悬停在某个符号上,会显示声明的预览:

提示:你可以用Ctrl+Click跳转到定义,或者用Ctrl+Alt+Click打开旁边的定义。
前往类型定义
有些语言还支持通过编辑器的上下文菜单或命令调色板中执行“Go to Type Definition”命令,跳转到符号的类型定义。这将带你了解符号类型的定义。指挥部editor.action.goToTypeDefinition默认不绑定键盘快捷键,但你可以添加自定义快捷键。
前往实现
语言还可以支持通过按⌘F12(Windows,Linux Ctrl+F12)来跳转到符号的实现。对于接口,这里显示该接口的所有实现者;对于抽象方法,这里显示该方法的所有具体实现。
前往象征
你可以用⇧⌘O(Windows,Linux的Ctrl+Shift+O)在文件中导航符号。输入:符号将按类别分组。按上或下,导航到你想去的地方。

按名称开符号
一些语言支持通过⌘T跨文件跳转到符号(Windows,Linux Ctrl+T)。输入你想导航的类型首字母,无论包含哪个文件,然后按回车。

偷看
我们认为,当你只想快速检查某件事时,没有什么比大幅切换更糟糕的了。这就是我们支持偷看编辑的原因。当你执行“前往参考文献”搜索(通过⇧F12(Windows,Linux Shift+F12))或窥视定义(通过⌥F12(Windows Alt+F12,Linux Ctrl+Shift+F10))时,我们会将结果嵌入内联:

你可以在窥视编辑器中切换不同参考,并在那里快速编辑。点击查看到的编辑器文件名或在结果列表中双击,可以在外部编辑器中打开该引用。
提示:此外,如果你按 Esc 键或在窥视编辑器区域双击,窥视窗口会关闭。你可以用
编辑.stablePeek环境。
对阵匹配
只要光标靠近其中一个括号,匹配的括号就会被高亮显示。

提示:你可以用⇧⌘\跳转到匹配括号(Windows,Linux Ctrl+Shift+\)
括号对着色
匹配的括号对也可以通过设置来着色
确实如此.

所有颜色都可以自定义主题,最多可配置六种颜色。
你可以使用
"workbench.colorCustomizations": {
"editorBracketHighlight.foreground1": "#FFD700",
"editorBracketHighlight.foreground2": "#DA70D6",
"editorBracketHighlight.foreground3": "#179fff",
},
参考资料
一些语言如C#支持在线引用信息,这些信息会实时更新。这让你能够快速分析你编辑的影响,或者你具体方法或属性在项目中的受欢迎程度:

提示:点击这些注释,直接调用“查看参考”动作。
提示:CodeLens中显示的参考信息可以通过以下方式开启或关闭
editor.codeLens环境。
更名符号
一些语言支持跨文件重命名符号。按F2,然后输入新的目标名称,再按回车。所有符号的使用都会在文件中重新命名。

错误与警告
警告或错误可以通过配置好的任务、丰富的语言服务,或在后台不断分析你的代码的 linters 生成。由于我们喜欢无bug代码,警告和错误会在多个地方出现:
- 在状态栏中,有所有错误和警告计数的总结。
- 你可以点击摘要或按⇧⌘M(Windows,Linux Ctrl+Shift+M)显示问题面板,列出所有当前错误。
- 如果你打开一个有错误或警告的文件,它们会与文本一致并显示在概览尺中。

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

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

嵌入提示可以通过以下方式启用或禁用
外线链路保护
为了保护你,VS Code 在打开编辑器发出的网站链接前会显示一个提示。

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

“管理受信任域名”选项也可随时从命令调色板中调用,弹出受信任域名 JSON 文件,您可以添加、删除或修改受信任域名。
// You can use the "Manage Trusted Domains" command to open this file.
// Save this file to apply the trusted domains rules.
[
"*.twitter.com"
]
可信域名 JSON 文件还包含支持的域名格式示例和默认受信任域名列表的注释,例如https://*.visualstudio.com以及https://*.microsoft.com.
下一步
既然你已经了解了编辑器的工作原理,是时候尝试其他一些方法了......
- 入门视频 - 代码编辑 - 观看一段关于代码编辑功能的入门视频。
- 用户界面——如果你错过了VS Code的基本介绍。
- 按键绑定——学习如何根据自己的喜好修改快捷键。
- 调试——这正是VS Code真正闪耀的地方。
常见问题
我怎样才能在快速打开中自动选择第二个条目,而不是第一个?
与指挥部workbench.action.quickOpenPreviousEditor你可以在快速打开中自动选择第二个条目。如果你想从列表中选择上一个条目,而不必调用其他快捷键,这会很有用:
[
{
"key": "ctrl+p",
"command": "workbench.action.quickOpenPreviousEditor"
},
{
"key": "ctrl+p",
"command": "-workbench.action.quickOpen"
}
]
我该如何配置 Ctrl+Tab 来跨越所有组的编辑器
默认情况下,Ctrl+Tab 键可在同一编辑组的编辑者之间切换。如果你想在所有组中打开的所有编辑器之间导航,你可以为workbench.action.quickOpen之前最近用过编辑器以及workbench.action.quickOpen最近用过编辑器命令:
[
{
"key": "ctrl+tab",
"command": "workbench.action.quickOpenPreviousRecentlyUsedEditor",
"when": "!inEditorsPicker"
},
{
"key": "ctrl+shift+tab",
"command": "workbench.action.quickOpenLeastRecentlyUsedEditor",
"when": "!inEditorsPicker"
}
]
我如何在没有选择器的编辑器之间切换
以下是一些你可以在编辑器中无需打开拣选器即可导航的命令列表:
| 说明 | 指挥 | 指挥ID |
|---|---|---|
| 打开 下一页 最近使用编辑器 | workbench.action.openNextRecentlyUsedEditor |
|
| 打开 以前使用的编辑器 | workbench.action.open之前最近使用编辑器 |
|
| 组内打开 最近使用的编辑器 | workbench.action.openNext最近使用编辑组 |
|
| 在组中打开之前使用的编辑器 | workbench.action.open之前最近使用编辑组 |