首页 > 编程语言 >VScode「配置自动代码格式化C/C++」

VScode「配置自动代码格式化C/C++」

时间:2024-09-04 23:24:58浏览次数:12  
标签:格式化 VScode 可以 配置 C++ VS 自动

前言

        你好,我是小莱,希望输出高质量的内容。

        在大厂实习的过程中,我发现很多资深的开发者都习惯自己敲空格,按照公司的代码规范使用标尺来提示自己什么时候该换行。也许这样做可以增加代码编辑时的灵活性,但对于新入职场(用惯了VS)的小白来说,无疑大大降低了工作效率。本文分享了如何使用VScode配置自动的代码格式化,以及在配置代码格式化的过程中可能会踩的一些坑。

ps:需要用到C/C++扩展,不需要安装任何格式化插件,感兴趣可自行搜索 Prettier。

自动格式化配置

  • 进入VScode左下角设置

  • 找到文本编辑器-格式化,可以根据需要勾选,第一个是cv的时候自动格式化,第二个是保存的时候自动格式化,第三个是输入分号就可以格式化,就像VS那样,我一般习惯全都勾上。Save Mode选file就可以,配合第二个勾就会在保存的时候格式化整个文件。
  • (也已在其他位置修改)是我其他扩展修改的,如果你也有,可以通过将鼠标悬停在该提示上,它会显示是在哪里改的。

  • 如果第二个不勾会出现类似这种,少一个空格。这里VS做的比较好,大括号内换行会格式化一次:

  • 如果懒得保存或者经常忘记保存,建议设置一下自动保存,我习惯设置为onFocusChange,这样我在进入其它文件编辑时这个文件就会自动保存。

  • 编译之前不需要主动保存一下,VScode一般默认是save before run的,没有的话可以检查一下这里是不是always。

格式配置

  • 配置完了自动格式化,现在来配置具体想要什么样的格式。如果只是自己使用,没有公司代码规范限制的话,可以在设置里面搜索“格式化”,在第一条Default Formatter下选择一个格式化程序,有的扩展会提供一些格式化程序,可以自己尝试一下。

  • 如果需要针对性地做调整,这里以C/C++为例,在格式设置下找到Clang_format_fallback Style,选择一个样式作为预定义打个底,作为找不到格式文件时使用的格式。我这里使用了Visual Studio。

  • 往下翻,找到Formatting,这里比较关键,相当于设置一个默认的格式,默认是default,这个是需要一个格式文件的,感兴趣可以去了解怎么编写 clang-format 格式文件,这里设置成vcFormat,就可以直接在UI里操作一些配置项调整格式了。

  • 其它设置都默认就好,然后接着往下翻,或者直接搜索vcformat,有非常多的配置项可以自定义。这里举个例子,默认设置下可能会格式化成左图这样,如果想要代码紧凑一点如右图这样——

  • 可以在vcformat中找到如下配置项,并按图中配置。你可以根据喜好或规范勾选。其它的配置项感兴趣可以自行查看、尝试,基本上是够用了的。

  • 另外如果需要设置一行代码字符的最大长度,可以在设置里搜索“wordWrapColumn”,默认是80个字符。如果默认格式使用clang-format,可以在局部代码前后加注释// clang-format off和// clang-format on临时禁用自动格式化,注意//后的一个空格不能丢。

VScode的魅力在于扩展,没事可以多看看扩展的特性介绍和配置项,也许会有新的收获。

VS和VScode体验对比

        最后再聊聊我自己使用VS和VScode的体验对比吧,VS给我一种很臃肿的感觉,毕竟一个是编辑器一个是IDE,包括下载啊,启动啊,调试啊,所以也没用多久,可能我的感受会有失偏颇,仅作分享,就当也是顺便分享一些VScode的使用技巧吧。 

  • VScode界面更简洁
  • VS打开速度慢,VScode快
  • VS只能写C系列语言,VScode都能写
  • VScode按Ctrl+/就能大段注释,比VS方便
  • VS调试看内存不够直观,VScode的debug显示变量的值更直观
  • VScode文件结构清晰,搜索快,可以全局搜索文件、内容,也可以查看函数调用关系
  • VScode可以按Ctrl+[ ]整段移动,也可以按Alt+shift编辑整列,以及配置自动保存、自动格式化
  • VScode可以集成git的功能,并提供可视化,也可以集成ai辅助编程的功能,还能连接WSL跨(子)系统编程
  • 想了解更多,就去扩展的海洋里遨游吧

事实上,使用VScode的过程中会碰到无数的问题,学习的过程也是在锻炼解决问题的能力。

简洁的往往不自由,自由的往往更强大,而强大往往需要付出代价。

所以,你愿意为追求强大而付出代价吗?


The End

标签:格式化,VScode,可以,配置,C++,VS,自动
From: https://blog.csdn.net/Tony_StarkX/article/details/141894277

相关文章

  • 《C++中的反射机制:开启高级编程之门》
    一、引言在现代编程中,反射机制是一种强大的工具,它允许程序在运行时检查和操作对象的结构和行为。虽然C++语言本身并没有内置的反射机制,但通过一些技巧和技术,我们可以在C++中实现类似的功能。本文将深入探讨如何在C++中实现反射机制,以及它在实际编程中的应用。二、什么......
  • 《C++中的移动构造函数与移动赋值运算符:高效编程的利器》
    一、引言在C++编程中,随着现代软件对性能要求的不断提高,高效地管理资源变得至关重要。C++11引入了移动语义,其中移动构造函数和移动赋值运算符成为了提高程序性能和资源管理效率的重要工具。本文将深入探讨C++中的移动构造函数和移动赋值运算符的作用,以及它们在实际编程中......
  • Win32 C++代码快速验证模板
    DLL模板#include<windows.h>#include<algorithm>#include<array>#include<cstdio>#include<cstdlib>#include<cstring>#include<deque>#include<iostream>#include<list>#include<map>#incl......
  • 6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)
    目录一.堆(Heap)的基本介绍二.堆的常用操作(以小根堆为例)三.实现代码3.1堆结构定义3.2向下调整算法*3.3初始化堆*3.4销毁堆3.4向上调整算法* 3.5插入数据3.6删除数据3.7返回堆顶数据四.下篇内容1.堆排序2.TopK问题一.堆(Heap)的基本介绍    ......
  • 面向对象程序设计之链表 list 的简析(C++)
    简介:链表是一个双向的结构,与string与vector不同的是他不支持[]访问,因为链表是由一个节点一个节点连接而成的,并不连续。我们可以在常数量级内对于链表进行插入与删除数据1.构造函数我们在cplusplus.com中可以查到链表总共有四种构造的方式:1.无参构造(默认构造);2.使用n个va......
  • 深入了解链表 list 之的模拟实现 list (C++)
    1.基本框架关于链表我们知道其是一个双向循环结构,并且由许多节点组成,各个节点之间内存空间不一定连续,每个节点均有前驱指针与后继指针,下面我们使用类模版来实现一个适用于存储大部分数据类型的链表,由下面代码我们可以看到一些基础框架与很简单的函数size返回长度与empty判断......
  • 【保姆级VSCode 插件开发之实现语音转文字其一】
    保姆级VSCode插件开发第一章VSCode插件开发入门之语音转文字记录文章目录保姆级VSCode插件开发前言一、创建新笔记文件1.生成新项目框架2.创建新笔记文件3.`package.json`注册命令4.效果展示总结前言本篇文章主要介绍开发一个VSCode插件实现语音转文字记......
  • vscode launch.json 模板备忘
    {//UseIntelliSensetolearnaboutpossibleattributes.//Hovertoviewdescriptionsofexistingattributes.//Formoreinformation,visit:https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0",&quo......
  • C++机试——查找组成一个偶数最近的两个素数
    题目描述任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。数据范围:输入的数据满足 4≤n≤1000 4≤n≤1000 输入描述:输入一个大于2的偶数输出描述:从小到大输出两个素数思路      ......
  • C++语言基础--代码框架
    引入    工欲善其事,必先利其器。我们在编写C++代码之前,一定要了解到C++的代码框架。代码框架可以说是我们所有的C++代码都一定具备的。本章将详细解析C++的代码框架。代码框架#include<cstdio>#include<iostream>usingnamespacestd;intmain(){return......