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

vscode使用技巧

vscode是微软推出的一款开源免费的代码编辑器,可运行在Windows,Linux,MacOS平台,官方下载地址如下:https:code.visualstudio.com如果系

vs code是微软推出的一款开源免费的代码编辑器,可运行在Windows,Linux,MacOS平台,官方下载地址如下:

https://code.visualstudio.com/

如果系统版本比较旧(如Ubuntu 16),安装新版本vs code可能会出现出现一些问题,可以在下面链接下载旧版本:

https://code.visualstudio.com/updates

1,安装插件

安装插件可以提高效率,可以参考我的安装:c/c++,python,DeviceTree,Makefile Tools,CMake。

2,快捷键

以Windows下为例:



  • Ctrl + 鼠标左键单击:跳转代码;

  • Alt + 左箭头:后退(返回跳转);

  • Alt + 右箭头:前进(进入跳转);

  • Alt + 上箭头:整行上移;

  • Alt + 下箭头:整行下移;

  • Alt + Shift + 上箭头:整行向上复制;

  • Alt + Shift + 下箭头:整行向下复制;

  • Shift + Del:剪切当前行(也可当作删除整行使用);

  • Ctrl + A && Ctrl + K && Ctrl + F:格式化全选代码;

  • Ctrl + K && Ctrl + T:切换主题;

  • Ctrl + P:搜索文件;

  • Ctrl + G:跳转到行;

  • Ctrl + F:文件内搜索/替换;

  • Ctrl + Shift + F:全局搜索关键字(折叠选项里可筛选搜索文件的范围,类型,及是否替换关键字);

  • 如果安装了c/c++这个插件,那么多行注释可以这样写: 先输入双引号内的字符"/***/",然后光标定位到倒数第一个"*"号之前,按下回车即可多行注释,范围内每一个回车自动新增注释一行;

  • 目录树栏有个OUTLINE(中文名叫大纲),可以查看函数目录;

3,内容定制

vs code面对大型代码工程时,在使用默认配置下,全局搜索和代码管理的效率非常低,我们需要调整配置,提高我们搜索和查看本地代码的效率,我们以Linux内核源码为例,在编译内核源码后,会产生大量的"*.o"的文件,这在全局搜索代码时,会拖慢我们找到代码的效率,除此之外,像"*.txt","*.md","*.rst"等文件,搜索时甚至大多数浏览代码时也不需要,我们就把它们屏蔽掉,下面是我针对全志一款芯片调整的Linux内核工程的vs code设置,首先在Linux内核根目录新建一个".vscode",(注意前面的逗点),在这个目录里新建两个json配置文件:c_cpp_properties.json和settings.json,分别写入如下内容:

c_cpp_properties.json

1 {
2 "configurations": [
3 {
4 "name": "Linux",
5 "includePath": [
6 "${workspaceFolder}/**",
7 "${workspaceFolder}/include/**",
8 "${workspaceFolder}/arch/arm/include/**"
9 ],
10 "intelliSenseMode": "linux-gcc-x64",
11 "compilerPath": "",
12 "cStandard": "c17",
13 "cppStandard": "c++17",
14 "configurationProvider": "ms-vscode.makefile-tools"
15 }
16 ],
17 "version": 4
18 }

settings.json

1 {
2 "search.exclude": {
3 "**/node_modules": true,
4 "**/bower_components": true,
5 "**/*.o":true,
6 "**/*.su":true,
7 "**/*.cmd":true,
8 "**/*.ko":true,
9 "**/*.dtb":true,
10 "**/*.log":true,
11 "**/*.txt":true,
12 "**/*.md":true,
13 "**/*.rst":true,
14 "**/*.git":true,
15 "**/*.gitignore":true,
16 "**/*.map":true,
17 "**/*.py":true,
18 "**/*.sh":true,
19 "**/*.so":true,
20 "**/*.a":true,
21 "**/*.in":true,
22 "**/*.scr":true,
23 "Documentation":true,
24 "LICENSES":true,
25
26 /* 屏蔽不用的架构相关的文件 */
27 "arch/alpha":true,
28 "arch/arc":true,
29 "arch/arm64":true,
30 "arch/avr32":true,
31 "arch/[b-z]*":true,
32 "arch/arm/plat*":true,
33 "arch/arm/mach-[a-r]*":true,
34 "arch/arm/mach-[t-z]*":true,
35 "arch/arm/mach-s3c*":true,
36 "arch/arm/mach-s5p*":true,
37 "arch/arm/mach-s[a-t]*":true,
38
39 /* 屏蔽排除不用的配置文件 */
40 "arch/arm/configs/[a-r]*":true,
41 "arch/arm/configs/[t-z]*":true,
42 "arch/arm/configs/s3c*":true,
43 "arch/arm/configs/s5p*":true,
44 "arch/arm/configs/s[a-t]*":true,
45
46 /* 屏蔽掉不用的DTB文件 */
47 "arch/arm/boot/dts/[a-r]*":true,
48 "arch/arm/boot/dts/[t-z]*":true,
49 "arch/arm/boot/dts/s3c*":true,
50 "arch/arm/boot/dts/s5pv*":true,
51 "arch/arm/boot/dts/sam*":true,
52 "arch/arm/boot/dts/sd*":true,
53 "arch/arm/boot/dts/sh*":true,
54 "arch/arm/boot/dts/soc*":true,
55 "arch/arm/boot/dts/spear*":true,
56 "arch/arm/boot/dts/st*":true,
57 "arch/arm/boot/dts/*.tmp":true,
58 },
59 "files.exclude": {
60 "**/.git": true,
61 "**/.svn": true,
62 "**/.hg": true,
63 "**/CVS": true,
64 "**/.DS_Store": true,
65 "**/*.o":true,
66 "**/*.su":true,
67 "**/*.cmd":true,
68 "**/*.ko":true,
69 "**/*.dtb":true,
70 "**/*.log":true,
71 "**/*.txt":true,
72 "**/*.md":true,
73 "**/*.rst":true,
74 "**/*.git":true,
75 "**/*.gitignore":true,
76 "**/*.map":true,
77 "**/*.so":true,
78 "**/*.a":true,
79 "**/*.scr":true,
80 "Documentation":true,
81 "LICENSES":true,
82
83 /* 屏蔽不用的架构相关的文件 */
84 "arch/alpha":true,
85 "arch/arc":true,
86 "arch/arm64":true,
87 "arch/avr32":true,
88 "arch/[b-z]*":true,
89 "arch/arm/plat*":true,
90 "arch/arm/mach-[a-r]*":true,
91 "arch/arm/mach-[t-z]*":true,
92 "arch/arm/mach-s3c*":true,
93 "arch/arm/mach-s5p*":true,
94 "arch/arm/mach-s[a-t]*":true,
95
96 /* 屏蔽排除不用的配置文件 */
97 "arch/arm/configs/[a-r]*":true,
98 "arch/arm/configs/[t-z]*":true,
99 "arch/arm/configs/s3c*":true,
100 "arch/arm/configs/s5p*":true,
101 "arch/arm/configs/s[a-t]*":true,
102
103 /* 屏蔽掉不用的DTB文件 */
104 "arch/arm/boot/dts/[a-r]*":true,
105 "arch/arm/boot/dts/[t-z]*":true,
106 "arch/arm/boot/dts/s3c*":true,
107 "arch/arm/boot/dts/s5pv*":true,
108 "arch/arm/boot/dts/sam*":true,
109 "arch/arm/boot/dts/sd*":true,
110 "arch/arm/boot/dts/sh*":true,
111 "arch/arm/boot/dts/soc*":true,
112 "arch/arm/boot/dts/spear*":true,
113 "arch/arm/boot/dts/st*":true,
114 "arch/arm/boot/dts/*.tmp":true,
115 }
116 }

settings.json

4,Web版VS Code

https://code.visualstudio.com/docs/editor/vscode-web



推荐阅读
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • Norton Partition Magic 中 PHP 函数 error_reporting(E_ALL ^ E_NOTICE) 的详细解析与应用
    在 Windows 环境下,通过具体示例分析了 `Norton Partition Magic` 中 `PHP` 函数 `error_reporting(E_ALL ^ E_NOTICE)` 的详细解析与应用。该函数用于控制错误报告级别,例如在从 PHP 4.3.0 升级到 4.3.1 后,程序出现多处错误的原因及解决方法。本文深入探讨了错误报告配置对程序稳定性的影响,并提供了实用的调试技巧。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • Python学习:环境配置与安装指南
    Python作为一种跨平台的编程语言,适用于Windows、Linux和macOS等多种操作系统。为了确保本地已成功安装Python,用户可以通过终端或命令行界面输入`python`或`python3`命令进行验证。此外,建议使用虚拟环境管理工具如`venv`或`conda`,以便更好地隔离不同项目依赖,提高开发效率。 ... [详细]
  • 本文详细介绍了在Ubuntu操作系统中使用GDB调试工具深入分析和调试标准库函数`printf`的源代码过程。通过具体步骤和实例,展示了如何设置断点、查看变量值及跟踪函数调用栈,帮助开发者更好地理解`printf`函数的工作原理及其内部实现细节。 ... [详细]
  • 对于以压缩包形式发布的软件,其目录中通常包含一个配置脚本 `configure`。该脚本的主要功能是确定编译所需的各项参数,如头文件的位置和链接库的路径,并生成相应的 `Makefile` 以供编译使用。通过运行此脚本,开发者可以确保软件在不同环境下的正确编译与安装。此外,该脚本还能够检测系统依赖项,进一步提高编译过程的可靠性和兼容性。 ... [详细]
  • 如何提升Python处理约1GB数据集时的运行效率?
    如何提升Python处理约1GB数据集时的运行效率?本文探讨了在后端开发中使用Python处理大规模数据集的优化方法。通过分析常见的性能瓶颈,介绍了多种提高数据处理速度的技术,包括使用高效的数据结构、并行计算、内存管理和代码优化策略。此外,文章还提供了在Ubuntu环境下配置和测试这些优化方案的具体步骤,适用于从事推荐系统等领域的开发者。 ... [详细]
  • 浅析PHP中$_SERVER[
    在PHP后端开发中,`$_SERVER["HTTP_REFERER"]` 是一个非常有用的超级全局变量,它可以获取用户访问当前页面之前的URL。本文将详细介绍该变量的使用方法及其在不同场景下的应用,如页面跳转跟踪、安全验证和用户行为分析等。通过实例解析,帮助开发者更好地理解和利用这一功能。 ... [详细]
  • 优化后的标题:PHP分布式高并发秒杀系统设计与实现
    PHPSeckill是一个基于PHP、Lua和Redis构建的高效分布式秒杀系统。该项目利用php_apcu扩展优化性能,实现了高并发环境下的秒杀功能。系统设计充分考虑了分布式架构的可扩展性和稳定性,适用于大规模用户同时访问的场景。项目代码已开源,可在Gitee平台上获取。 ... [详细]
  • Typora快捷键使用指南:提升写作效率的必备技巧 ... [详细]
  • 对于内存仅为512MB、硬盘80GB的老旧设备,部署Ubuntu Server毫无压力。然而,许多平台仅支持CentOS系统,而CentOS默认要求1GB以上内存才能使用图形界面安装。实际上,安装完成后,即使内存低至256MB也能正常运行。此外,通过优化系统配置和减少不必要的服务,可以进一步提升系统性能,确保在资源受限的环境中稳定运行。 ... [详细]
  • TQ210UBOOT移植笔记添加自己的单板【学习笔记】
    在uboot的源码的根目录下的readme中有介绍如何在uboot中添加自己的单板:一、在boards.cfg中添加自己的单板的信息,可以模仿smdkc ... [详细]
author-avatar
X巩工916BGR_426
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有