Cursor 使用记录:C/C++ 开发者

🧭 一、安装与环境建议

1. 插件与兼容性

Cursor 基于 VS Code 1.85+,部分旧插件可能不兼容。
推荐安装以下插件:

插件名称作用
C/C++ Extension Pack提供语法补全与调试支持
Remote - SSH远程开发
CodeLLDBC/C++ 调试
Better C++ Syntax增强语法高亮
GitLens代码版本追踪
如果提示 “not compatible”,可以手动安装:

或下载 .vsix 文件手动导入。

2. 远程开发配置

建议使用 Remote SSH 模式,在远程服务器上直接编译与调试。

在本地 .cursor/settings.json 中添加配置:

{ "remote.SSH.remotePlatform": { "your_server": "linux" }, "C_Cpp.intelliSenseEngine": "Default", "C_Cpp.loggingLevel": "Error" } 

⚙️ 二、AI 辅助操作速查表

功能快捷键说明
打开 AI 聊天Ctrl + K / ⌘ + K与 AI 对话
内联编辑Ctrl + I / ⌘ + I在选中代码上调用 AI
解释代码Ctrl + L 或右键 → “Ask Cursor”让 AI 解读函数或逻辑
生成注释Ctrl + Shift + I自动补充函数注释
跳转定义F12与 VS Code 一样

 💡 提示
如果 F12 跳转无效,请在工程中生成 compile_commands.json

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON . 

然后在配置中指定路径:

{ "C_Cpp.default.compileCommands": "/path/to/compile_commands.json" } 

💡 三、常用 AI 工作流示例

1. 阅读与理解老代码

选中函数,按下 Ctrl + I 输入:

解释这个函数的作用和逻辑流程

AI 会自动生成注释说明和调用关系,特别适合阅读 FreeSWITCH 或 Sofia 栈中的复杂逻辑。


2. 分析崩溃或 ASan 报告

选中堆栈或日志,输入:

帮我分析这个崩溃堆栈的原因

Cursor 会结合上下文解释崩溃位置及可疑指针操作。


3. 优化性能或代码结构

选中循环或内存操作片段,输入:

请优化这段代码的性能,并保持逻辑一致

它能自动改写为更简洁、高效的实现。


4. 自动生成头文件或声明

输入:

为当前源文件生成对应的 .h 文件


AI 会提取函数声明并生成符合规范的头文件。


⚙️ 四、性能优化与稳定性

问题解决办法
工程大导致卡顿"C_Cpp.intelliSenseEngine": "Tag Parser"
AI 回复慢使用轻量模型:Ctrl + Shift + P → Cursor: Select AI Model
聊天窗口卡死Ctrl + Shift + P → Developer: Reload Window

🔒 五、隐私与本地模式

Cursor 默认会将上下文发往云端模型处理。
若想仅本地使用部分功能,可启用本地模式:

{ "cursor.experimental.localMode": true } 

🧠 六、适合 C/C++ 开发的典型场景

场景推荐用法
阅读 FreeSWITCH 栈函数Explain this function
优化底层模块Optimize for speed and clarity
ASan 崩溃排查Analyze ASan report
模块移植(OpenSIPS/Kamailio)Compare behavior between A and B
写博客/文档Generate Markdown explanation with comments

🧩 七、Cursor 推荐配置模板

可在 .cursor/settings.json 中使用以下模板:

{ "C_Cpp.default.compileCommands": "${workspaceFolder}/build/compile_commands.json", "C_Cpp.intelliSenseEngine": "Default", "cursor.experimental.localMode": false, "editor.formatOnSave": true, "files.exclude": { "**/.git": true, "**/build": true }, "editor.minimap.enabled": false } 


✅ 总结

Cursor 不只是一个 AI 编辑器,它是 VS Code 的“强化版助手”。
在底层开发中,它能:

  • 快速解释复杂 C 逻辑;
  • 自动生成注释与声明;
  • 辅助调试 ASan 报告;
  • 帮助优化内存与性能问题。

Read more

Flutter 组件 graphql 的适配 鸿蒙Harmony 实战 - 驾驭标准化分布式图形协议、实现鸿蒙端实时订阅与高性能交互网关方案

Flutter 组件 graphql 的适配 鸿蒙Harmony 实战 - 驾驭标准化分布式图形协议、实现鸿蒙端实时订阅与高性能交互网关方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 graphql 的适配 鸿蒙Harmony 实战 - 驾驭标准化分布式图形协议、实现鸿蒙端实时订阅与高性能交互网关方案 前言 在鸿蒙(OpenHarmony)生态的万物互联、极繁交互中台、以及对数据获取灵活性有极致要求的现代应用研发中,“高效的数据检索协议”是应用响应速度的灵魂。面对复杂的社交网络关系查询、实时的行情推送、或是海量状态信息的聚合。如果仅仅依靠传统的 RESTful 接口,那么不仅会导致因为 Over-fetching(获取多余数据)导致的带宽浪费,更会因为频繁的 API 版本演进引入严重的跨端兼容性碎片化问题。 我们需要一种“按需检索、逻辑解耦”的交互艺术。 graphql 是一套专为 Flutter 设计的标准 GraphQL 客户端套件。它通过构建规范的规范化缓存(Normalized Cache)与极其灵活的连接链路(Links)

By Ne0inhk
解决:OpenClaw启动报错:unauthorized: gateway password missing (enter the password in Control UI settings)

解决:OpenClaw启动报错:unauthorized: gateway password missing (enter the password in Control UI settings)

解决:OpenClaw启动报错:unauthorized: gateway password missing (enter the password in Control UI settings) * 一·问题描述: * 1.使用`openclaw gateway`或`openclaw gateway --auth password`两个命令,均能够在终端启动成功 * 2.访问控制UI界面:http://127.0.0.1:18789/,界面有红色字体报错 * 3.配置文件`openclaw.json`的`gateway`配置如下 * 二·问题原因:没有在UI控制界面再次配置OpenClaw密码 * 三·解决方案: * 四·验证:成功对话

By Ne0inhk
微服务链路追踪实战:SkyWalking vs Zipkin 架构深度解析与性能优化指南

微服务链路追踪实战:SkyWalking vs Zipkin 架构深度解析与性能优化指南

目录 1. 链路追踪:分布式系统的“X光机” 1.1 从单体到微服务:排查困境的演变 1.2 链路追踪的核心价值矩阵 2. 核心原理解析:Trace、Span与上下文传播 2.1 基本概念:一次请求的完整“病历” 2.2 上下文传播:Trace ID的“接力赛” 2.3 采样算法:平衡精度与开销的智慧 3. SkyWalking深度解析:无侵入监控的艺术 3.1 架构全景:从Agent到UI的完整链路 3.2 字节码增强:Java Agent的魔法 3.3 生产环境配置模板 3.4 性能特性与调优 4.

By Ne0inhk
Rust异步Web框架Axum的深入原理与高级用法

Rust异步Web框架Axum的深入原理与高级用法

Rust异步Web框架Axum的深入原理与高级用法 一、Axum框架的架构与核心组件 1.1 Axum框架的设计理念 💡Axum是基于Tokio异步运行时的Rust Web框架,由Tokio团队官方维护,具有以下核心设计理念: 1. 模块化与可扩展性:通过中间件、请求提取器和响应映射器等组件,实现高度模块化的架构,允许开发者根据需求灵活组合功能。 2. 类型安全:利用Rust的类型系统确保请求处理逻辑的正确性,减少运行时错误。 3. 异步优先:完全基于Tokio异步运行时,充分利用现代硬件的并发能力。 4. 低门槛:提供简单易用的API,同时保持足够的灵活性,适合不同经验水平的开发者。 1.2 Axum框架的核心组件 1.2.1 请求提取器 请求提取器负责从HTTP请求中提取所需的数据,如路径参数、查询参数、请求体等。Axum提供了多种内置的请求提取器,并允许开发者自定义提取器。 内置请求提取器示例: useaxum::{extract::Path,response::IntoResponse,routing::get,

By Ne0inhk