首页
学习
活动
专区
圈层
工具
发布

团队效率工具: 代码格式化之Clang-format

这里介绍下clang-format,它是基于clang的一个命令行工具,能够自动化格式C/C++/Obj-C代码,支持多种代码风格:Google, Chromium, LLVM, Mozilla, WebKit...,也支持自定义风格(通过编写.clang-format文件)很方便的同意代码格式。...clang g-format -i main.cpp -style=LLVM 当然也支持对指定行格式化,格式化main.cpp的第1,2行 clang-format -lines=1:2 main.cpp...vim 中也可以集成该插件1 它提供一个clang-format-diff.py脚本,用来格式化patch,code review提交代码2 配置文件说明 配置文件.clang-format详细说明...格式化你的代码 Clang-Format格式化选项介绍 clang-format 格式化工具简易配置 vim安装插件以后启动变慢怎么解决?

14.8K23

Sublime Text 3中的代码格式化技巧大揭秘

它能够根据代码的语法规则自动调整缩进、排序标签、整理注释,并去除不必要的空格和空白。支持众多的语言,如HTML、CSS、JavaScript、PHP、SQL等。...集成外部代码格式化工具3.1 集成 clang-format3.1.1 安装 clang-format访问 LLVM 的官方网站(例如:LLVM官方GitHub发布页面 或 官方下载页面)或 LLVM...-> ClangFormat;打开你需要格式化的 C/C++ 源码文件,并按住 Ctrl + B,稍等一会,即可看到格式化后的效果。...Package 并选择,弹出另一个搜索框;继续在搜索框中,输入 Black,然后选择如下并开始安装;3.2.3 使用 python-blackpython 代码修改保存后会自动格式化【个人使用还是觉得不是什么缩进都能格式化...,有懂行的可以评论区讨论一下】在打开的 python 代码处,右击鼠标,选择 Black:Format总结通过内置的格式化功能、第三方插件或集成外部代码格式化工具,Sublime Text 3 提供了多种方式来满足开发者的代码格式化需求

1.9K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    NeoVim 代码格式化教程

    这篇文章覆盖 Neoformat 对 Python 和 C++ 进行格式化的配置,以及如何在保存代码时自动进行格式化,可以直接应用的配置代码段在文章最后。...清空这个自动化组中的所有自动化命令,避免影响后面的命令设置。...4. neoformat 格式化 C/C++ 代码 对 C/C++代码的格式化与 Python 是类似的,只不过使用的格式化工具不同而已。这里以 clang-format 为例,记录需要执行的步骤。...例如我想修改默认的2空格缩进为4空格,那么去掉默认文件中的# BasedOnStyle: Google的注释,继承google风格的默认配置,删除后面所有的内容,只修改IndentWidth 项: -...c++ let g:neoformat_c_clangformat = { \ 'exe': 'clang-format', \ 'args': ['-assume-filename

    1.3K20

    Linux 和 Windows PowerShell 常用工具命令 记录

    Administrative Commands (管理员命令) export $ENV_VAR:/usr/bin (环境变量) PATH (可执行文件目录) LD_LIBRARY_PATH (C/C+...+库文件目录) /etc/ld.so.conf (C/C++ 库文件目录表) uptime: 系统1分钟、5分钟和15分钟的系统平均负载 free: 内存使用情况 iostat: 磁盘IO使用情况...【gf】  - 打开光标处所指的文件 (这个命令在打到#include 头文件时挺好用的,当然,仅限于有路径的) 【*】或【#】在当前文件中搜索当前光标的单词 缩进相关 【>>】向右给它进当前行...【缩进当前行 【=】  - 缩进当前行 (和上面不一样的是,它会对齐缩进) 【=%】 – 把光标位置移到语句块的括号上,然后按=%,缩进整个语句块(%是括号匹配) 【G=gg】 或是 【...和 Sun Studio C/C++ compiler 查看 预定义宏 cc -qshowmacros -E fred.c # IBM AIX XL C/C++ compiler 查看 预定义宏 clang

    4.4K40

    在macOS上使用VS Code和Clang配置C++开发环境

    本文基于VS Code官方文档,详细介绍如何在macOS系统下配置Clang/LLVM编译器与VS Code的C++开发环境。...+"并安装Microsoft官方的C/C++扩展验证Clang安装:macOS通常预装了Clang编译器,可通过终端验证:clang --version如果未安装Clang,终端会提示安装命令行开发者工具...添加其他C/C++设置要更全面地控制C/C++扩展,可以创建c_cpp_properties.json文件,允许你更改编译器路径、包含路径、编译所用的C++标准(如C++17)等设置。...默认情况下,clang++使用C++98标准,不支持helloworld.cpp中使用的初始化方式。确保用"运行helloworld.cpp"部分提供的代码块替换tasks.json文件的全部内容。...接受权限请求后,调试时应显示外部控制台。后续步骤探索VS Code用户指南查看C++扩展概述创建新工作区,复制.json文件,调整新工作区路径、程序名称等必要设置,开始编码!

    2.5K20

    C++最佳实践 | 2. 代码风格

    本系列是开源书C++ Best Practises[1]的中文版,全书从工具、代码风格、安全性、可维护性、可移植性、多线程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。...正确性和脚本 代码风格 代码风格最重要的是一致性,其次是遵循C++程序员习惯的阅读风格。 C++允许任意长度的标识符名称,因此在命名时没必要非要保持简洁,建议使用描述性名称,并在风格上保持一致。...C++标准库(以及其他著名C++库,如Boost[8])使用以下指导原则: 宏使用大写和下划线: INT_MAX。 模板参数名使用驼峰命名法: InputIterator。...使用nullptr C++11引入了nullptr表示空指针,应该用来代替0或NULL来指示空指针。 注释 注释块应该使用//,而不是/* */,使用//可以更容易的在调试时注释掉代码块。...不要混用tab和空格 某些编辑器喜欢在默认情况下使用tab和空格的混合缩进,这使得没有使用完全相同的tab缩进设置的人很难阅读代码。请配置好编辑器,确保不会发生这种情况。

    1.8K10

    一键清理代码风格乱象:用 Shell 脚本搞定多人协作的格式统一

    /Clang-format方式二:Node.js 脚本,做更灵活的扩展(如 git add / commit 自动化)实战代码示例Shell 脚本版本:适合轻量项目直接集成以格式化 JS 和 Python...-name "*.py" | xargs black# 可选:格式化 C/C++ 文件# find ....-name "*.c" -o -name "*.h" | xargs clang-format -i# 自动提交改动git add .git commit -m "chore: auto format...+ isort + pre-commit 工具统一处理black .isort .也可以将格式化集成进 Git 提交钩子中(参考 pre-commit 框架)移动端 Swift 项目问题:开发者使用不同版本的...格式化工具只处理代码风格层面的内容,比如缩进、换行、引号等,不会改写变量、函数等逻辑。Q:是否可以只格式化修改过的文件?A:可以。

    34510

    C++最佳实践 | 1. 工具

    正确性和脚本 前言 C++最佳实践: 支持Fork的编码标准文档 本文档旨在收集对C++最佳实践所进行的协作性讨论,是《Effective C++》(Meyers) 和《C++ Coding Standards...关于如何在基于C++ cmake的应用程序中启用的简单示例,请参考: https://github.com/ChaiScript/ChaiScript/blob/master/.travis.yml 启用覆盖工具...所有版本,GCC >= 4.3) -Wmisleading-indentation 如果代码中有缩进,但没有对应的代码块,则发出警告(仅在GCC >= 6.0中) -Wduplicated-cond 如果...PVS-Studio PVS-Studio[50]是用于检测用C、C++和C#编写的程序源代码中的bug的工具,对个人学术项目、开源非商业项目和个人开发者的独立项目都是免费的,可以在Windows和Linux...ClangFormat ClangFormat[93]可以自动检查并纠正代码格式,以匹配组织约定。可以参考关于clang-format的系列文章[94]。

    4.6K10

    Xmake v2.7.3 发布,包组件和 C++ 模块增量构建支持

    目前,Xmake 主要用于 C/C++ 项目的构建,但是同时也支持其他 native 语言的构建,可以实现跟 C/C++ 进行混合编译,同时编译速度也是非常的快,可以跟 Ninja 持平。...C++ 包中集成特定的子库,一般用于一些比较大的包中的库组件集成。.../linux/x86_64/release/src/foo.mpp.o\ CXX_IMPORTS += bar.c++m cat.c++m\ clang 的格式兼容性最好,没有做任何特殊改动就支持了。...我们默认约定的域配置语法,尽管非常简洁,但是对自动格式化缩进和 IDE 不是很友好,如果你格式化配置,缩进就完全错位了。...我们即使在它们中间配置其他设置,也不会影响它们,另外,它还对 LSP 非常友好,即使一键格式化,也不会导致缩进混乱。

    1.6K40

    Rust避坑现代C++悬垂指针

    macOS 安装C++环境:使用Xcode安装Clang验证安装C++环境是否成功:运行命令clang++ --version创建新的C++项目:安装cmake-init【脚注:cmake-init下载链接...++项目名,注意该命令会生成带有.git的文件夹,会妨碍基于上层文件夹中.git的git命令执行,此时需要将其删除)格式化代码:先用Homebrew安装clang-format,再运行命令:clang-format...创建新的C++项目:(同macOS)格式化代码:先用apt安装clang-format,再运行命令:clang-format -i ....这种技术通常用于与不使用 Rust 内存安全特性的外部代码(如 C 语言库)交互。在纯 Rust 代码中,通常应避免使用裸指针,除非有特殊需求。第10-13行打印智能指针和裸指针指向的值。...虽然在Rust里,我们也踩了悬垂指针的坑,但这个坑是在unsafe代码块中踩的。相比C++在混用裸指针时不做任何标记,Rust用unsafe块提醒程序员,要担负好内存安全的责任。

    1.4K61

    极简 Vim

    因此,在工作过程中,我喜欢那些设置方便,依赖很少的工具,如 sumatraPDF,如 Vim ---- vim 不需要安装, Linux 系统在它就在。...我们需要一个自己完全理解,并且足够简单的 ~/.vimrc autocmd Filetype c,cpp,hpp,python set nu " 只在打开特定格式文件时开启行号 autocmd Filetype..."c") endfun map F : call ShowFuncName() " C++ 显示光标处内容所在函数 这是用 Vim 打开 ~/.vimrc 的最终外观 vimrc.png...对比上文的代码块和图中用 vim 打开的 `~/.vimrc` 文件显示效果可以看出,图中的显示效果明显好于代码块。...减少插件 vim 的插件系统很强大,很方便,但是为了降低依赖,我会要求自己尽可能少装插件。现在我只用 Clang-Format 一个插件,用来自动格式化 C++ 代码 3.

    1.8K40

    iOS编译原理

    主要内容: 理解C、C++以及OC的关系 编译型语言与解释型语言 编译器LLVM与CLang 理解iOS编译流程 预处理 编译 汇编 链接 一、理解C、C++以及OC的关系 1.C语言 C语言是一门面向过程的计算机编程语言...语言 扩展了C语言的能力,使其具备面向对象设计的能力,相当于C的超集; OC代码中也可以有C和C++语句,它可以调用C函数,也可以通过C++对象访问方法; 4.OC与C++的比较 OC与C++都是从...:OC不允许同一个类中两个方法有相同的名字(即使只是参数类型不同),但C++可以; 二、编译型语言与解释型语言 Objective-C属于编译型语言,这是为了保证iPhone的执行效率; 1.编译型语言...CLang基于LLVM,是一个高度模块化开发的轻量级编译器; CLang主要来自苹果电脑的支持,同时支持C、Objective-C以及C++; CLang用于替代Xcode5版本前使用的GCC,编译速度提高了...Mach-O文件(如dylib、a、tbd),合成一个Mach-O格式的可执行文件; 通常项目都会包含多个文件,不同文件之间的变量和接口函数就会产生相互依赖关系; 程序运行前,需要使用链接器将多个文件里的符号和地址绑定起来

    3.8K20

    C++开发者终极武器库:2024年主流工具链超详解(编译器、IDE、构建、调试、测试全覆盖)

    强大的配套工具:生成了大量优秀工具,如代码格式化工具 clang-format,静态分析器 clang-tidy(后面会详述)。 经典用法:与GCC类似,命令通常是 clang++。...,是现代C++开发流程中不可或缺**的一环。...现代化代码转换:可以自动将旧的C++代码(如C++98)重构为现代C++风格(如C++11/14/17),例如将 NULL 替换为 nullptr, typedef 替换为 using。...结语:工具之道,存乎一心 本文我们系统地遍历了现代C++开发中从编译、构建、调试到测试、格式化的整个工具链生态。...然后,逐步地将Clang-Format引入以规范格式,再尝试使用Clang-Tidy来发现代码中的潜在问题,最后为你的代码编写Google Test测试用例。

    1.1K20

    Android FFmpeg 编译和集成(十四)

    交叉编译生成,so动态库 编译工具链 对于C/C++的编译,通常有两个工具 GCC 和 CLANG 。...如果有用过c/c++的开发者应该都知道GCC,是一个编译工具,不仅可以编译C/C++,也可以编译Java,Object-C,Go等语言。...CLANG 则是更高效的C/C++编译工具,Google在ndk 17 以后,把 GCC 移除了,全面推行使用 CLANG 。...CMakeLists.txt文件是cmake脚本配置文件,cmake会根据该脚本文件中的指令去编译相关的C/C++源文件,并将编译后产物生成共享库或静态块,然后Gradle将其打包到APK中。...另外,由于 FFmpeg 是使用 C 语言编写的,所在 C++ 文件中引用 #include 的时候,也需要包裹在 extern "C" { },才能正确的编译。

    11K83

    mac平台VSCode配置指南

    mac平台的配置和windows平台有很多相似之处,整体流程如下: 安装cmake 安装C++编译器 安装VSCode 安装VSCode插件(cmake、cmake tool) 为了便于常用windows...安装C++编译器 VSCode只是一个编辑器,真正编译C++代码的是C++编译器,mac平台下常用的C++编译器有clang和gcc,clang是苹果自家的编译器,gcc是gnu的编译器,两者都是开源的...直接在App Store中搜索Xcode,点击安装即可,如下图: 安装完成后,打开终端,输入clang --version,如果输出clang的版本信息,则表示安装成功。 3....,如【Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code】等。...总结 本文主要介绍了如何在mac使用VSCode进行开发,详细介绍了mac平台上安装cmake、C++编译器、VSCode、VSCode插件的流程,完成如上的安装和配置后,即可在mac平台上使用VSCode

    3K10

    C++代码风格和clang-format配置

    C++是Google大部分开源项目的主要编程语言。C++有很多强大特性,但是另一面就是他的复杂性更容易产生bug,难以阅读和维护。 一、常用设置 这里针对项目组常用的习惯。...把谷歌代码风格稍微修改了下: 每行最大长度由80列扩张到160列 public/private/protected不需要缩进一个空格 对应的clang-format配置为AccessModifierOffset...:访问修饰符的额外缩进或缩进,例如public:....这里配置的值为: BAS_Align(在配置中Align:)对齐开括号上的参数,例如: someLongFunction(argument1, 2.2 AlignConsecutiveMacros(AlignConsecutiveStyle...配置为Consecutive 格式将输出如下: #define SHORT_NAME 42 #define LONGER_NAME 0x007f #define EVEN_LONGER_NAME

    5.5K340

    手把手教你配置linux下C++开发工具——vim+ycm(YouCompleteMe),支持基于语义的自动补全和第三方库补全(史上最简单、史上最透彻、史上最全的终极解决方案)

    "文件目录增加git 状态 Plugin 'Xuyuanp/nerdtree-git-plugin' "tab智能补全 Plugin 'ervandew/supertab' "代码可视化缩进块...std=c++14' " let g:ale_cpp_cppcheck_options = '' " " "使用clang对c和c++进行语法检查...其实,到这一步,如果没有错误的话,vim+ycm已经可以支持代码补全了(只是部分的补全哟,目前还补全不了c++工程中的基础库、依赖的第三方库,如:boost、libevent等) 五、让vim支持语议补全..."文件目录增加git 状态 Plugin 'Xuyuanp/nerdtree-git-plugin' "tab智能补全 Plugin 'ervandew/supertab' "代码可视化缩进块...std=c++14' " let g:ale_cpp_cppcheck_options = '' " " "使用clang对c和c++进行语法检查

    5.4K30

    Linux系统编程:(七)Vim 编辑器完全指南:从入门到精通的全方位实战教程

    而 Vim 在 Vi 的基础上进行了全面升级,主要区别如下: 语法高亮:Vim 能根据文件类型(如 C、C++、Shell 脚本、配置文件等)自动对代码关键字、注释、字符串等进行颜色区分,提高代码可读性...批量文本处理:借助 Vim 的正则表达式替换、块操作等功能,可快速处理大量文本(如日志分析、数据格式转换)。...plug.vim |` ni $HOME/vimfiles/autoload/plug.vim -Force 7.5.2 配置常用插件(基础必备) 插件配置需在~/.vimrc中添加特定格式的配置块.../install.py --all' } " --all表示安装所有语言支持,若仅需C/C++支持,可改为--clang-completer " 2....C++配置clang-tidy作为linter(需先安装clang-tidy:sudo yum install clang-tidy 或 sudo apt install clang-tidy) let

    1.1K40
    领券