热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VSCode使用技巧(一)

VSCodeNote01命令面板CmdShiftPF1:打开命令面板,是VSCode的主要交互界面界面概览文件资源管理器:CtrlShif

VS Code Note 01

命令面板

Cmd+Shift+P / F1:打开命令面板,是VS Code的主要交互界面

界面概览

文件资源管理器:Ctrl+Shift+E
跨文件搜索:Ctrl+Shift+F
源代码管理:Ctrl+Shift+G
启动和调试:Ctrl+Shift+D
管理扩展:Ctrl+Shift+X
查看错误和警告:Ctrl+Shift+M

vs-view-preview

命令行的使用

如果你是在 macOS 上使用,安装后打开命令面板,搜索shell 命令:在 PATH 中安装 code 命令并执行,然后重启终端模拟就可以了。

vs-shell-on-terminal

OPTIONS(常用命令)

-n --new-window Force to open a new window..
-r --reuse-window Force to open a file or folder in an already opened window.
-g --goto Open a file at the path on the specified line and character.
-d --diff Compare two files with each other.

通过命令行打开文件,并滚动至特定的

比如输入code -r -g package.json:128命令,你就可以打开 package.json 这个文件,然后自动跳转到 128 行。适用于某文件错误的行数的快速定位

比较两个文件的内容

只需使用 -d参数,并传入两个文件路径,比如输入 code -r -d a.txt b.txt命令

打开管道内容

将命令行 ls 的执行结果在 VS Code 的编辑器中打开 ls | code -
注:管道的说明

如何在终端和文件之间快速切换

快捷键:Ctrl + `

VS Code Note 02

光标的快捷键移动操作

  1. 首先是针对单词的光标移动: Option + 左右方向键 同时按住 Option 和方向键,那么光标移动的颗粒度就变成了单词,你就可以在文档中以单词为单位不停地移动光标了。
  2. 第二种方式是把光标移动到行首或者行末:Cmd + 左右方向键
  3. 接下来一种是对于代码块的光标移动:Cmd + Shift + \,就可以在这对花括号之间跳转。
  4. 最后是移动到文档的第一行或者最后一行:Cmd + 上下方向键

文本选择

基于以上快捷键,只需要多按一个 Shift 键,就可以在移动光标的同时选中其中的文本。

删除操作

  1. 删除光标右侧所有内容:Cmd + fn + delete
  2. 删除光标左侧所有内容:Cmd + delete
  3. 删除单词内右侧的字符:Option + fn + delete
  4. 删除单词内左侧的字符:Option + delete

自定义快捷键

首先你可以打开命令面板(Cmd + Shift + p),搜索“打开键盘快捷方式”然后执行,这时你将看到相对应的界面。

vs-keyboard-shortcuts

比如,你可以搜索“选择括号内所有内容”,双击,按下Cmd + Shift + ],然后按下回车,这个快捷键就绑定上了。
比如,你通过搜索 “cmd+backspace”这组快捷键,发现它对应的命令是“删除左侧所有内容”,但你不希望使用这个命令,那你就可以通过右键选择删除该快捷键的绑定。

VS Code Note 03

代码行编辑

  1. 删除当前行代码: Cmd + Shift + K
  2. 剪切当前行代码: Cmd + x
  3. 在当前代码上面开始一行时:Cmd + Shift + Enter
  4. 在当前代码下面开始一行时:Cmd + Enter
  5. 移动当前选中行代码:Option + 上下方向键
  6. 赋值当前选中行代码:Option + Shift + 上下方向键

编程语言相关的命令

  1. 添加注释:Cmd + /
  2. 代码格式化:Option + Shift + F,VS Code 也会根据你当前的语言,选择相关的插件。当然,前提条件是你已经安装了相关插件。
  3. 选中的代码格式化:Cmd + k or Cmd + F,这样只有这段被选中的代码才会被格式化。

其他小技巧

  1. 调换字符的位置:Ctrl + t
  2. 是调整字符的大小写:你可以选中一串字符,然后在命令面板里运行“转换为大写(transform to uppercase)”或 “转换为小写”, 来变换字符的大小写。
  3. 是合并代码行:Ctrl + j,可以把较短的代码合并至一行,而不需要不断地调整光标、删除换行符。
  4. 是撤销光标的移动和选择:Cmd + U

VS Code Note 04

创建多个光标

两个特别命令

  1. Cmd + D 适用情况比较特别:处理多次出现的“相同”单词。如果要处理的文本并不是相同的,那么这个方法就不适用了。
  2. Option + Shift + i 首先选择多行代码,然后按下 “Option + Shift + i” ,这样操作的结果是:每一行的最后都会创建一个新的光标。

快捷键跳转

多文件跳转

  1. Ctrl + Tab 在正在操作的文件列表中切换文件
  2. Cmd + P 打开最近的文件列表,并支持搜索功能
    「小技巧」 Cmd + Enter 当找到文件后按下这个快捷键可在新窗口中打开该文件

行跳转

Ctrl + G 跳转到指定的代码行
「高级组合技巧」:按下Cmd + P 直接输入文件名:行号 eg:main.css:3

符号跳转

Cmd + R 能够看到当前文件里的所有符号(包括类,方法等)。

定义 (Definition) 和实现 (implementation) 跳转

Cmd + F12 选中引用跳转到函数的实现位置

引用 (Reference) 跳转

Shift + F12 选中函数或类按下这个快捷键就可以出现一个引用的列表,选择后内嵌的编辑器里便展示相应的引用代码

VS Code Note 04

玩转鼠标

选择文本

  1. 在VS Code中,你单击鼠标左键就可以把光标移动到相应的位置。
  2. 而双击鼠标左键,则会将当前光标下的单词选中。
  3. 连续三次按下鼠标左键,则会选中当前这一行代码。
  4. 最后是连续四次按下鼠标左键,则会选中整个文档。

文本编辑

在 VS Code中,我们除了能够使用鼠标来选择文本以外,还能够使用鼠标对文本进行一定程度的修改,我们把它称为拖放功能(drag and drop)。
比如在示例代码中,我们选中 bar 这个函数,然后将鼠标移到这段选中的代码之上,按下鼠标左键不松开。这时你可以看到,鼠标指针已经从一条竖线,变成了一个箭头。这时候我们移动鼠标的话,就可以把这段文本拖拽到我们想要的位置。

悬停提示窗口

在 VS Code 的编辑器里使用鼠标的过程中,当你的鼠标移动到某些文本上之后,稍待片刻就能看到一个悬停提示窗口。这个窗口里会显示跟鼠标下文本相关的信息。

  • 方法(Method)

比如,在示例代码中,当我把鼠标移动到第五行 foo 上后,悬停提示窗口里展示了 foo的类型信息,它告诉我们 foo是一个函数,不需要任何的参数,返回值是 void。

如果我把鼠标移动到 foo 上面时,按下 Cmd 键,则能够在悬停提示窗口里直接看到 foo的实现。

  • 变量(Field)

在 Javascript 或者 Java 这样的编程语言中,当我们把鼠标移动到某个变量上时,我们能够看到这个变量的定义信息。而在 CSS 中,当我们把鼠标移动到一个 CSS 规则上时,我们能看到的则是一段能够让这个 CSS 规则生效的 HTML 的样例代码。

代码跳转和链接

我们还是把鼠标移动到示例代码的第五行 foo 上,然后按下 Cmd 键,这时候 foo下面出现了一个下划线。然后当我们按下鼠标左键,就跳转到了 foo函数的定义处。


当我们在编写 Markdown 这样的非编程语言的文档时,也可以通过 Cmd + 鼠标左键 来打开超级链接。


推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • 本文介绍了包的基础知识,包是一种模块,本质上是一个文件夹,与普通文件夹的区别在于包含一个init文件。包的作用是从文件夹级别组织代码,提高代码的维护性。当代码抽取到模块中后,如果模块较多,结构仍然混乱,可以使用包来组织代码。创建包的方法是右键新建Python包,使用方式与模块一样,使用import来导入包。init文件的使用是将文件夹变成一个模块的方法,通过执行init文件来导入包。一个包中通常包含多个模块。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
author-avatar
天狼飞虎神印
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有