【Linux】VSCode用法

描述

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

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


目录

[1 安装环境及运行C/C++](#1 安装环境及运行C/C++)

[1.1 安装及配置步骤](#1.1 安装及配置步骤)

[1.2 运行的关键步骤](#1.2 运行的关键步骤)

[2 导入第三方C/C++库](#2 导入第三方C/C++库)

[2.1 创建并修改C/C++配置文件](#2.1 创建并修改C/C++配置文件)

[2.2 修改tasks.json](#2.2 修改tasks.json)

[3 常用快捷操作](#3 常用快捷操作)

[3.1 打开内置终端](#3.1 打开内置终端)

[3.2 打开命令面板](#3.2 打开命令面板)

[3.3 多光标编辑](#3.3 多光标编辑)

[3.4 快捷切换编辑的文件](#3.4 快捷切换编辑的文件)

[4 排除项目中的文件](#4 排除项目中的文件)

[5 VScode技巧](#5 VScode技巧)

[5.1 利用bear make建立索引](#5.1 利用bear make建立索引)

[5.2 鼠标滚轮很卡](#5.2 鼠标滚轮很卡)

[5.3 clangd报一些不是问题的问题](#5.3 clangd报一些不是问题的问题)

[5.4 格式化文档时的缩进问题](#5.4 格式化文档时的缩进问题)

[5.5 调整文档格式化的其他格式](#5.5 调整文档格式化的其他格式)

[5.6 .gitignore忽略失败的解决方法](#5.6 .gitignore忽略失败的解决方法)


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-option

  Remove: [-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

相关推荐
忧郁的橙子.18 小时前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧18 小时前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮19 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
XiaoFan01219 小时前
免密批量抓取日志并集中输出
java·linux·服务器
souyuanzhanvip19 小时前
ServerBox v1.0.1316 跨平台 Linux 服务器管理工具
linux·运维·服务器
HalvmånEver21 小时前
Linux:线程互斥
java·linux·运维
番茄灭世神21 小时前
Linux应用编程介绍
linux·嵌入式
wdfk_prog21 小时前
[Linux]学习笔记系列 -- [drivers][mmc][mmc_sdio]
linux·笔记·学习
Forsete21 小时前
LINUX驱动开发#9——定时器
linux·驱动开发·单片机
kun2003102921 小时前
如何用Obsidian+VSCode生成文案排版并发布到公众号
ide·vscode·编辑器