当前位置: 首页 > news >正文

【Linux】VSCode用法

描述

部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。

 专栏目录:记录自己的嵌入式学习之路-CSDN博客


1    安装环境及运行C/C++

1.1    安装及配置步骤

        请参考这位大佬的文章:

VS Code 配置 C/C++ 编程运行环境(保姆级教程)_vscode配置c++环境-CSDN博客https://blog.csdn.net/qq_42417071/article/details/137438374

1.2    运行的关键步骤

(1)    配置launch.json

        点击右上角的齿轮新建一个launch.json。

        这里需要关注的主要是program和miDebuggerPath两项,其中miDebuggerPath就是要输入gdb的路径。

(2)    配置tasks.json

        上一步点击齿轮后也会新建一个tasks.json。

        这里需要关注的是command,若是编译C程序,就是gcc的完整路径,若是编译C++程序,就是g++的完整路径。

(3)    编辑C/C++配置

        Ctrl + Shift + P 输入命令,C/C++:

        编辑后要是有多个配置,可以在“C/C++:选择配置”那里进行选择:

也可以在右下角进行选择:


2    导入第三方C/C++库

2.1    创建并修改C/C++配置文件

        Ctrl + Shift + P 输入命令,C/C++:

        选择JSON那个选项,即打开c_cpp_properties.json,在includePath中添加所引用的头文件。并同时确认compilerPath是对的。

2.2    修改tasks.json

        在args项目下,添加包含的头文件路径、动态链接库路径以及动态链接库名称。(应该添加在-o前)

(1)    头文件路径

        “-I”, “<头文件路径(不包括头文件名称)>”

(2)    动态库文件路径

        “-L”, “<动态库文件路径(不包括库文件名称)>”

(3)    动态库名称

        “-l”, “<动态库名称(不包括后缀)>”


3    常用快捷操作

3.1    打开内置终端

        ctrl + `

3.2    打开命令面板

        ctrl + shift + p

3.3    多光标编辑

        (1)    alt + 鼠标左键,自行选中光标需要出现的地方(可任意位置);

        (2)    按住Ctrl + Alt,再按键盘上的上或下键(只能同一列);

        (3)    按住shift + alt,再使用鼠标拖动,也可以出现竖直的列光标,同时可以选中多列;

        (4)    选中一些文字,按shift + ctrl + L,可以选中所有与选中内容相同的内容,并都在其最后有光标;

        (5)    选中一些文字,按ctrl + D,可以增加选中下一个与选中内容相同的内容,并在其最后有光标,可重复使用达到一直选择后面的相同内容的效果;

        (6)    选中一段文字,按shift + alt + i,在每行末尾都会出现光标;

3.4    快捷切换编辑的文件

        在已经打开好几个文件的情况下,可以使用以下方法快速切换:

        (1)    Alt + <序号>:切换至打开的第n个文件;

        (2)    Ctrl + Tab:在已打开的文件中切换;


4    排除项目中的文件

如果项目中存在很多项目不需要的文件,例如对于驱动开发中的内核源码,<源码>/arch下除了arm文件夹外的别的文件是不需要的。要排除这些文件,可以在项目根目录上新建.vscode文件夹,并在.vscode下新建settings.json文件。

setting.json文件内容:
{"search.exclude": {"**/node_modules": true,"**/bower_components": true,"**/*.o":true,"**/*.su":true,"**/*.cmd":true,"Documentation":true,/* 屏蔽不用的架构相关的文件 */"arch/alpha":true,"arch/arc":true,"arch/arm64":true,"arch/avr32":true,"arch/[b-z]*":true,"arch/arm/plat*":true,"arch/arm/mach-[a-y]*":true,"arch/arm/mach-zx":true,/* 屏蔽不用的配置文件 */"arch/arm/configs/[a-w]*":true,"arch/arm/configs/[y-z]*":true,/* 屏蔽不用的 DTB文件 */"arch/arm/boot/dts/[a-y]*":true,"arch/arm/boot/dts/.*":true,},"files.exclude": {"**/.git": true,"**/.svn": true,"**/.hg": true,"**/CVS": true,"**/.DS_Store": true,"**/*.o":true,"**/*.su":true,"**/*.cmd":true,"Documentation":true,/* 屏蔽不用的架构相关的文件 */"arch/alpha":true,"arch/arc":true,"arch/arm64":true,"arch/avr32":true,"arch/[b-z]*":true,"arch/arm/plat*":true,"arch/arm/mach-[a-y]*":true,"arch/arm/mach-zx":true,/* 屏蔽不用的配置文件 */"arch/arm/configs/[a-w]*":true,"arch/arm/configs/[y-z]*":true,/* 屏蔽不用的 DTB文件 */"arch/arm/boot/dts/[a-r][g-z]*":true,"arch/arm/boot/dts/[b-r]*":true,"arch/arm/boot/dts/s[0-9]*":true,"arch/arm/boot/dts/s[a-x]*":true,"arch/arm/boot/dts/[t-y]*":true,"arch/arm/boot/dts/zynq-[a-z]*":true,"arch/arm/boot/dts/.*":true,".*":true,}
}

5    VScode技巧

5.1    利用bear make建立索引

方法一:利用Intellisense(不是很好使):

        (1)    安装一个bear;

        (2)    以后使用make命令都改为bear make;

        (3)    搜索命令选择IntelliSence配置

        

        (4)    选择使用bear生成的compile_commands.json

        

        (5)    如果没有该选项可以直接到c_cpp_properties.json中增加compileCommands项指向该json: 

        

方法二:利用clangd

        (1)    同方法一

        (2)    同方法一

        (3)    VScode安装clangd插件

        (4)    安装clangd,可以从vscode弹出的clangd插件要求安装clangd server的通知中下载,其会解压到home目录下直接使用,不安装到系统环境。除此以外,还可以自行使用apt安装,其包名一般叫做clangd-X,这个X可以是12、10、9、8等等,越新越好。或者自己到clangd的github下载一个编译好的release版本解压,然后到vscode的clangd设置中指定clangd文件所在路径就可以用了(该方法只支持x86_x64架构,因为官方没有编译arm架构的)。

        (5)    禁用vscode的C/C++插件,禁用Maketools,禁用Intellisense。

        (6)    每次使用bear make后,将c_cpp_properties.json中的”cc”即编译器改为项目使用的编译器,如:arm-xilinx-linux-gnueabi-gcc,然后最好使用shift+ctrl+p输入clangd:restart language server重启系统的clangd服务。

5.2    鼠标滚轮很卡

        设置界面将mouse Wheel Scroll Sensitivity调大,1就会卡,2刚好。

5.3    clangd报一些不是问题的问题

如下:

        Unknown argument: '-mno-fdpic'

        Unknown argument: '-fno-ipa-sra'

        Unknown argument: '-fno-allow-store-data-races'

        Unknown argument: '-fconserve-stack'

        

解决方法:

        在打开的目录的最上层新建一个.clangd文件,文中写入以下内容:

CompileFlags:Add: -Wno-unknown-warning-optionRemove: [-mno*, -fno*, -fco*]

        其中*为通配符,移除内容可根据实际需要进行修改。修改该文件后需要restart一下clangd server(用VScode里面的命令)。

5.4    格式化文档时的缩进问题

        安装了clangd后,格式化文档命令(ctrl+shift+i)使用的一般就是clangd,而clangd默认的缩进是2个空格,因此需要进行修改。

        在项目根目录新建.clang-format文件,并添加IndentWidth: 4即可。

5.5    调整文档格式化的其他格式

        请参考这位大佬的文章:
VS Code C++ 代码格式化方法(clang-format)_vs code clang-format-CSDN博客https://blog.csdn.net/core571/article/details/82867932

5.6    .gitignore忽略失败的解决方法

        有时候还没创建.gitignore文件就提交过git,后续哪怕添加了文件进去,添加前已经提交过的文件依然会一直被跟踪而不会被忽略,此时需要使用git rm --cached <file>命令来清除这些已经跟踪的文件,清楚完还需要git commit提交一次。

        注意!清除前最好没有任何待提交或待放进缓存区的记录。

        详细可以参考这位大佬的文章:

vscode中 .gitignore 规则不生效 - 简书https://www.jianshu.com/p/773e616d6c18

相关文章:

  • 数字智慧方案5961丨智慧能源与运维云平台解决方案(52页PPT)(文末有下载方式)
  • 贝叶斯算法实战:从原理到鸢尾花数据集分类
  • Vue 3 中通过 this. 调用 setup 暴露的函数
  • 【2025域适应科研日报】
  • 仿腾讯会议——服务器结构讲解
  • 前端面试常问问题[From CV]
  • 【2025最新】为什么用ElasticSearch?和传统数据库MySQL与什么区别?
  • 【阿里云大模型高级工程师ACP习题集】2.8 部署模型
  • 【免费】1992-2021年各省GDP数据/各省地区生产总值数据
  • Lucene多种数据类型使用说明
  • 【Hive入门】Hive性能调优之资源配置:深入解析执行引擎参数调优
  • 数据飞轮驱动AI系统持续进化
  • Spring MVC @PathVariable 注解怎么用?
  • Python-57:Base32编码和解码问题
  • Android JIT编译:adb shell cmd package compile选项
  • HarmonyOS应用开发中实现本地化存储的几种方式
  • 为什么大模型偏爱Markdown
  • 嵌入式C语言的运算符与输入输出
  • AWS CloudFront全球加速利器:解析出海业务的核心优势与最佳实践
  • MySQL | DQL语句-连接查询
  • 天津航空一航班盘旋14圈才降落,客服:因天气影响
  • 中国金茂向滨江集团提供11.21亿元诚意金借款,拟合作开发3月获取的地块
  • 深交所修订创业板指数编制方案,引入ESG负面剔除机制
  • 小核酸药物企业瑞博生物递表港交所,去年亏损2.81亿元
  • 应急管理部派出工作组赴山西太原小区爆炸现场指导救援处置
  • 朝鲜海军新型驱逐舰进行首次武器系统测试