【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