VS Code 中整合 Continue 插件与多平台 DeepSeek 模型,全面提升编程体验
之前介绍了通过 VS Code 中的 Cline 插件,实现类似于 Cursor Composer 模式的多文件批量修改,进一步辅助提升编程效率,可以参考:
有时我们需要自己编写代码,可以通过 Continue 插件,结合 DeepSeek 等模型,实现智能代码补全、代码生成和重构等功能。在完成本文之后,也可以 Cline + Continue 一起使用。
Continue 介绍
VS Code 中的 Continue 插件是一款功能强大的开源 AI 编程辅助工具,旨在通过 AI 技术提升开发者的编程效率和代码质量。
主要功能包括:
智能代码补全:基于当前代码上下文,自动建议代码片段,支持单行和整段代码的补全。
代码生成与重构:根据自然语言描述生成代码,或对现有代码进行重构和优化。
错误修复与优化:检测并修复代码中的错误,同时提供优化建议。
自然语言交互:开发者可以通过自然语言与 Continue 交流,提出问题或指令,Continue 将根据上下文提供相应的帮助。
多语言支持:支持多种编程语言,如 JavaScript、TypeScript、Python、Java 等,适用于多种开发场景。
自定义配置:用户可以根据需求配置模型、上下文提供者和斜杠命令等。
适用场景:
快速原型开发:通过自然语言描述功能需求,快速生成代码。
代码审查与优化:自动检测错误并提供优化建议,提高代码质量。
文档生成与注释:自动生成文档注释或代码片段。
多语言支持:支持多种编程语言,满足不同开发需求。
支持的模型:
在线模型:如 OpenAI 的 GPT-4、GPT-3.5、DeepSeek 等。
本地模型:如 Ollama、Qwen2.5-Coder 等,需在本地部署后配置。
配置文件:用户可以通过
config.json
文件自定义模型名称、提供商和 API 密钥等信息
VS Code 中安装 Continue 插件
Continue 插件的安装和配置过程非常简单:
打开 VS Code,进入扩展市场(快捷键 Ctrl/Command+Shift+X)。
搜索“Continue”,点击安装。
安装完成后,进入 Continue 的配置界面(可通过命令面板或点击插件图标进入)。
配置模型:用户可以选择在线模型(如 OpenAI 的 GPT-4、DeepSeek 等)或本地模型(如 Ollama、Qwen2.5-Coder)。
自定义设置:包括快捷键、上下文提供者和斜杠命令等
配置 DeepSeek
01、使用云厂商
当前 DeepSeek 官网无法购买 API Token,可以先使用硅基流动或者阿里云百炼等平台进行平替,在配置上可以进行平滑替换。
硅基流动:
阿里百炼:
因为是第三方模型,参考上图,打开 config.json
文件进行配置,注意修改成你的 apiKey:
{
"models": [
{
"title": "deepseek-ai/DeepSeek-R1",
"model": "deepseek-ai/DeepSeek-R1",
"contextLength": 128000,
"provider": "openai",
"apiBase": "https://api.siliconflow.cn/v1",
"apiKey": "sk-xxxxxxx"
},
{
"title": "deepseek-ai/DeepSeek-V3",
"model": "deepseek-ai/DeepSeek-V3",
"contextLength": 128000,
"provider": "openai",
"apiBase": "https://api.siliconflow.cn/v1",
"apiKey": "sk-xxxxxxx"
},
{
"title": "deepseek-r1",
"model": "deepseek-r1",
"contextLength": 128000,
"provider": "openai",
"apiBase": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "sk-xxxxxx"
},
{
"title": "deepseek-v3",
"model": "deepseek-v3",
"contextLength": 128000,
"provider": "openai",
"apiBase": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "sk-xxxxxx"
}
],
"customCommands": [
{
"name": "test",
"prompt": "{{{ input }}}\n\n针对所选代码,编写一组全面的单元测试。它应包括设置(setup)、运行检查正确性的测试,包括重要的边缘情况,以及拆卸(teardown)。确保测试是完整且复杂的。仅将测试作为聊天输出,不要编辑任何文件。",
"description": "为所选代码编写单元测试"
},
{
"name": "explain",
"prompt": "{{{ input }}}\n\n详细解释所选代码。详细说明其功能、用途和工作原理。使用示例来说明您的解释。",
"description": "解释代码"
},
{
"name": "fix",
"prompt": "{{{ input }}}\n\n分析并修复代码中的错误。提供详细的解释和解决方案,包括但不限于语法错误、逻辑错误或性能问题。确保您的解决方案是正确的,并且能够解决所有已知的问题。",
"description": "修复代码"
},
{
"name": "check",
"prompt": "{{{ input }}}\n\n请阅读突出显示的代码并检查是否有任何错误。您应该查找以下内容并保持高度警惕:\n- 语法错误\n- 逻辑错误\n- 安全漏洞\n- 性能问题\n- 任何其他看似错误的内容\n\n一旦您发现错误,请尽可能清楚地解释,但不要使用多余的词语。例如,不要说“我认为第 5 行有一个语法错误”,而应该说“第 5 行有语法错误”。针对发现的每个错误,给出一个要点作为答案。",
"description": "检查代码是否存在错误"
}
],
"tabAutocompleteOptions": {
"template": "Please teach me what I should write in the `hole` tag, but without any further explanation and code backticks, i.e., as if you are directly outputting to a code editor. It can be codes or comments or strings. Don't provide existing & repetitive codes. If the provided prefix and suffix contain incomplete code and statement, your response should be able to be directly concatenated to the provided prefix and suffix. Also note that I may tell you what I'd like to write inside comments. \n{{{prefix}}}<hole></hole>{{{suffix}}}\n\nPlease be aware of the environment the hole is placed, e.g., inside strings or comments or code blocks, and please don't wrap your response in ```. You should always provide non-empty output.\n",
"maxPromptTokens": 2048,
"prefixPercentage": 0.85,
"maxSuffixPercentage": 0.15,
"debounceDelay": 500,
"multilineCompletions": "always",
"slidingWindowPrefixPercentage": 0.75,
"slidingWindowSize": 350,
"maxSnippetPercentage": 0.6,
"recentlyEditedSimilarityThreshold": 0.3,
"useCache": true,
"onlyMyCode": false,
"useOtherFiles": false,
"useRecentlyEdited": true,
"recentLinePrefixMatchMinLength": 7
},
"tabAutocompleteModel": [
{
"title": "deepseek-v3",
"provider": "openai",
"model": "deepseek-v3",
"contextLength": 128000,
"apiBase": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "sk-xxxxxxx",
"useLegacyCompletionsEndpoint": false
}
],
"contextProviders": [
{
"name": "code",
"params": {
"nRetrieve": 25,
"nFinal": 5,
"useReranking": true
},
"useLegacyCompletionsEndpoint": false
},
{
"name": "docs",
"params": {}
},
{
"name": "diff",
"params": {
"nRetrieve": 25,
"nFinal": 5,
"useReranking": true
},
"useLegacyCompletionsEndpoint": false
},
{
"name": "terminal",
"params": {}
},
{
"name": "problems",
"params": {}
},
{
"name": "folder",
"params": {}
},
{
"name": "codebase",
"params": {
"nRetrieve": 25,
"nFinal": 5,
"useReranking": true
},
"useLegacyCompletionsEndpoint": false
}
],
"slashCommands": [
{
"name": "edit",
"description": "Edit selected code"
},
{
"name": "comment",
"description": "Write comments for the selected code"
},
{
"name": "share",
"description": "Export the current chat session to markdown"
},
{
"name": "cmd",
"description": "Generate a shell command"
},
{
"name": "commit",
"description": "Generate a git commit message"
}
]
}
API Key:从 https://cloud.siliconflow.cn/account/ak 中获取。
02、使用Ollama
关于如何使用 Ollama 可以参考文章:快速搭建本地大语言模型和知识库
先使用 Ollama 拉取 deepseek 模型:
ollama pull deepseek-r1:7b
验证模型是否可用:
ollama run deepseek-r1:7b
使用服务模型进行运行(如果已经启动可以不执行该命令):
ollama serve
Continue 添加 ollama 模型:
考虑到使用的速度和准确性,后续教程使用云厂商的满血版进行体验。
这时,Continue 插件的模型列表如下:
Continue 项目体验
01、验证是否联通
选择合适的模型,输入“创建一个 React 项目”,如果连接 API 成功,将会出现如下内容。
02、基于项目进行提问
和 Cline 比较类似,可以基于整个项目、文件、文件夹、代码、问题等进行提问。
03、分析文件
通过 @Files
分析代码文件。
分别从核心功能解析、潜在问题诊断、优化建议、扩展性设计、新能考量等多个方面分析文件。
04、选中代码片段
选中片段代码,使用 Command/Ctrl + L,添加到聊天框中,使用 /
弹出内置的方法,如:
explain:分析代码
test:编写单元测试
fix:修复代码问题
我们使用 explan 命令试下。
或者使用 Cmd/Ctrl + I 进入编辑模式。
Apply 同意后:
05、代码自动补全
通过 VS Code 右下角的 continue 图标,点击打开自动补全选项。
看到以上配置说明已经开启了代码自动补全,同时使用的deepseek-v3
模型,具体查看config.json
中的 tabAutocompleteModel。
接下来你就可以在 VS Code 实现自动补全代码了。使用 Tab
接受代码补全建议,ESC
拒绝代码补全,cmd/ctrl + ->
逐行接受代码建议。
代码运行:
最后
Continue 插件是一款功能全面且易于使用的 AI 编程助手,能够显著提升开发效率和代码质量。无论是快速原型开发、代码审查还是文档生成,Continue 都能提供强大的支持。其开源性和灵活性使其成为开发者不可或缺的工具之一。
相较于 Cline 消耗 Token 的数量较低,并且 Continue 还支持 Jetbrains IDEA。
欢迎关注我的公众号“Eric技术圈”,原创技术文章第一时间推送。