【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

相关推荐
yovo12 小时前
Linux权限管理
linux·运维·github
永远的元子5 小时前
CH592/CH582 触摸按键应用开发实例讲解
c语言·开发语言
Johny_Zhao8 小时前
Ubuntu堡垒机搭建与设备管理指南
linux·网络·人工智能·信息安全·云计算·yum源·系统运维·teleport
肖永威8 小时前
VSCode开发调试Python入门实践(Windows10)
ide·vscode·python
程序员-King.8 小时前
【网络服务器】——回声服务器(echo)
linux·运维·服务器
keep intensify9 小时前
【数据结构】- 栈
c语言·数据结构·算法·
华纳云IDC服务商9 小时前
华纳云:centos如何实现JSP页面的动态加载
java·linux·centos
云中飞鸿10 小时前
加载ko驱动模块:显示Arm版本问题解决!
linux·arm开发
二进制coder10 小时前
ARM32静态交叉编译并使用pidstat教程
linux
郑梓妍11 小时前
(持续更新)Ubuntu搭建LNMP(Linux + Nginx + MySQL + PHP)环境
linux·ubuntu·php