
保姆级教程:用 Cline + DeepSeek 打造本地 AI 编程助手(Cursor 平替)
手把手教你,零成本把 AI 编程助手装进 VS Code,DeepSeek-V3 满血版本地运行,代码补全/重构/调试/单测一键搞定
预计完成时间: 2-3 小时
所需技能: 会用 VS Code、基础命令行
适合人群: 想提升编码效率但不想花 Cursor 订阅费的同学
前言:为什么你需要一个 AI 编程助手?
写过代码的人都有过这种体验:
- 一个函数写了半天,结果发现标准库早就有现成的
- 改一个 Bug 花了两小时,最后发现是少了个分号
- 写单元测试写到头秃,全是重复劳动
- 读别人的代码像读天书,注释比代码还难懂
Cursor 解决了这些问题------它把 AI 深度融合进编辑器,代码补全、重构、解释、生成单测,全部在编辑器里完成。
但问题是:Cursor 订阅费每月 20 美刀,而且代码要上传到第三方服务器。
那怎么办?
答案就是今天要讲的 Cline + DeepSeek 本地方案:
- 💰 完全免费:DeepSeek-V3 API 调用成本极低(约 Cursor 的 1/50)
- 🔒 代码不出本地:用 Ollama 本地运行模型,代码永远不会离开你的机器
- ⚡ 能力不打折:代码补全、重构、解释、生成单测,全部支持
- 🔧 深度集成 VS Code:和 Cursor 体验几乎一模一样
一句话:Cline 就是开源版 Cursor,DeepSeek 就是免费版 GPT-4o。
一、先搞懂:Cline 到底是什么?
1.1 不用术语,用大白话
Cline 是一个 VS Code 插件,它把 AI 大模型"装进"你的编辑器。
你可以把它理解成:
- 像 GitHub Copilot 一样做代码补全
- 像 Cursor 一样深度理解项目上下文
- 像 ChatGPT 一样对话式编程
核心能力:
| 功能 | 说明 |
|---|---|
| 代码补全 | 实时预测你下一行要写什么(比 Copilot 更懂你) |
| 选中即对话 | 选中一段代码,直接问"这段代码干嘛的" |
| 自动重构 | "帮我把这个函数拆成三个小函数"------AI 直接改你的文件 |
| 生成单测 | 选中一个函数,"帮我写单元测试"------自动生成测试文件 |
| 项目级理解 | 自动读取项目结构,AI 知道你整个项目在干嘛 |
1.2 Cline vs Cursor vs Copilot
| 对比项 | Cline(本教程方案) | Cursor(商业版) | GitHub Copilot |
|---|---|---|---|
| 费用 | 🟢 完全免费 | 🔴 $20/月 | 🟡 $10/月 |
| 模型选择 | 🟢 任意 OpenAI 格式模型 | 🟡 只能用 Cursor 提供的 | 🟡 只能用 Copilot 的 |
| 隐私 | 🟢 可完全本地运行 | 🔴 代码上传云端 | 🔴 代码上传云端 |
| 项目理解 | 🟢 自动读取全项目 | 🟢 自动读取全项目 | 🟡 只理解当前文件 |
| 代码修改 | 🟢 直接改文件 | 🟢 直接改文件 | 🟡 只给建议 |
结论: Cline = Cursor 的能力 + 免费 + 隐私安全。
1.3 整体架构
┌─────────────────────────────────────────────────┐
│ 你的 VS Code │
│ ┌──────────┐ │
│ │ Cline 插件 │ │
│ │ - 读取项目文件 │ │
│ │ - 调用 AI 模型 │ │
│ │ - 把 AI 的回答写回文件 │ │
│ └──────────┘ │
│ ↓ │
│ ┌─────────────────────────────┐ │
│ │ 模型后端(三选一) │ │
│ │ ① DeepSeek API(推荐) │ │
│ │ ② Ollama 本地模型(隐私优先)│ │
│ │ ③ OpenAI API(有钱可选) │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────────────────┘
第一阶段:环境准备(15 分钟)
第 1 步:安装 VS Code
已经有 VS Code 的可以跳过。
下载地址: https://code.visualstudio.com/
安装完成后,打开 VS Code,确认可以正常运行。
第 2 步:安装 Cline 插件
- 打开 VS Code
- 点击左侧扩展图标(或按
Ctrl+Shift+X) - 搜索
Cline - 找到 Cline (作者:Cline Team),点击「安装」
安装完成后,左侧会出现一个 Cline 图标(紫色小机器人)。
第 3 步:目录结构
bash
# 创建工作目录
mkdir -p ai-coding-workspace
cd ai-coding-workspace
# 创建测试项目
mkdir -p hello-project/src
mkdir -p hello-project/test
# 创建一个示例文件
touch hello-project/src/main.py
touch hello-project/test/test_main.py
touch hello-project/README.md
用 VS Code 打开 ai-coding-workspace 文件夹。
第 4 步:配置方案选择
Cline 支持三种模型后端,你需要选一个:
| 方案 | 优点 | 缺点 | 推荐人群 |
|---|---|---|---|
| ① DeepSeek API | 便宜(约 Cursor 1/50)、模型能力强 | 需要联网 | 大多数人 |
| ② Ollama 本地模型 | 完全离线、隐私最好 | 需要好显卡、速度慢一点 | 隐私敏感者 |
| ③ OpenAI API | 模型能力最强 | 贵 | 不差钱的人 |
💡 推荐 :大多数人选 方案①(DeepSeek API) ,性价比最高。
如果你 code 涉及商业机密,选 方案②(Ollama 本地)。
第二阶段:配置 DeepSeek API(最快方案,10 分钟)
第 5 步:获取 DeepSeek API Key
- 打开 https://platform.deepseek.com/
- 注册 / 登录
- 点击「API Keys」→「Create new API key」
- 复制生成的 Key(格式类似
sk-xxxxxxxxxxxx)
💡 费用说明 :DeepSeek-V3 输入
$0.14 / 1M tokens,输出$0.28 / 1M tokens。正常编程使用,一个月大概 ¥5-20,比 Cursor 便宜太多。
第 6 步:在 Cline 中配置 DeepSeek
- 点击 VS Code 左侧的 Cline 图标
- 在弹出的侧边栏中,找到「Select AI Model」下拉框
- 选择 「DeepSeek」
- 在「API Key」输入框中,粘贴你的 DeepSeek API Key
- 模型选择:**
deepseek-chat(日常编程)或deepseek-coder(专攻代码)
配置完成后,底部状态栏会显示 「Cline: Ready」。
第 7 步:测试对话
在 Cline 侧边栏的输入框中,输入:
你好,介绍一下你自己,以及你擅长什么?
AI 会回复类似:
你好!我是 DeepSeek,一个擅长编程的 AI 助手。我可以帮你写代码、解释代码、重构代码、生成单元测试......
再测试代码能力,输入:
用 Python 写一个快速排序,要求:
1. 使用一行代码完成分区
2. 添加详细注释
3. 包含单元测试
如果你看到了代码输出,说明配置成功!✅
第三阶段:配置 Ollama 本地模型(隐私方案,20 分钟)
如果你选了「方案① DeepSeek API」,可以跳过这一阶段的第 8-10 步,直接看第四阶段。
第 8 步:安装 Ollama
如果你之前看过我的《Ollama 本地大模型教程》,这步已经完成了。
否则,快速安装:
Windows:
打开 https://ollama.com/download,下载安装包,一路下一步。
验证安装:
bash
ollama --version
第 9 步:下载代码专用模型
Cline 对代码理解最好的本地模型是 DeepSeek-Coder:
bash
# 推荐:DeepSeek-Coder 1.3B(轻量,4GB 内存可跑)
ollama pull deepseek-coder:1.3b
# 或者:DeepSeek-Coder 6.7B(更强,需要 8GB 内存)
ollama pull deepseek-coder:6.7b
# 或者:Qwen2.5-Coder 7B(阿里出品,也很强)
ollama pull qwen2.5-coder:7b
第 10 步:在 Cline 中配置 Ollama
- 点击 VS Code 左侧的 Cline 图标
- 「Select AI Model」→ 选择 「Ollama」
- 「Ollama Model」→ 选择你刚下载的模型(如
deepseek-coder:1.3b) - 确保 Ollama 服务在运行(终端执行
ollama serve)
配置完成后,状态栏显示 「Cline: Ready (Ollama)」。
第四阶段:核心功能实战(40 分钟)
下面我们用一个真实项目,带你把 Cline 的核心功能全部过一遍。
第 11 步:创建一个测试项目
在 ai-coding-workspace/hello-project/src/main.py 中,放入一段"待重构"的代码:
python
# src/main.py
import os
import json
def read_config(path):
f = open(path, 'r')
data = json.load(f)
f.close()
return data
def write_config(path, data):
f = open(path, 'w')
json.dump(data, f)
f.close()
def get_value(config, key):
if key in config:
return config[key]
return None
def set_value(config, key, value):
config[key] = value
return config
def print_config(config):
for k in config:
print(f"{k} = {config[k]}")
# 主函数
def main():
config = read_config('config.json')
print_config(config)
set_value(config, 'version', 2)
write_config('config.json', config)
if __name__ == '__main__':
main()
第 12 步:功能一------解释代码(选中即问)
- 在 VS Code 中,用鼠标选中
read_config函数 - 按
Ctrl+Shift+P(打开命令面板) - 输入
Cline: Explain Selected Code,回车
AI 会回答:
read_config函数的作用是:
- 打开指定路径的 JSON 文件
- 读取并解析 JSON 内容
- 返回解析后的字典对象
⚠️ 问题:这个函数没有错误处理,如果文件不存在会崩溃。
第 13 步:功能二------重构代码(让 AI 直接改文件)
继续选中 read_config 和 write_config 两个函数,在 Cline 侧边栏输入:
帮我重构这两个函数:
1. 添加错误处理(文件不存在、JSON 格式错误)
2. 使用 with 语句自动关闭文件
3. 添加类型注解
Cline 会做什么:
- 分析你的代码
- 生成重构后的版本
- 直接在你的文件中替换旧代码
重构后的代码:
python
def read_config(path: str) -> dict:
"""读取配置文件,返回字典对象"""
try:
with open(path, 'r', encoding='utf-8') as f:
return json.load(f)
except FileNotFoundError:
print(f"错误:配置文件 {path} 不存在")
return {}
except json.JSONDecodeError:
print(f"错误:配置文件 {path} 格式不正确")
return {}
def write_config(path: str, data: dict) -> None:
"""将字典对象写入配置文件"""
try:
with open(path, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
except IOError as e:
print(f"错误:无法写入配置文件:{e}")
🎉 这就是 Cline 比 Copilot 强的地方------Copilot 只给建议,Cline 直接改你的文件。
第 14 步:功能三------生成单元测试
选中 read_config 函数,在 Cline 中输入:
为这个函数生成完整的单元测试,使用 pytest 框架。
要求覆盖:
1. 正常读取场景
2. 文件不存在场景
3. JSON 格式错误场景
Cline 会自动在 test/ 目录下创建 test_main.py:
python
# test/test_main.py
import pytest
import json
import tempfile
import os
from src.main import read_config
def test_read_config_normal():
"""测试正常读取配置文件"""
with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.json') as f:
json.dump({"name": "test", "version": 1}, f)
temp_path = f.name
result = read_config(temp_path)
assert result == {"name": "test", "version": 1}
os.unlink(temp_path)
def test_read_config_not_found():
"""测试文件不存在场景"""
result = read_config('non_existent.json')
assert result == {}
def test_read_config_invalid_json():
"""测试 JSON 格式错误场景"""
with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.json') as f:
f.write('{invalid json}')
temp_path = f.name
result = read_config(temp_path)
assert result == {}
os.unlink(temp_path)
第 15 步:功能四------代码补全(实时预测)
在 main.py 中,找到一个函数还没写完的地方,比如:
python
def calculate_total(items):
# 在这里停留 2 秒,Cline 会自动提示
Cline 会弹出补全建议(灰色半透明文字):
total = sum(item['price'] * item['quantity'] for item in items)
return round(total, 2)
按 Tab 接受补全。
💡 补全触发时机:
- 输入
def后等待 1 秒- 输入
#注释后等待 1 秒- 输入函数调用的一半后等待 1 秒
第 16 步:功能五------项目级理解(最强大)
在 Cline 侧边栏中输入(不需要选中任何代码):
我的项目是做什么的?有哪些函数?它们之间的关系是什么?
Cline 会做什么:
- 自动读取项目中的所有文件(
main.py、test_main.py、README.md) - 分析项目结构
- 生成项目说明
AI 的回答:
你的项目是一个配置文件管理工具。
核心函数:
read_config:读取配置文件write_config:写入配置文件get_value:获取配置项set_value:设置配置项print_config:打印配置函数调用关系:
main()→read_config()→print_config()→set_value()→write_config()建议改进:
- 添加日志模块
- 使用
argparse支持命令行参数- 添加配置校验逻辑
第五阶段:进阶技巧(25 分钟)
第 17 步:自定义系统提示词
Cline 允许你设置"系统提示词"------告诉 AI 你的编码风格和偏好。
在 Cline 侧边栏底部,点击「Settings」→「System Prompt」,填入:
你是一个 Python 高级开发工程师,帮我写代码时遵循以下规则:
1. 使用 Python 3.10+ 语法(类型注解、match-case、海象运算符)
2. 严格遵循 PEP 8 规范
3. 所有函数必须有 docstring(Google 风格)
4. 变量名使用 snake_case,类名使用 PascalCase
5. 优先使用标准库,避免过度依赖第三方包
6. 错误处理使用具体的异常类型,不要用 bare except
保存后,Cline 的所有回答都会遵循这些规则。
第 18 步:接入多个模型(让 AI 互相评审代码)
Cline 支持同时配置多个模型,你可以:
- 写代码 时用
DeepSeek-Coder(专攻代码) - 解释代码 时用
Qwen2.5(中文能力强) - 重构代码 时用
DeepSeek-V3(推理能力强)
切换模型:点击 Cline 侧边栏顶部的模型名称,选择你想用的。
高级玩法: 让两个模型"互审代码"------
# 第一步:用 DeepSeek-Coder 写代码
(选中代码,让 AI 生成)
# 第二步:切换到 Qwen2.5,输入:
请审查这段代码的:
1. 逻辑错误
2. 边界条件处理
3. 性能问题
4. 代码风格问题
第 19 步:快捷键配置(效率翻倍)
在 VS Code 的 keybindings.json 中添加:
json
// 打开方式:Ctrl+Shift+P → "Preferences: Open Keyboard Shortcuts (JSON)"
[
{
"key": "Ctrl+Shift+L",
"command": "cline.openSidebar"
},
{
"key": "Ctrl+Shift+E",
"command": "cline.explainCode"
},
{
"key": "Ctrl+Shift+R",
"command": "cline.refactorCode"
},
{
"key": "Ctrl+Shift+T",
"command": "cline.generateTests"
}
]
现在你可以:
Ctrl+Shift+L:打开 Cline 侧边栏Ctrl+Shift+E:解释选中代码Ctrl+Shift+R:重构选中代码Ctrl+Shift+T:为选中函数生成单测
第 20 步:结合 Docker 容器开发(真实项目必备)
如果你的项目需要在 Docker 容器中运行,Cline 也支持!
场景: 你的项目依赖特定的 Python 版本或系统库,本地环境不满足。
解决方案: 让 Cline 在 Docker 容器中执行代码。
在 Cline 设置中,启用「Execute in Docker」:
dockerfile
# 项目根目录创建 Dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "src/main.py"]
在 Cline 中输入:
在 Docker 容器中运行我的项目,并告诉我输出结果。
Cline 会自动:
- 构建 Docker 镜像
- 启动容器
- 运行你的代码
- 把输出返回给你
第六阶段:真实项目演练(30 分钟)
第 21 步:创建一个 Flask Web 项目
在 ai-coding-workspace 下创建 flask-demo/ 项目:
bash
mkdir -p flask-demo/{src,test,templates,static}
touch flask-demo/src/app.py
touch flask-demo/requirements.txt
在 requirements.txt 中写入:
Flask>=3.0
pytest>=8.0
第 22 步:让 Cline 帮你写 Flask 应用
在 Cline 侧边栏中输入:
创建一个 Flask 应用,包含以下功能:
1. GET /api/items - 返回所有物品列表(从内存数据库)
2. POST /api/items - 创建新物品
3. GET /api/items/<id> - 获取单个物品
4. PUT /api/items/<id> - 更新物品
5. DELETE /api/items/<id> - 删除物品
要求:
- 使用 Flask 的 jsonify
- 添加详细的注释
- 包含错误处理
Cline 会生成: src/app.py
python
from flask import Flask, jsonify, request
app = Flask(__name__)
# 内存数据库(模拟)
items = [
{"id": 1, "name": "笔记本电脑", "price": 5999},
{"id": 2, "name": "耳机", "price": 299},
]
@app.route('/api/items', methods=['GET'])
def get_items():
"""获取所有物品"""
return jsonify({"items": items})
@app.route('/api/items', methods=['POST'])
def create_item():
"""创建新物品"""
data = request.get_json()
if not data or 'name' not in data:
return jsonify({"error": "Missing 'name' field"}), 400
new_item = {
"id": items[-1]['id'] + 1 if items else 1,
"name": data['name'],
"price": data.get('price', 0)
}
items.append(new_item)
return jsonify(new_item), 201
# ...(其他路由省略,Cline 会帮你生成完整版)
if __name__ == '__main__':
app.run(debug=True)
第 23 步:让 Cline 生成单元测试
选中整个 app.py,输入:
为这个 Flask 应用生成完整的单元测试,使用 pytest + Flask 的 test client。
Cline 会在 test/test_app.py 中生成:
python
import pytest
from src.app import app
@pytest.fixture
def client():
app.config['TESTING'] = True
with app.test_client() as client:
yield client
def test_get_items(client):
"""测试 GET /api/items"""
response = client.get('/api/items')
assert response.status_code == 200
data = response.get_json()
assert 'items' in data
assert len(data['items']) == 2
# ...(更多测试用例)
第 24 步:让 Cline 帮你调试
运行测试:
bash
cd flask-demo
pytest test/test_app.py -v
如果测试失败,直接把错误信息复制粘贴到 Cline 中:
运行测试时报错:
============================= test session starts ==============================
collected 5 items
test/test_app.py F..F. [100%]
================================ FAILURES =================================
__________________________ test_create_item ___________________________
def test_create_item(client):
response = client.post('/api/items', json={'name': 'Test Item'})
> assert response.status_code == 201
E assert 400 == 201
E + where 400 = <Response 82 bytes [400 BAD REQUEST]>.status_code
test/test_app.py:15: AssertionError
Cline 会自动分析错误,并给出修复方案:
错误原因:你的测试发送了
json=参数,但 Flask 默认不支持。修复方法 :在
app.py顶部添加:
pythonfrom flask import request并确保
request.get_json()被正确调用。
第七阶段:常见问题与排错(15 分钟)
Q1:Cline 侧边栏打不开怎么办?
A: 按 Ctrl+Shift+P,输入 Cline: Focus on Sidebar。
如果还不行,尝试:
- 重启 VS Code
- 重新安装 Cline 插件
- 检查 VS Code 版本是否 ≥ 1.85.0
Q2:DeepSeek API 调用失败(401 Unauthorized)?
A: 三个可能原因:
- API Key 填错了 → 重新粘贴 Key(注意前后不要有空格)
- 账户余额不足 → 登录 platform.deepseek.com 查看余额
- 模型名称填错了 → 应该是
deepseek-chat或deepseek-coder
Q3:Ollama 本地模型运行很慢?**
A: 正常现象,本地模型比云端 API 慢 5-10 倍。
加速方案:
- 换更小的模型(
deepseek-coder:1.3b比6.7b快 3 倍) - 开启 GPU 加速(需要 NVIDIA 显卡 + 安装 CUDA)
- 升级内存(32GB 比 16GB 快很多)
Q4:Cline 改错了我的代码怎么办?**
A: VS Code 内置了 Git 版本控制。
每次 Cline 修改文件前,先按 Ctrl+Shift+G 打开源代码管理,点击「+」暂存更改。
如果 AI 改错了,右键文件 →「撤消上次提交」。
最佳实践: 每次让 Cline 大改之前,先 git commit 一次。
Q5:如何让 Cline 理解我的项目结构?**
A: 在项目根目录创建一个 CLINE.md 文件(类似 README.md),写入:
markdown
# 项目说明
## 项目简介
这是一个 Flask 后端 API 项目,提供物品管理功能。
## 目录结构
- `src/`:源代码
- `test/`:单元测试
- `templates/`:Jinja2 模板
- `static/`:静态文件
## 编码规范
- 使用 Python 3.12+ 语法
- 所有 API 返回 JSON 格式
- 错误处理使用 HTTP 状态码
## 常用命令
- 运行项目:`python src/app.py`
- 运行测试:`pytest test/ -v`
- 代码检查:`flake8 src/`
Cline 每次对话时,会自动读取 CLINE.md,从而"理解"你的项目。
完整工具链总结
┌──────────────────────────────────────────────────────────┐
│ 你的开发环境 │
│ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ VS Code │ │ Cline 插件 │ │
│ │ (编辑器) │ ←──→ │ (AI 编程助手) │ │
│ └──────────────┘ └──────────────────┘ │
│ ↓ │
│ ┌──────────────────────────────────────┐ │
│ │ 模型后端(三选一) │ │
│ │ ① DeepSeek API(推荐,便宜) │ │
│ │ ② Ollama 本地(隐私) │ │
│ │ ③ OpenAI API(贵但强) │ │
│ └──────────────────────────────────────┘ │
│ ↓ │
│ ┌──────────────────────────────────────┐ │
│ │ 你的项目代码 │ │
│ │ ↕ AI 帮你写/改/测/解释 ↗ │ │
│ └──────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
总结:你学到了什么?
| 知识点 | 掌握程度 |
|---|---|
| Cline 插件安装与配置 | ✅ |
| DeepSeek API 接入 | ✅ |
| Ollama 本地模型配置 | ✅ |
| 代码解释(选中即问) | ✅ |
| 代码重构(AI 直接改文件) | ✅ |
| 生成单元测试 | ✅ |
| 实时代码补全 | ✅ |
| 项目级理解(全项目上下文) | ✅ |
| 自定义系统提示词 | ✅ |
| 多模型切换 | ✅ |
| 快捷键配置 | ✅ |
| Docker 容器开发集成 | ✅ |
| Flask 实战项目 | ✅ |
下一步探索
学会 Cline 之后,可以继续探索:
- 🔥 Cline + RAG:让 AI 检索你的私有技术文档后再写代码
- 🔥 Cline + MCP:让 AI 调用数据库、API、Git 等外部工具
- 🔥 Cline + 多模型评审:让 GPT-4o、Claude、DeepSeek 互相评审代码
- 🔥 Cline + 自动化测试:提交代码前,让 AI 自动跑测试并修复失败的用例
- 🔥 从 Cline 到 Cursor:如果团队愿意付费,Cursor 的多模型切换更流畅
💬 看完有收获?点个赞收藏一下吧!有问题欢迎评论区交流~
🔖 相关教程:
- 《保姆级教程:从零手写一个 RAG 系统》
- 《保姆级教程:手把手搭建 MCP 服务器》
- 《保姆级教程:零成本在本地跑 AI 大模型》