C++那些事之高效率开发

news2024/11/15 21:38:10

1.神器

目前开发C++/C用的比较多的当属Vim、VS code、CLion。

Vim配上插件编写C/C++效率高的不少。

VSCode配上自定义配置及快捷键、vim插件效率跟vim旗鼓相当。

CLion因其独特的CMakeLists.txt管理方式及强大的代码补全等功能,编写本地代码绝对好于前两者。

但是对于编写远程代码、远程开发人员来说,VS code无疑是最牛逼的,当然直接黑窗口的Vim也是非常强大,但是当插件过多,臃肿之下的Vim便不在轻量,而VS code便是这几个编辑器的优选。

2.VS code

2.1 快捷键

使用快捷键,对于开发及工作,可以提升很大效率,例如下面是我经常用到的,推荐给大家。下面将采取一问一答方式。

现在有个函数,有申明有定义,怎么进行跳转呢?

F12便可以解决这个问题。

文本查找及替换

分文全局与当前文件,当前文件直接ctrl+F,替换采用,ctrl+F+H。全局采用ctrl+shift+F,替换的时候是ctrl_+shift+H。

如何自定义快捷键?

只需要点击右下角->Keyboard Shortcuts->选择自己想要绑定的命令即可。

或者在配置文件keybindings.json中配置,例如:

{
  "key": "ctrl+tab ctrl+tab",
  "command": "editor.action.addCommentLine",
  "when": "editorTextFocus && !editorReadonly"
}

这样做便可以起到调其终端,并在不同终端之间进行切换,非常方便!自此就不需要用黑窗口的终端了。

以上就是基本的快捷键,然后我再配上Vim插件,直接插件市场搜这个即可,下载好,就可以使用Vim的一些命令,效率提升杠杠的!

2.2 高级配置

2.2.1 红色波浪线恼人

相信在开发C/C++的时候,有一个非常恼火的现象,就是满屏的红色。。。并且头文件还跳转不进去,但是呢却可以编译,哈哈,神奇。

这里给出一个通用的解决方案,那就是c_cpp_properties.json里面配置自己的头文件includePath里面配置上自己的头文件,例如:

{
    "configurations": [
        {
            "name": "Linux",        
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",  //编译器路径
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

如果你的项目是CMakeLists.txt文件管理,那么有个更快捷的方式,

{
    "configurations": [
        {
            "name": "Linux",
            "defines": [],
            "compilerPath": "/bin/gcc",
            "compileCommands": "${workspaceFolder}/Build/compile_commands.json"
        }
    ],
    "version": 4
}

使用CMake生成的compile_commands.json文件,在这里面配上compileCommands,绝对没得红色波浪线,看着贼舒服,并且代码跳转爽歪歪。

2.2.2 任务及快捷键绑定

现在我有个脚本,我想在vscode里面按个快捷键就能执行,又或者我想编译我的CMake,想按个快捷键一下子就行了,这个怎么完成呢?

首先:在.vscode文件夹里面新建一个tasks.json文件,里面可以这样配置:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "test",
            "type": "shell",
            "command": "./main",
            "args": [
                "-O main",
                "main.cpp"
            ],
            "presentation": {
                "echo" : true,
                "reveal": "always",
                "focus": true,
                "panel": "shared",
                "showReuseMessage": true,
                "clear": true
            },
        }
    ]
}

然后配上快捷键绑定到这个命令:

{
    "key": "ctrl+F6",
    "command": "workbench.action.tasks.runTask",
    "args": "Build",
    "when": "editorTextFocus"
},

当你在main.cpp上按ctrl+F6的时候,此时终端下面显示:

Executing task: g++ '-Wall' '-std=c++11' 'main.cpp' -o main

最后,都不用配置,一个Code Runner插件直接搞定编译当前文件,那就是安装之后,右键会有一个Run Code ~

点击链接加入群聊【C语言/C++编程学习基】:

小鱼快来啊的个人空间-小鱼快来啊个人主页-哔哩哔哩视频哔哩哔哩小鱼快来啊的个人空间,提供小鱼快来啊分享的视频、音频、文章、动态、收藏等内容,关注小鱼快来啊账号,第一时间了解UP注动态。编程学习群:724050348 每天分享一个编程小游戏~C/C++游戏源码素材及各种安装包, 私信不常看!https://space.bilibili.com/1827181878?spm_id_from=333.1007.0.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

获B轮融资 官栈如何打破薛定谔式“中式滋补”

日前,滋补头部品牌官栈宣布完成B轮融资,这是其继去年9月完成Pre-B轮融资后,再度获得资本青睐。 近年来,乘国潮东风,中式滋补在沉寂多年后火热翻红,以官栈为代表的新品牌快速崛起,而老字号也紧跟…

非零基础自学Golang 第15章 Go命令行工具 15.5 代码测试(test) 15.5.2 基准测试 15.5.3 覆盖率测试

非零基础自学Golang 文章目录非零基础自学Golang第15章 Go命令行工具15.5 代码测试(test)15.5.2 基准测试15.5.3 覆盖率测试第15章 Go命令行工具 15.5 代码测试(test) 15.5.2 基准测试 基准测试提供可自定义的计时器和一套基准测试算法,能方便快速地分析一段代码…

P5 PyTorch 常用数学运算

前言: 这里主要介绍一下PyTorch 的常用数学运算 目录: 1: add|sub 加减法 2: mul/div 乘/除运算 3: 矩阵乘法 4 2D矩阵转置 5 其它常用数学运算 6 clamp 梯度剪裁 一 加减法 1.1 加法 可以直接通过符号 或者 torch.add # -*- co…

并发编程学习(五):设计模式~同步模式之保护性暂停

1、保护性暂停 模式的定义 保护性暂停 即Guarded Suspension,用于在一个线程等待另一个线程的执行结果。 要点: 有一个结果需要从一个线程传递到另一个线程,让它们关联同一个对象GuardedObject。如果有结果不断从一个线程到另一个线程&…

Redis架构演变之主从、Sentinel哨兵、Cluster(通信、分片、路由等机制)

一. 主从复制 1. 含义 在分布式系统中,为了解决单点问题,通常会把数据复制多个副本到其它机器,满足故障恢复和负载均衡等要求,Redis也是如此,提供了主从复制功能。(redis第一代架构) 实质&…

程序员35岁就失业了吗?就没有其他路可以选了吗?

前言 回到老家最近感到很迷茫,不知道该做什么,也不知道学习了更多的技术又能干什么。 有句话确实是很符合我现在的处境:时势造英雄!虽然我不是英雄,但是我确实需要一个鞥一展所长的环境。 记得当初决定回到哈尔滨&a…

【大话设计模式】工厂+策略+装饰模式 hw01

背景 小李已经是一个工作一年的初级工程师了,他所在的公司是一家大型购物商场。随着各种网络购物软件兴起,老板也想做一个商场的购物 APP。分给小李的是一个一个订单结算模块,需要支持各种不同的结算策略。 需求 请帮小李写一个订单结算模…

vm2 <3.9.10 存在任意代码执行漏洞

漏洞描述 vm2 是一个基于 Node.js 的沙箱环境,可以使用列入白名单的 Node 内置模块运行不受信任的代码。 vm2 3.9.10之前版本中由于 WeakMap.prototype.set 方法使用原型查找从而存在任意代码执行漏洞,攻击者可利用此漏洞在沙箱内执行任意恶意代码&…

盲盒抽奖流程

盲盒模块的流程大致如下: 进入盲盒抽奖页面,需要初始化直接获取一些盲盒的信息,例如:盲盒活动id,开奖buff等。首先需要获取盲盒活动id,后面的所有请求都是基于盲盒活动id进行的。 初始化获取: 盲盒活动id…

Thymeleaf 下拉列表传值示例

参考资料 Spring Boot で Thymeleaf 使い方メモ 目录一. 前期准备二. 实体类.内部类设置下拉列表值2.1 form实体类2.2 Controller层2.3 Thymeleaf页面三. request.setAttribute()设置下拉列表值3.1 定义下拉列表存放类3.2 Controller层3.3 Thymeleaf页面一. 前期准备 枚举类 …

FT2232作为JTAG烧录器的使用步骤详解

FT2232作为JTAG烧录器的使用步骤详解FT2232作为JTAG烧录器的使用步骤详解配置OpenOCD环境(已经配置好的可以跳过)【步骤 1】安装 FT2232HL 芯片的驱动,安装文件为 CDM21228_Setup.exe。【步骤 2】 安装 FT_Prog_v3.6.88.402 Installer.exe【步骤 3】 使用 FT Prog 软…

模型实战一之YOLOv7实例分割、模型寻来自己数据集

模型实战一之YOLOv7实例分割、模型训练自己数据集 1.环境准备 下载yolov7实例分割模型: git clone https://github.com/WongKinYiu/yolov7.git -b mask yolov7-maskcd yolov7-mask安装环境 #查看已安装环境 conda info --envs #查看安装了哪些包 conda list#创建…

神奇的线性表(链表)

目录 神马是链表 链表的分类 单向链表 链表的常用操作 查找操作 插入操作 删除操作 链表与数组 数组的插入 数组的删除 链表的应用 尾声 神马是链表 记得很久很久以前…我们学习过数组, 数组是在内存中一段连续的存储空间, 可以在常数时间内访…

逻辑分析仪解析SPI数据

工具为梦源逻辑分析仪,本次测试的是ST7789v屏幕驱动 接线方面一共需要三根线(MOSI,SCL,GND) SCL PA5 MOSI PA7 DSView上位机配置 通道按照接线选择,这个一定要对应上 COPL CPOH按照SPI实际配置来&#x…

生成模型(四):扩散模型(Diffusion Models)

本文大纲如下: 生成模型种类 到目前为止,我已经写了三种类型的生成模型,[[生成模型-GAN]]、[[生成模型-VAE]]和[[生成模型-Flow based model]]。 它们在生成高质量样本方面显示出巨大的成功,但每一种都有其自身的一些局限性。下…

基于Python的GUI图形用户界面编程

【无限嚣张(菜菜)】:hello您好,我是菜菜,很高兴您能来访我的博客,我是一名爱好编程学习研究的菜菜,每天分享自己的学习,想法,博客来源与自己的学习项目以及编程中遇到问题…

非零基础自学Golang 第17章 HTTP编程(上) 17.2 HTTP客户端 17.2.4 发起POST请求

非零基础自学Golang 文章目录非零基础自学Golang第17章 HTTP编程(上)17.2 HTTP客户端17.2.4 发起POST请求第17章 HTTP编程(上) 17.2 HTTP客户端 17.2.4 发起POST请求 在上一小节我们使用了http.NewRequest来创建一个请求,http.NewRequest有三个参数,第…

web前端-javascript-String字符串的相关方法

文章目录字符串的相关方法1. 底层字符串保存2. 方法1) length 属性 获取长度2) charAt() 获取指定字符3) chartCodeAt() 获取指定字符编码4) String.formCharCode() 根据编码获取字符5) concat() 连接字符串6) indexOf() 是否含有指定内容7) lastIndexOf() 是否含有指定内容8) …

哈斯机床联网

一、设备信息确认 1、确认型号 哈斯的数控面板共有两种情况。 老版本: 新版本: 注:老版本通讯为串口,新版本通讯为网口。 2、确认通讯接口 1、数控面板的后面 老版本的串口一般都会引出在正后面的左侧位置,上面有…

结构型模式之代理模式(八)

常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合行为型模式11种:模板方法、解释器、策略、观察者、迭代…