vscode配置

1. 编辑界面右侧显示80字符分割线

界面左上角选择"文件->首选项->设置",进入设置界面,选择"文本编辑器->Rulers->在setting.json中编辑",或者直接所搜rulers
在这里插入图片描述
在这里插入图片描述

2. 添加注释头

在这里插入图片描述

{
    "add brief":
    {
        "prefix": "@brief",
        "body": [
        "",
        "/**",
        " * @brief : $1",
        " */",
        "$2",
        ],
    },

    "add enum template":
    {
        "prefix": "@enumTemplate",
        "body": [
        "",
        "/**",
        " * @brief : 错误代码定义",
        " */",
        "typedef enum",
        "{",
        "	ERR_SUCCESS       = 0,           //< 成功",
        "	ERR_FAILED        = -1,          //< 失败",
        "	ERR_INVALID_PARAMETER = -1000,   //< 无效参数",
        "	ERR_NOT_INITED,                  //< 未初始化",
        "	ERR_INITED,                      //< 已初始化$1",
        "} ErrCode;",
        ""
        ],
    },

    "Add File Header": {
        "prefix": "@fileHader",
        "body": [
            "/**"
            "  * @file    : ${TM_FILENAME}",
            "  * @brief   : $1",
            "  * @version : V1.0.0",
            "  * @date    : ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}",
            "  */",
            "#ifndef __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__",
            "#define __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__",
            "",
            "/*================================= Includes =================================*/",
            "$2",
            "",
            "/*================================= Defines ==================================*/",
            "$3",
            "",
            "/*============================= Static Functions =============================*/",
            "$4",
            "",
            "/*============================= Public Functions =============================*/",
            "$5",
            "",
            "#endif /* __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__ */",
        ],
        "description": "Add file describe"
    },

    "add func header":{
        "prefix": "@funcHeader",
        "body": [
            "",
            "/**",
            " * @brief : $1",
            " * @param [$2]	$3  : $4",
            " * @param [$5]	$6  : $7",
            " * @return 返回错误码ErrCode",
            " */",
        ]
    },

    "check conditon": {
        "prefix": "@checkConditon",
        "body": [
            "#define CHECK_CONDITION(condition, error_code, error_message)     \\",
            "        do {                                                      \\",
            "            if (!(condition)) {                                   \\",
            "                $1fprintf(stderr, \"Error: %s\\n\", error_message);    \\",
            "                return error_code;                                \\",
            "            }                                                     \\",
            "        } while (0) $2",
            "$3",
        ]
    },

    "check param": {
        "prefix": "@checkParam",
        "body": [
            "#define CHECK_PARAM(param, error_code)                            \\",
            "        do {                                                      \\",
            "            if (!(param)) {                                       \\",
            "                $1fprintf(stderr, \"Error: invalid param\\n\");        \\",
            "                return error_code;                                \\",
            "            }                                                     \\",
            "        } while (0) $2",
            "$3",
        ]
    },

    "select timeout": {
        "prefix": "@select",
        "body": [
            "#include <sys/select.h>",
            "#include <sys/time.h>",
            "#include <unistd.h>",
            "$1",
            "/**",
            "  * @brief : select_with_timeout",
            "  * @param [in]	fd          : 文件描述符",
            "  * @param [in]	timeout_ms  : 超时时间(ms)",
            "  * @return true  : 文件描述符准备好",
            "  * @return false : 超时或出错",
            "  */",
            "bool select_with_timeout(int fd, int timeout_ms) {",
            "    fd_set read_set;",
            "    FD_ZERO(&read_set);",
            "    FD_SET(fd, &read_set);",
            "",
            "    // 设置超时时间",
            "    struct timeval tv;",
            "    tv.tv_sec = timeout_ms / 1000;",
            "    tv.tv_usec = (timeout_ms % 1000) * 1000;",
            "",
            "    // 调用 select 函数",
            "    int ready = ::select(fd + 1, &read_set, nullptr, nullptr, &tv);",
            "",
            "    if (ready == -1) { ",
            "        $1fprintf(stderr, \"Error: %s\\n\", strerror(errno));",
            "        return false;",
            "    }",
            "",
            "    // 检查文件描述符是否准备好",
            "    return ready > 0 && FD_ISSET(fd, &read_set);",
            "}",
            "",
        ]
    },

    "delete class functions": {
        "prefix": "@deleteClassFunctions",
        "body": [
            "$1(const $1 &) = delete;",
            "$1($1 &&)      = delete;",
            "$1 &operator=(const $1 &) = delete;",
            "$1 &operator=($1 &&)      = delete;",
            "",
        ]
    },

    "class define": {
        "prefix": "@class",
        "body": [
            "class $1" 
            "{",
            "public:",
            "    $1()  = default;",
            "    ${2:virtual }~$1() = default;",
            "",
            "    $1(const $1 &) = delete;",
            "    $1($1 &&)      = delete;",
            "    $1 &operator=(const $1 &) = delete;",
            "    $1 &operator=($1 &&)      = delete;",
            "",
            "protected:",
            "",
            "private:",
            "    $3",
            "};",
            "$4"
        ]
    },

    "time keeper": {
        "prefix": "@timeKeeper",
        "body": [
            "#include <iostream>",
            "#include <chrono>",
            "#include <string>",
            "",
            "enum class TimeUnit {",
            "    Microseconds,",
            "    Milliseconds,",
            "    Seconds",
            "};",
            "",
            "/**",
            "* @brief : 计时器类",
            "*/",
            "class TimeKeeper {",
            "public:",
            "    TimeKeeper(){",
            "        start();",
            "    }",
            "",
            "    // 开始计时",
            "    void start() {",
            "        start_ = std::chrono::high_resolution_clock::now();",
            "    }",
            "",
            "    // 获取经过的时间",
            "    double getElapsed(TimeUnit unit = TimeUnit::Milliseconds) {",
            "        end_ = std::chrono::high_resolution_clock::now();",
            "",
            "        std::chrono::duration<double> elapsed;",
            "        switch (unit) {",
            "            case TimeUnit::Microseconds:",
            "                elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end_ - start_);",
            "                break;",
            "            case TimeUnit::Milliseconds:",
            "                elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end_ - start_);",
            "                break;",
            "            case TimeUnit::Seconds:",
            "                elapsed = std::chrono::duration_cast<std::chrono::seconds>(end_ - start_);",
            "                break;",
            "            default:",
            "                std::cerr << \"Error: Unsupported unit.\\n\";",
            "                return -1.0;",
            "        }",
            "        return elapsed.count();",
            "    }",
            "",
            "    // 打印经过的时间",
            "    void print(const std::string& message, TimeUnit unit = TimeUnit::Milliseconds) {",
            "        double duration = getElapsed(unit);",
            "        if (duration >= 0.0) {",
            "            switch (unit) {",
            "                case TimeUnit::Microseconds:",
            "                    std::cout << message << \": \" << duration << \" us\\n\";",
            "                    break;",
            "                case TimeUnit::Milliseconds:",
            "                    std::cout << message << \": \" << duration << \" ms\\n\";",
            "                    break;",
            "                case TimeUnit::Seconds:",
            "                    std::cout << message << \": \" << duration << \" s\\n\";",
            "                    break;",
            "                default:",
            "                    std::cerr << \"Error: Unsupported unit.\\n\";",
            "                    break;",
            "            }",
            "        }",
            "    }",
            "",
            "private:",
            "    std::chrono::time_point<std::chrono::high_resolution_clock> start_;",
            "    std::chrono::time_point<std::chrono::high_resolution_clock> end_;",
            "};"
        ]
    },
}
### VSCode 配置教程 #### 添加右键菜单中的“用 VSCode 打开”选项 如果在右键菜单中未找到“用 VSCode 打开”的选项,可以通过修改注册表的方式解决。以下是具体的实现方法: 将以下代码复制到记事本中,并将其保存为 `.reg` 文件(例如 `Add_VSCode_to_ContextMenu.reg`),然后双击该文件并确认导入。 ```plaintext Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\VSCode] @="Open with Code" "Icon"="D:\\Program Files\\Microsoft VS Code\\Code.exe" [HKEY_CLASSES_ROOT\*\shell\VSCode\command] @="\"D:\\Program Files\\Microsoft VS Code\\Code.exe\" \"%1\"" Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\VSCode] @="Open with Code" "Icon"="D:\\Program Files\\Microsoft VS Code\\Code.exe" [HKEY_CLASSES_ROOT\Directory\shell\VSCode\command] @="\"D:\\Program Files\\Microsoft VS Code\\Code.exe\" \"%V\"" Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode] @="Open with Code" "Icon"="D:\\Program Files\\Microsoft VS Code\\Code.exe" [HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command] @="\"D:\\Program Files\\Microsoft VS Code\\Code.exe\" \"%V\"" ``` 完成以上操作后,“用 VSCode 打开”选项将会出现在右键菜单中[^1]。 --- #### 安装中文语言包 默认情况下,VSCode 的界面是英文的。为了方便不熟悉英文的用户,可以安装中文语言包。按照以下步骤操作: 1. 打开 VSCode 并进入扩展市场(快捷键:`Ctrl+Shift+X`)。 2. 搜索 “Chinese (Simplified)” 插件并点击安装。 3. 安装完成后,在命令面板中输入 `Reload Window` 来重启窗口以应用更改。 通过此方式,VSCode 将切换至简体中文界面[^3]。 --- #### 基础功能概述 VSCode 提供了许多实用的功能,包括但不限于: - **语法高亮**:支持多种编程语言的语法高亮显示。 - **IntelliSense 自动补全**:提供智能代码建议和补全功能。 - **调试工具**:内置强大的调试器,可轻松设置断点、单步执行等。 - **版本控制集成**:原生支持 Git 功能,便于管理项目版本。 - **扩展生态**:拥有丰富的插件库,可根据需求安装不同类型的插件[^2]。 --- #### C/C++ 开发环境配置 对于初学者而言,配置 C/C++ 环境可能会有一定难度。以下是详细的配置流程: 1. 下载并安装 MinGW 或者 TDM-GCC 编译器。 2. 在系统环境变量中添加编译器路径。 3. 安装 VSCode 中的相关插件,如 `C/C++` 和 `Code Runner`。 4. 创建一个简单的测试程序验证配置是否成功。 更多细节可以参考专门针对 C/C++ 环境配置的教学文档[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值