Visual Studio Code具有高效的代码编辑器,当与编程语言服务结合使用时,可以为您提供IDE的强大功能和文本编辑器的速度。在本主题中,我们将首先描述VS Code的语言智能功能(建议,参数提示,智能代码导航),然后展示核心文本编辑器的强大功能。

快速文件导航

在浏览项目时,Explorer非常适合在文件之间导航。但是,当您处理任务时,您会发现自己在同一组文件之间快速跳转。VS Code提供了两个功能强大的命令,可以通过易于使用的键绑定在文件中导航和跨文件导航。

按住Ctrl键并按Tab键查看编辑器组中打开的所有文件的列表。要打开其中一个文件,请再次使用Tab选择要导航到的文件,然后释放Ctrl以将其打开。

或者,您可以使用^-和^⇧-在文件和编辑位置之间导航。如果您在同一文件的不同行之间跳转,这些快捷方式允许您轻松地在这些位置之间导航。

提示:键入⌘P(快速打开)时,可以按名称打开任何文件。

转到定义

如果某种语言支持它,您可以按F12转到符号的定义。

如果按Ctrl键并将鼠标悬停在符号上,将显示声明的预览:

提示:您可以使用Ctrl +单击跳转到定义,或使用Ctrl + Alt +单击打开侧面的定义。

转到类型定义

某些语言还支持通过从编辑器上下文菜单或命令选项板运行“ 转到类型定义”命令来跳转到符号的类型定义。这将带您到符号类型的定义。默认情况下,该命令不绑定到键盘快捷键,但您可以添加自己的自定义键绑定editor.action.goToTypeDefinition

转到实施

语言还可以通过按⌘F12支持跳转到符号的实现。对于接口,它显示了该接口的所有实现者,对于抽象方法,这显示了该方法的所有具体实现。

转到符号

您可以使用⇧⌘O在文件中导航符号。通过键入:符号将按类别分组。只需按向上或向下键并导航到您想要的位置即可。

按名称打开符号

某些语言支持使用⌘T跨文件跳转到符号。只需键入要导航到的类型的第一个字母,无论哪个文件包含它,然后按Enter键。

窥视

我们认为没有什么比一个大的上下文切换更糟糕了,当你想要的只是快速检查一些东西。这就是为什么我们支持偷看的编辑。当您执行查找所有引用搜索(通过⇧F12)或Peek定义(通过⌥F12)时,我们将结果嵌入到内联:

您可以在窥视编辑器中的不同引用之间导航,并在那里进行快速编辑。单击隐藏的编辑器文件名或双击结果列表将在外部编辑器中打开引用。

提示:此外,如果您按下Escape或在peek编辑器区域中双击,则会关闭查看窗口。您可以使用该editor.stablePeek 设置禁用此行为。

支架匹配

只要光标靠近其中一个,匹配括号就会突出显示。

提示:您可以使用⇧⌘跳转到匹配的括号

参考信息

某些语言(如C#)支持内联参考信息,即实时更新。这使您可以在整个项目中快速分析编辑的影响或特定方法或属性的受欢迎程度:

提示:通过单击这些注释直接调用“ 查找所有引用”操作。

提示:可以通过editor.codeLens设置打开或关闭CodeLens中显示的参考信息。

重命名符号

某些语言支持跨文件重命名符号。按F2键,然后键入新的所需名称,然后按Enter键。符号的所有用法都将在文件中重命名。

错误和警告

警告或错误可以通过已配置的任务,丰富的语言服务或者在后台不断分析代码的连接器生成。由于我们喜欢无错误的代码,警告和错误会出现在多个地方:

  • 在状态栏中,有一个所有错误和警告计数的摘要。
  • 您可以单击摘要或按⇧⌘M以显示“ 问题”面板,其中包含所有当前错误的列表。
  • 如果打开包含错误或警告的文件,它们将与文本和概述标尺一起呈现。

提示:要循环显示当前文件中的错误或警告,可以按F8或⇧F8,这将显示详细说明问题的内联区域和可能的代码操作(如果可用):

代码行动

警告和错误可以提供代码操作(也称为快速修复)以帮助解决问题。这些将作为灯泡显示在左边距的编辑器中。单击灯泡将显示“代码操作”选项或执行操作。

下一步

既然你知道编辑器是如何工作的,那么现在就去尝试其他一些事情......

VsCode下代码导航的更多相关文章

  1. Nodejs在VSCode下代码智能提示

    在学习Nodejs的过程中发现vscode下默认没有提示,在网上也测试了传统的一些方法,都不好用,最后找到这个npm install --save-dev @types/node

  2. 20款jquery下拉导航菜单特效代码分享

    20款jquery下拉导航菜单特效代码分享 jquery仿京东商城左侧分类导航下拉菜单代码 jQuery企业网站下拉导航菜单代码 jQuery css3黑色的多级导航菜单下拉列表代码 jquery响应 ...

  3. 通过html和css做出下拉导航栏的效果

    通过观察了百度的首页,对于更多产品一栏,觉得可以不涉及JS便可写出下拉导航栏的效果 1.先设计出大体的框架 <div class="nav"> <ul> & ...

  4. CSS制作一个简单网页的下拉导航栏

    网页下拉导航栏的制作 网页下拉导航栏的制作很简单,只需要运用好CSS中伪选择器. 首先说明几个简单的伪选择器(比较常用的): link:连接平常的状态 visited:连接被访问过之后 hover:鼠 ...

  5. MDNavBarView下拉导航菜单(仿美团导航下拉菜单)

    说到下拉导航菜单这个东西用得还真不少,细心算一下做开发以来这样的菜单已经写了第三次了,但基本都是不能复用.感觉特累人.不经意看到同事写一个类似的下拉菜单,但他引用了开源库仿大众菜单的库,大致看了一下, ...

  6. 详解Android ActionBar之二:ActionBar添加Tabs标签和下拉导航

    本节主要讲解ActionBar如何添加Tabs标签和下拉导航. 一.添加标签 Tabs 在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重 ...

  7. Android ActionBar详解(二):ActionBar实现Tabs标签以及下拉导航

    一.添加标签 Tabs   在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected.onTabUnselected ...

  8. Vetur:VSCode下强大的Vue开发工具

    Vue自从发布以来就一直受到前端开发人员的热爱,而除了一些本身优秀的特征之外,还有就是丰富的插件和工具的支持和更新.虽然现在的编辑器需要安装相应的plugins才能进行Vue组件化开发,但是越来越多优 ...

  9. yolov3源码darknet在vscode下调试

    1. 安装配置: https://pjreddie.com/darknet/yolo/ darknet文件夹下make命令搞定: 2. 配置vscode 打开安装好的vscode并安装扩展C/C++( ...

随机推荐

  1. JavaScript之关闭轮询定时器(setTimeout/clearTimeout|setInterval/clearInterval)小结

    已知: 1.1 开启Timeout程序: scope.setTimeout("functionName()" | functionHandle, timeValue) 返回值:ti ...

  2. Educational Codeforces Round 47 (Rated for Div. 2) 题解

    题目链接:http://codeforces.com/contest/1009 A. Game Shopping 题目: 题意:有n件物品,你又m个钱包,每件物品的价格为ai,每个钱包里的前为bi.你 ...

  3. stm32中字节对齐问题(__align(n),__packed用法)

    ARM下的对齐处理   from DUI0067D_ADS1_2_CompLib 3.13 type  qulifiers 有部分摘自ARM编译器文档对齐部分  对齐的使用:  1.__align(n ...

  4. char *与const char **函数参数传参问题

    传参方法 ## 函数 extern void f2 ( const char ** ccc ); const char ch = 'X'; char * ch_ptr; const char ** c ...

  5. 【转】PyDev Eclipse使用技巧说明

    PyDev Package Explorer 创建项目 在开展工作之前,需要创建一个新的项目.在 Eclipse 菜单栏中,选择 File > New > Project > Pyd ...

  6. 查看Windows版本号

    1.Win+R,在运行中输入:msinfo32 2.在cmd中输入:ver 3.注册表(regedit)中:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows ...

  7. 通过全备+主从同步恢复被drop的库或表

    MySQL 中drop 等高危误操作后恢复方法 实验目的: 本次实验以恢复drop操作为例,使用不同方法进行误操作的数据恢复. 方法: 利用master同步(本文)] 伪master+Binlog+同 ...

  8. centos6.5/centos7安装部署企业内部知识管理社区系统wecenter

    企业内部知识系统wecenter社区系统安装及部署 centos 6.5环境安装 因为是公司内部使用在线人数不会太多,使用yum安装lamp环境即可 1.安装lamp基本环境 yum -y insta ...

  9. 基于url拦截

  10. 从SDP中至少要看到那些东西?

    最近对通过抓包获得了很多的SDP封包,对这些SDP媒体协商过程很是好奇,为什么不同的sip终端所提供的SDP包不尽相同,为什么同一台FS对不同的sip终端发送不同的SDP? 对我菜鸟级别的我们,我分享 ...