{"id":7789,"date":"2023-07-05T12:20:14","date_gmt":"2023-07-05T04:20:14","guid":{"rendered":"https:\/\/yanjingang.com\/blog\/?p=7789"},"modified":"2025-12-10T15:47:39","modified_gmt":"2025-12-10T07:47:39","slug":"vscode-c%e4%bb%a3%e7%a0%81%e8%87%aa%e5%8a%a8%e6%a0%bc%e5%bc%8f%e5%8c%96%e9%85%8d%e7%bd%ae","status":"publish","type":"post","link":"https:\/\/yanjingang.com\/blog\/?p=7789","title":{"rendered":"VSCode C++\u4ee3\u7801\u81ea\u52a8\u683c\u5f0f\u5316\u914d\u7f6e"},"content":{"rendered":"<p>\u65e5\u5e38\u5f00\u53d1\u65f6\uff0c\u4e0d\u8bba\u662f\u4f01\u4e1a\u6216\u7ec4\u7ec7\u90fd\u4f1a\u5bf9\u4ee3\u7801\u683c\u5f0f\u6709\u7edf\u4e00\u7684\u8981\u6c42\uff0c\u672c\u6587\u4e3b\u8981\u8bb2\u89e3\u5982\u4f55\u5728vscode\u4e2d\u81ea\u52a8\u6309Google C++\u4ee3\u7801\u89c4\u8303\u8fdb\u884c\u4ee3\u7801\u81ea\u52a8\u683c\u5f0f\u5316\u548c\u68c0\u67e5\u63d0\u793a\u3002\u5982\u6709\u9700\u8981\u4e5f\u53ef\u4ee5\u5728\u6b64\u57fa\u7840\u4e0a\u8fdb\u884c\u81ea\u5b9a\u4e49\u8c03\u6574\u3002<\/p>\n<h1>\u4e00\u3001C++\u4ee3\u7801\u81ea\u52a8\u683c\u5f0f\u5316<\/h1>\n<h4>1\u3001\u5b89\u88c5clang-format<\/h4>\n<pre class=\"pure-highlightjs\"># clang format<code class=\"\">\r\nsudo apt install -y clang-format\r\n<\/code><\/pre>\n<h4>2\u3001vscode\u5b89\u88c5clang-format\u6269\u5c55<\/h4>\n<p><a href=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/clang-format.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-7790\" src=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/clang-format.png\" alt=\"\" width=\"455\" height=\"307\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/clang-format.png 455w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/clang-format-300x202.png 300w\" sizes=\"(max-width: 455px) 100vw, 455px\" \/><\/a><\/p>\n<h4>3\u3001vscode\u5de5\u4f5c\u7a7a\u95f4\u6dfb\u52a0\u683c\u5f0f\u8bbe\u7f6e\u6587\u4ef6.clangfomat<\/h4>\n<div class=\"mp-paragraph-wrapper\" data-morpho-type=\"paragraph\" data-slate-node=\"element\">.clangfomat\u9700\u8981\u653e\u5230vscode\u5de5\u7a0b\u76ee\u5f55\u4e0b (\u5c31\u662fvscode\u6253\u5f00\u7684\u76ee\u5f55\u4e0b\uff0c\u4e0e.vscode\u76ee\u5f55\u540c\u7ea7)<\/div>\n<div data-morpho-type=\"paragraph\" data-slate-node=\"element\">\n<pre class=\"pure-highlightjs\"><code class=\"\">$ vim .clang-format\r\n\r\n# \u98ce\u683c\uff1aGoogle, LLVM, Chromium, Mozilla, WebKit, Microsoft, GUN\r\nBasedOnStyle: Google\r\n# \u8bed\u8a00: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto\r\nLanguage: Cpp\r\n# \u6807\u51c6: Cpp03, Cpp11, Auto\r\nStandard: Cpp11\r\n# \u53bb\u9664C++11\u7684\u5217\u8868\u521d\u59cb\u5316\u7684\u5927\u62ec\u53f7{\u540e\u548c}\u524d\u7684\u7a7a\u683c\r\nCpp11BracedListStyle: true\r\n# \u8bbf\u95ee\u8bf4\u660e\u7b26(public\u3001private\u7b49)\u7684\u504f\u79fb\r\nAccessModifierOffset: -4\r\n# \u5f00\u62ec\u53f7(\u5f00\u5706\u62ec\u53f7\u3001\u5f00\u5c16\u62ec\u53f7\u3001\u5f00\u65b9\u62ec\u53f7)\u540e\u7684\u5bf9\u9f50: Align, DontAlign, AlwaysBreak(\u603b\u662f\u5728\u5f00\u62ec\u53f7\u540e\u6362\u884c)\r\nAlignAfterOpenBracket: AlwaysBreak\r\n# \u6c34\u5e73\u5bf9\u9f50\u4e8c\u5143\u548c\u4e09\u5143\u8868\u8fbe\u5f0f\u7684\u64cd\u4f5c\u6570\r\nAlignOperands: false\r\n# \u5141\u8bb8\u51fd\u6570\u58f0\u660e\u7684\u6240\u6709\u53c2\u6570\u5728\u653e\u5728\u4e0b\u4e00\u884c\r\nAllowAllParametersOfDeclarationOnNextLine: false\r\n# \u5141\u8bb8\u77ed\u7684\u5757\u653e\u5728\u540c\u4e00\u884c\r\nAllowShortBlocksOnASingleLine: false\r\n# \u5141\u8bb8\u77ed\u7684case\u6807\u7b7e\u653e\u5728\u540c\u4e00\u884c\r\nAllowShortCaseLabelsOnASingleLine: false\r\n# \u5141\u8bb8\u77ed\u7684\u51fd\u6570\u653e\u5728\u540c\u4e00\u884c: None, InlineOnly(\u5b9a\u4e49\u5728\u7c7b\u4e2d), Empty(\u7a7a\u51fd\u6570), Inline(\u5b9a\u4e49\u5728\u7c7b\u4e2d\uff0c\u7a7a\u51fd\u6570), All\r\nAllowShortFunctionsOnASingleLine: Empty\r\n# \u5141\u8bb8\u77ed\u7684if\u8bed\u53e5\u4fdd\u6301\u5728\u540c\u4e00\u884c\r\nAllowShortIfStatementsOnASingleLine: false\r\n# \u5141\u8bb8\u77ed\u7684\u5faa\u73af\u4fdd\u6301\u5728\u540c\u4e00\u884c\r\nAllowShortLoopsOnASingleLine: false\r\n<span class=\"hljs-comment\"># \u603b\u662f\u5728\u8fd4\u56de\u7c7b\u578b\u540e\u6362\u884c: None, All, TopLevel(\u9876\u7ea7\u51fd\u6570\uff0c\u4e0d\u5305\u62ec\u5728\u7c7b\u4e2d\u7684\u51fd\u6570), <\/span> <span class=\"hljs-comment\"># AllDefinitions(\u6240\u6709\u7684\u5b9a\u4e49\uff0c\u4e0d\u5305\u62ec\u58f0\u660e), TopLevelDefinitions(\u6240\u6709\u7684\u9876\u7ea7\u51fd\u6570\u7684\u5b9a\u4e49)<\/span>\r\nAlwaysBreakAfterReturnType: None\r\n# \u603b\u662f\u5728template\u58f0\u660e\u540e\u6362\u884c\r\nAlwaysBreakTemplateDeclarations: true\r\n# false\u8868\u793a\u51fd\u6570\u5b9e\u53c2\u8981\u4e48\u90fd\u5728\u540c\u4e00\u884c\uff0c\u8981\u4e48\u90fd\u5404\u81ea\u4e00\u884c\r\nBinPackArguments: false\r\n# false\u8868\u793a\u6240\u6709\u5f62\u53c2\u8981\u4e48\u90fd\u5728\u540c\u4e00\u884c\uff0c\u8981\u4e48\u90fd\u5404\u81ea\u4e00\u884c\r\nBinPackParameters: false\r\n# \u6784\u9020\u51fd\u6570\u7684\u521d\u59cb\u5316\u5217\u8868\u6362\u884c\r\nBreakConstructorInitializers: AfterColon\r\n# \u6bcf\u884c\u5b57\u7b26\u7684\u9650\u5236\uff0c0\u8868\u793a\u6ca1\u6709\u9650\u5236\r\nColumnLimit: 120\r\n# \u6784\u9020\u51fd\u6570\u7684\u521d\u59cb\u5316\u5217\u8868\u7684\u7f29\u8fdb\u5bbd\u5ea6\r\nConstructorInitializerIndentWidth: 8\r\n# \u5ef6\u7eed\u7684\u884c\u7684\u7f29\u8fdb\u5bbd\u5ea6\r\nContinuationIndentWidth: 4\r\n# \u7ee7\u627f\u6700\u5e38\u7528\u7684\u6307\u9488\u548c\u5f15\u7528\u7684\u5bf9\u9f50\u65b9\u5f0f\r\nDerivePointerAlignment: true\r\n# \u4e3a\u547d\u540d\u7a7a\u95f4\u6dfb\u52a0\u7f3a\u5931\u7684\u547d\u540d\u7a7a\u95f4\u7ed3\u675f\u6ce8\u91ca\r\nFixNamespaceComments: true\r\n# \u7f29\u8fdbcase\u6807\u7b7e\r\nIndentCaseLabels: false\r\n# \u4f7f\u7528tab\u5b57\u7b26: Never, ForIndentation, ForContinuationAndIndentation, Always\r\nUseTab: Never\r\n# \u7f29\u8fdb\u5bbd\u5ea6\r\nIndentWidth: 4\r\n# \u8fde\u7eed\u7a7a\u884c\u7684\u6700\u5927\u6570\u91cf\r\nMaxEmptyLinesToKeep: 1\r\n# \u547d\u540d\u7a7a\u95f4\u7684\u7f29\u8fdb: None, Inner(\u7f29\u8fdb\u5d4c\u5957\u7684\u547d\u540d\u7a7a\u95f4\u4e2d\u7684\u5185\u5bb9), All\r\nNamespaceIndentation: None\r\nPenaltyBreakAssignment: 2\r\n# \u5728call(\u540e\u5bf9\u51fd\u6570\u8c03\u7528\u6362\u884c\u7684penalty\r\nPenaltyBreakBeforeFirstCallParameter: 1\r\n# \u5728\u4e00\u4e2a\u6ce8\u91ca\u4e2d\u5f15\u5165\u6362\u884c\u7684penalty\r\nPenaltyBreakComment: 500\r\n# \u7b2c\u4e00\u6b21\u5728&lt;&lt;\u524d\u6362\u884c\u7684penalty\r\nPenaltyBreakFirstLessLess: 120\r\n# \u5728\u4e00\u4e2a\u5b57\u7b26\u4e32\u5b57\u9762\u91cf\u4e2d\u5f15\u5165\u6362\u884c\u7684penalty\r\nPenaltyBreakString: 1000\r\n# \u5bf9\u4e8e\u6bcf\u4e2a\u5728\u884c\u5b57\u7b26\u6570\u9650\u5236\u4e4b\u5916\u7684\u5b57\u7b26\u7684penalty\r\nPenaltyExcessCharacter: 1000000\r\n# \u5c06\u51fd\u6570\u7684\u8fd4\u56de\u7c7b\u578b\u653e\u5230\u5b83\u81ea\u5df1\u7684\u884c\u7684penalty\r\nPenaltyReturnTypeOnItsOwnLine: 400\r\n# \u6307\u9488\u548c\u5f15\u7528\u7684\u5bf9\u9f50: Left, Right, Middle\r\nPointerAlignment: Right\r\n# \u5141\u8bb8\u6392\u5e8f#include\r\nSortIncludes: false\r\n# \u8fde\u7eed\u5b8f\u5b9a\u4e49\u7684\u503c\u5bf9\u9f50\r\nAlignConsecutiveMacros: true<\/code><\/pre>\n<h4>4\u3001\u4f7f\u7528\u683c\u5f0f\u5316<\/h4>\n<p>\u91cd\u542fvscode\uff0c\u4f7f\u7528ctrl + shift + I\u6216\u53f3\u952e\u683c\u5f0f\u5316\u5355\u4e2ac++\u4ee3\u7801\u6587\u4ef6\u3002<\/p>\n<p>\u6216\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6279\u91cf\u683c\u5f0f\u5316\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">\/\/ \u9700\u786e\u4fdd\u76ee\u5f55\u5df2\u7ecf\u6709.clang-format\u6587\u4ef6\r\nfind $project_path -iname *.h -o -iname *.hpp -o -iname *.cpp -o -iname *.cc | xargs clang-format -i<\/code><\/pre>\n<h1>\u4e8c\u3001C++\u4ee3\u7801\u683c\u5f0f\u5316\u68c0\u67e5\u548c\u63d0\u793a<\/h1>\n<h4>1\u3001\u5b89\u88c5<code class=\"\">cpplint<\/code><\/h4>\n<pre class=\"pure-highlightjs\"># cpplint<code class=\"\">\r\nsudo apt install -y python python3 python3-pip\r\npip install cpplint\r\n<\/code><\/pre>\n<h4>2\u3001vscode\u5b89\u88c5cpplint\u6269\u5c55<\/h4>\n<\/div>\n<p><a href=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/cpplint.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-7792\" src=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/cpplint.png\" alt=\"\" width=\"453\" height=\"157\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/cpplint.png 453w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/cpplint-300x104.png 300w\" sizes=\"(max-width: 453px) 100vw, 453px\" \/><\/a><\/p>\n<h4>3\u3001\u63d2\u4ef6\u8bbe\u7f6e<\/h4>\n<p>\u70b9\u51fbcpplint\u63d2\u4ef6\u8bbe\u7f6e\u6309\u94ae\uff0c\u628a<span class=\"setting-item-category\" title=\"cpplint.lineLength - Modified\">Cp\u4e0d\u65adlint:\u00a0<\/span><span class=\"setting-item-label\" title=\"cpplint.lineLength - Modified\">Line Length<\/span>\u8bbe\u7f6e\u4e3a120\uff1a<\/p>\n<p><a href=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/cpplint-set.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-7793\" src=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/cpplint-set.png\" alt=\"\" width=\"595\" height=\"246\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/cpplint-set.png 595w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2023\/07\/cpplint-set-300x124.png 300w\" sizes=\"(max-width: 595px) 100vw, 595px\" \/><\/a><\/p>\n<p>\u4ee3\u7801\u683c\u5f0f\u4e0d\u5bf9\u65f6\uff0c\u4f1a\u81ea\u52a8\u5c0f\u9ec4\u7ebf\u63d0\u9192\u3002<\/p>\n<h4>5\u3001\u6279\u91cf\u68c0\u67e5<\/h4>\n<pre class=\"pure-highlightjs\"><code class=\"\"># \u68c0\u67e5\u5355\u4e2a\u6587\u4ef6\u6216\u76ee\u5f55\r\ncpplint --linelength=120 --counting=detailed --extensions=c,cc,cpp,hpp,h --filter=-build\/c++11,-build\/header_guard,-build\/include_order,-build\/include_what_you_use,-legal\/copyright,-build\/include_subdir,-whitespace\/indent,-runtime\/references,-runtime\/string $CODE_FILE_OR_PROJECT_PATH<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>yan 23.7.5<\/p>\n<p>&nbsp;<\/p>\n<p>\u53c2\u8003\uff1a<\/p>\n<p><a href=\"https:\/\/blog.csdn.net\/weixin_43717839\/article\/details\/129382657\" target=\"_blank\" rel=\"noopener\">\u3010C++\u3011Clang-Format\uff1a\u4ee3\u7801\u81ea\u52a8\u683c\u5f0f\u5316<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u65e5\u5e38\u5f00\u53d1\u65f6\uff0c\u4e0d\u8bba\u662f\u4f01\u4e1a\u6216\u7ec4\u7ec7\u90fd\u4f1a\u5bf9\u4ee3\u7801\u683c\u5f0f\u6709\u7edf\u4e00\u7684\u8981\u6c42\uff0c\u672c\u6587\u4e3b\u8981\u8bb2\u89e3\u5982\u4f55\u5728vscode\u4e2d\u81ea\u52a8\u6309Google C [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1027,77],"tags":[877,1303,1305,1304,855],"_links":{"self":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7789"}],"collection":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7789"}],"version-history":[{"count":4,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7789\/revisions"}],"predecessor-version":[{"id":10215,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7789\/revisions\/10215"}],"wp:attachment":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}