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

news2024/9/29 19:25:21

1.神器

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

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

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

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

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

因此,本节给大家推荐VScode的一些高效率提升开发的方法。

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/96511.html

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

相关文章

什么是数据指标体系?

定义 对当前业务有参考价值的统计数据 作用 监控业务情况 通过拆解指标寻找当前业务问题 评估业务可改进的地方,找出下一步工作的方向 常用数据指标 谁:用户数据 干了什么:行为数据 结果怎样:业务数据 选好数据指标的通用…

大数据学习:学生排序

文章目录一、提出任务二、任务过程(一)准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录(二)实现步骤1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、创建学生实体类5、创建学生映射器类5、创建学生归并器类6…

Python变量类型教程

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小…

Springboot跨域处理的几种方式

作者简介 作者名:编程界小明哥 简介:CSDN博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注&…

基于springboot+mybatis的制造行业供应链管理系统

一、项目简介 基于springbootmybatis的制造行业供应链管理系统 二、实现功能 支持基础数据、用户管理、职务管理、修改密码、客户账号管理、组织管理 物料管理、物料短码、物料短码查询、物料分类维护 项目类别维护、分配采购员、设置最大最小库存、物料检验项管理 部门管…

Elasticsearch入门、API操作

文章目录概念倒排索引es的一些概念安装ES、Kibana总结索引库操作mapping映射属性创建索引库和映射查询索引库修改索引库删除索引库总结文档操作新增文档查询文档删除文档修改文档全量修改增量修改RestAPI引入依赖、初始化RestClient索引库 操作创建索引库删除索引库判断索引库是…

[附源码]Python计算机毕业设计黑河学院校友交流网站Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

ABBYY2023PDF及OCR文字识别软件

ABBYY FineReader PDF2023最新版使专业人士在数字化工作场所能够更大限度地提高效率。 FineReader PDF 的特色是采用了 ABBYY 新推出的基于 AI的OCR 技术,可以更轻松地在同一工作流程中对各种文档进行数字化、检索、编辑、加密、共享和协作。 现在,信息工…

U盘安装CentOS7

官网找到CentOS7的ISO镜像:CentOS-7-x86_64-DVD-2207-02.iso(大小4.42G) 准备一个8G的U盘,格式化,然后通过UltraISO工具将ISO镜像写入到U盘。 接着开机启动U盘,华硕是按esc键。 选择install cenetos7 li…

【图像处理】打靶仿真系统【含GUI Matlab源码 1043期】

⛄一、打靶仿真系统简介 1 课题描述 2 课题建模过程 a)第一,获取武器的各个参数,并且由这些参数计算武器在方向和高低上的响应公算偏差; b)第二,射击过程中方向和高低上的偏差呈正态分布。在matlab中取normrnd函数实现改功能&am…

《C语言深度解剖》二 static

最名不副实的关键字 static 认识多文件如下 extern 需要extern先声明在使用 生命没有开辟空间!100 在main.c里 所有的变量声明的时候,不能设置初始值 为什么要有头文件 头文件要包含 变量的声明int g_val 函数的声明void show(),没有函数的声明虽然可…

CentOS7配置VNC远程桌面

桌面还是有很多方便的地方,在用U盘给电脑安装了centos7(带gnome)后,接着就需要弄远程桌面。 (1)安装vncserver yum -y install tigervnc* (2)启动vnc服务 vncserver &#xff0…

[paddledet][深度学习][原创]paddledet打印出FLops正确方法

第一步:去PaddleDetection\configs\runtime.yaml将print_flops设置true 在paddle环境安装paddleslim,我是paddlepaddle-gpu2.3.2但是我安装paddleslim2.4.0会报错 ImportError: cannot import name _legacy_C_ops from paddle 然后我换成2.3.4版本就好了…

第二十六天:Denoising Diffusion Probabilistic Models(DDPM)

摘要 我们使用扩散概率模型提出了高质量的图像合成结果,这是一类latent variable模型,灵感来自非平衡热力学。我们最好的结果是通过训练weighted variational bound ,根据新颖的连接扩散概率模型和去噪分数匹配朗之万动力学进行设计&#xf…

【记录】props和data响应式、watch初始化..谁先执行【Vue父子组件生命执行周期】

文章目录一 、 总结1-1 源码中清楚写明:1-2二、 本次遇到的问题: 父传子props,子组件无法在mounted处理2-1 代码如下2-2一 、 总结 1-1 源码中清楚写明: 1、 组件初始化的时候,created,props,data…执行先…

生物素-二硫键-琥珀酰亚胺酯 Biotin-SS-NHS CAS:142439-92-7 具有良好的水溶性

名称:生物素-二硫键-琥珀酰亚胺酯 英文简称:BIOTIN-SS-NHS;NHS-SS-Biotin CAS:122266-55-1 结构式: Biotin-SS-NHS ester结构式 分子式:C19H28N4O6S3 分子量:504.64 纯度:95% …

Python之threading: 带你了解多线程的强大威力!

前言 什么是多线程 多线程是指在一个程序中同时创建和使用多个执行流(thread)来执行不同的任务。这样多个任务就可以同时进行,从而提高程序的执行效率。 在python使用多线程的方法 在 Python 中有两种方法可以使用多线程:使用 Python 自带的 threadin…

Redis Java 客户端工具 - Lettuce框架介绍

Redis Java 客户端 - Lettuce 今天学习下Redis Java客户端开源项目 - Lettuce&#xff0c;Lettuce支持同步、异步通信的方式 API调用&#xff0c;也支持响应式编程API&#xff0c;包括发布/订阅消息、高可用性服务部署架构。 开始之旅 Maven依赖 <dependency><gro…

Python实现SSH远程操作Linux(paramiko库)

参考&#xff1a;https://blog.csdn.net/qq_40558166/article/details/100172501 一、官网 https://www.paramiko.org/ 二、安装库 1.命令 pip install paramiko 或 pip install paramiko –i https://pypi.douban.com/simple/ 三、辅助软件(可忽略) 1.Xshell(执行命令) …

[附源码]Node.js计算机毕业设计黑格伯爵国际英语贵族学校官网Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…