-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path1.html
More file actions
276 lines (276 loc) · 20.2 KB
/
Copy path1.html
File metadata and controls
276 lines (276 loc) · 20.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="CodeClub - OpenCode 简介" />
<meta name="author" content="Jackson" />
<title>OpenCode 简介 - CodeClub</title>
<link rel="icon" type="image/x-icon" href="../../img/logo.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<link rel="stylesheet" href="../../css/main.css" />
<link rel="stylesheet" href="../../css/dark-mode.css" />
<link rel="stylesheet" href="../../css/mobile-optimizations.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/12.0.0/marked.min.js"></script>
<style>
.tutorial-page {
max-width: 1200px;
margin: 70px auto 40px;
padding: 0 20px;
display: flex;
gap: 20px;
}
.tutorial-sidebar {
width: 240px;
flex-shrink: 0;
position: sticky;
top: 70px;
max-height: calc(100vh - 90px);
overflow-y: auto;
background: var(--bg-secondary, #fff);
border-radius: 8px;
padding: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.tutorial-sidebar h3 {
font-size: 15px;
margin: 0 0 12px;
color: var(--text-primary, #1a1a2e);
padding-bottom: 8px;
border-bottom: 2px solid var(--primary, #3b82f6);
}
.tutorial-sidebar a {
display: block;
padding: 5px 8px;
color: var(--text-secondary, #666);
text-decoration: none;
font-size: 13px;
border-radius: 4px;
line-height: 1.4;
}
.tutorial-sidebar a:hover {
background: var(--primary, #3b82f6);
color: #fff;
}
.tutorial-sidebar a.active {
background: var(--primary, #3b82f6);
color: #fff;
font-weight: 600;
}
.tutorial-main {
flex: 1;
min-width: 0;
}
.tutorial-article {
background: var(--bg-secondary, #fff);
border-radius: 8px;
padding: 32px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.tutorial-article h1 {
font-size: 26px;
margin-bottom: 16px;
color: var(--text-primary, #1a1a2e);
border-bottom: 2px solid var(--primary, #3b82f6);
padding-bottom: 12px;
}
.markdown-body {
font-size: 15px;
line-height: 1.8;
color: var(--text-secondary, #333);
}
.markdown-body h1 {
font-size: 24px;
border-bottom: 1px solid var(--border, #e5e7eb);
padding-bottom: 8px;
}
.markdown-body h2 {
font-size: 20px;
border-bottom: 1px solid var(--border, #e5e7eb);
padding-bottom: 6px;
}
.markdown-body h3 {
font-size: 17px;
}
.markdown-body pre {
background: #1e1e2e;
color: #cdd6f4;
padding: 16px;
border-radius: 8px;
overflow-x: auto;
}
.markdown-body code {
font-family: 'Fira Code', 'Cascadia Code', monospace;
font-size: 14px;
}
.markdown-body p code {
background: #f1f5f9;
padding: 2px 6px;
border-radius: 4px;
color: #e83e8c;
}
.markdown-body blockquote {
border-left: 4px solid var(--primary, #3b82f6);
padding: 12px 20px;
margin: 16px 0;
background: #f8fafc;
border-radius: 0 8px 8px 0;
}
.markdown-body img {
max-width: 100%;
border-radius: 8px;
}
.markdown-body table {
border-collapse: collapse;
width: 100%;
margin: 16px 0;
}
.markdown-body table th,
.markdown-body table td {
border: 1px solid var(--border, #e5e7eb);
padding: 8px 12px;
text-align: left;
}
.markdown-body table th {
background: var(--bg-primary, #f8fafc);
font-weight: 600;
}
.markdown-body table tr:nth-child(2n) {
background: var(--bg-primary, #f8fafc);
}
.markdown-body ul,
.markdown-body ol {
padding-left: 24px;
margin: 12px 0;
}
.markdown-body li {
margin: 4px 0;
}
.markdown-body hr {
border: none;
border-top: 1px solid var(--border, #e5e7eb);
margin: 24px 0;
}
.markdown-body a {
color: var(--primary, #3b82f6);
text-decoration: none;
}
.markdown-body a:hover {
text-decoration: underline;
}
.page-navigation {
display: flex;
justify-content: space-between;
margin-top: 24px;
padding-top: 16px;
border-top: 1px solid var(--border, #e5e7eb);
}
.page-nav-link {
color: var(--primary, #3b82f6);
text-decoration: none;
font-weight: 500;
font-size: 14px;
}
.page-nav-link:hover {
text-decoration: underline;
}
.source-link {
margin-top: 16px;
font-size: 13px;
color: var(--text-secondary, #999);
}
.source-link a {
color: var(--primary, #3b82f6);
}
@media (max-width: 768px) {
.tutorial-page {
flex-direction: column;
}
.tutorial-sidebar {
width: 100%;
position: static;
max-height: 200px;
}
}
</style>
</head>
<body>
<nav class="navbar">
<div class="navbar-container">
<a class="navbar-brand" href="../../index.html">
<img src="../../img/logo.png" alt="CodeClub" width="32" height="32" />
<span>CodeClub</span>
</a>
<button class="mobile-menu-toggle" aria-label="切换导航菜单"><span></span><span></span><span></span></button>
<ul class="navbar-nav">
<li><a class="nav-link" href="../../index.html">首页</a></li>
<li><a class="nav-link" href="../../nav.html">网址导航</a></li>
<li><a class="nav-link" href="../../blog/">博客</a></li>
<li><a class="nav-link" href="../../wiki/index.html" target="_blank">WiKi</a></li>
<li><a class="nav-link active" href="../index.html">教程</a></li>
<li><a class="nav-link" href="../../book.html">图书</a></li>
<li><a class="nav-link" href="../../contact.html">联系我</a></li>
<li><a class="nav-link" href="../../about.html">关于我</a></li>
</ul>
</div>
</nav>
<div class="tutorial-page">
<div class="tutorial-sidebar">
<h3>📖 OpenCode</h3>
<a href="0.html">OpenCode 教程</a>
<a href="1.html" class="active">OpenCode 简介</a>
<a href="2.html">OpenCode 安装</a>
<a href="3.html">OpenCode 配置</a>
<a href="4.html">OpenCode 第一次使用</a>
<a href="5.html">OpenCode VSCode</a>
<a href="6.html">OpenCode 终端界面</a>
<a href="7.html">OpenCode CLI 使用</a>
<a href="8.html">OpenCode Web 使用</a>
<a href="9.html">OpenCode GitHub</a>
<a href="10.html">OpenCode GitLab</a>
<a href="11.html">OpenCode 工具</a>
<a href="12.html">OpenCode 规则</a>
<a href="13.html">OpenCode 代理</a>
<a href="14.html">OpenCode 主题</a>
<a href="15.html">OpenCode 快捷键</a>
<a href="16.html">OpenCode 自定义命令</a>
<a href="17.html">OpenCode 格式化工具</a>
<a href="18.html">OpenCode 权限配置</a>
<a href="19.html">OpenCode LSP 服务器配置</a>
<a href="20.html">OpenCode MCP 服务器配置</a>
<a href="21.html">OpenCode Skills</a>
<a href="22.html">OpenCode 自定义工具</a>
</div>
<div class="tutorial-main">
<div class="tutorial-article">
<div class="markdown-body" id="md-content"></div>
<div class="page-navigation">
<a href="0.html" class="page-nav-link">← OpenCode 教程</a>
<a href="2.html" class="page-nav-link">OpenCode 安装 →</a>
</div>
<div class="source-link">原文来源:<a href="https://www.runoob.com" target="_blank">菜鸟教程</a></div>
</div>
</div>
</div>
<footer class="footer">
<div class="footer-content"><p>© 2024 CodeClub. All rights reserved.</p></div>
</footer>
<script src="../../js/dark-mode.js"></script>
<script src="../../js/mobile-menu.js"></script>
<script>
const md = `# OpenCode 简介\n\n\nOpenCode 是一款开源 AI 编程协作工具,定位为基于命令行(CLI)的 AI 编程 Agent,区别于传统聊天式编程工具,专注于深度参与项目全流程开发。\n\n\nOpenCode 与仅在聊天窗口生成零散代码不同,OpenCode 的核心目标是深度理解你的整个项目,全程参与真实的编码、修改与重构过程,成为可落地的开发搭档。\n\n\nOpenCode 并非简单的代码生成器,而是能读取项目、理解上下文、自主执行开发任务的 AI 编程助手,核心定位可概括为:运行在终端中的 AI 程序员助手。\n\n\n\n\n\n\nOpenCode 脱离网页聊天框的局限,直接在终端(Terminal)中运行,核心能力包括:\n\n\n\n\n\n- \n 读取整个项目代码:全面覆盖项目文件,无需手动粘贴代码片段\n\n\n \n\n- \n 理解文件依赖关系:精准识别模块、函数间的关联,把握项目整体结构\n\n\n \n\n- \n 直接修改代码文件:无需人工介入,根据指令完成代码编辑\n\n\n \n\n- \n 执行开发命令:支持安装依赖、运行测试等操作,打通开发全流程\n\n\n \n\n- \n 迭代优化代码:根据命令执行结果,自动调整优化方案,提升代码质量\n\n\n \n\n\n从核心能力来看,OpenCode 具备三大显著特征:\n\n\n\n\n\n- \n 上下文感知:突破单文件理解局限,深度掌握整个项目的结构与逻辑\n\n\n \n\n- \n 执行能力:不止提供代码建议,更能直接修改文件、执行命令,落地开发动作\n\n\n \n\n- \n 工程化导向:聚焦代码规范、结构合理性、可维护性及测试覆盖,贴合实际开发需求\n\n\n \n\n\n\n\n用通俗的比喻,可清晰区分 OpenCode 与其他编程工具的差异:\n\n\n\n\n\n- \n 聊天式 AI:如同技术顾问,你提供代码后它给出建议,所有修改需手动完成。\n\n\n \n\n- \n 代码补全工具:类似智能输入法,仅辅助补全当前代码片段,无项目级处理能力。\n\n\n \n\n- \n OpenCode:如同并肩开发的搭档,可自主读取项目、修改代码、执行命令,全程参与开发流程。\n\n\n \n\n\n\n\n---\n\n\n\n## OpenCode 能做什么?\n\nOpenCode 的核心能力可归纳为四大类,覆盖开发全流程:\n\n\n\n\n### 1、代码理解与解释\n\n\n\n针对项目中的代码疑问,可直接向 OpenCode 提问,它会结合整个项目上下文给出精准解答,而非局限于单段代码:\n\n\n\n\n\n- \n 这个函数的核心功能是什么?\n\n\n \n\n- \n 此处报错的原因及解决方案是什么?\n\n\n \n\n- \n 这段代码的性能瓶颈在哪里,如何优化?\n\n\n \n\n\n\n\n### 2、多文件上下文分析\n\n\nOpenCode 能穿透单个文件,全面掌握项目的关联逻辑,具体包括:\n\n\n\n\n\n- \n 函数的完整调用链路,清晰梳理执行流程\n\n\n \n\n- \n 模块之间的依赖关系,规避依赖冲突风险\n\n\n \n\n- \n 项目的整体结构的,快速把握架构设计\n\n\n \n\n\n\n\n### 3、工程级代码修改\n\n\n无需手动编辑,直接向 OpenCode 下达修改指令,它会自动完成代码调整,例如:\n\n\n\n\n\n- \n 将项目中所有 var 声明替换为 let,统一代码规范\n\n\n \n\n- \n 为所有接口添加统一的错误处理逻辑,提升鲁棒性\n\n\n \n\n- \n 将指定函数拆分为多个独立模块,优化代码结构\n\n\n \n\n\n\n\n### 4、执行开发任务\n\n\n这是 OpenCode 最核心的优势,可自主执行各类开发操作,实现"指令下达-动作执行-结果优化"的闭环:\n\n\n\n\n\n- \n 安装项目依赖(支持 npm / pip 等主流包管理工具)\n\n\n \n\n- \n 启动项目,实时反馈运行状态\n\n\n \n\n- \n 执行测试用例,定位测试不通过问题\n\n\n \n\n- \n 根据执行结果自动优化代码,提升开发效率\n\n\n \n\n\n\n---\n\n\n\n## OpenCode 不能做什么?\n\n\n\n\n\n- \n 无法替代人类做出最终的技术架构与设计决策\n\n\n \n\n- \n 不能保证生成或修改的代码完全无 Bug,需人工校验\n\n\n \n\n- \n 无法理解未明确说明的业务逻辑,需清晰传达需求\n\n\n \n\n- \n 不适合完全脱离人类干预的全自动开发,需协同配合\n\n\n \n\n\n\n\n正确的使用方式是:让 OpenCode 提供高质量开发方案,结合人工判断校验结果,实现高效协作。\n\n\n\n\n\n\n---\n\n\n\n## OpenCode 的核心价值\n\n\n**核心理念:**协作,而不是替代\n\n\n\n\n\n- \n 人负责:明确开发目标、制定设计方案、做出关键判断\n\n\n \n\n- \n AI 负责:执行繁琐开发操作、分析代码问题、处理重复工作\n\n\n \n\n\n**对新手:**降低学习门槛,快速入门编程\n\n\n\n\n\n- \n 用通俗语言解释复杂代码逻辑,打破理解壁垒\n\n\n \n\n- \n 快速定位代码错误并给出解决方案,减少试错成本\n\n\n \n\n- \n 提供规范写法建议,帮助养成良好编程习惯\n\n\n \n\n\n**对独立开发者:**提升开发效率,减轻工作负担\n\n\n\n\n\n- \n 快速搭建项目基础功能,缩短开发周期\n\n\n \n\n- \n 自动生成测试用例,提升代码可靠性\n\n\n \n\n- \n 优化旧代码、重构冗余逻辑,提升项目可维护性\n\n\n \n\n\n**对团队:**降低协作成本,提升整体效能\n\n\n\n\n\n- \n 统一代码风格与规范,减少 Code Review 成本\n\n\n \n\n- \n 辅助完成 Code Review,快速识别潜在问题\n\n\n \n\n- \n 帮助新人快速熟悉项目结构,加快上手速度\n\n\n \n\n\n\n\n---\n\n\n\n## OpenCode 适合哪些人?\n\n\n编程新手:\n\n\n\n\n\n- 需要理解代码逻辑、学习编程规范,快速入门开发\n\n\n独立开发者:\n\n\n\n\n\n- 需要高效完成项目开发与迭代,减轻重复工作负担\n\n\n工程师(前端 / 后端 / 全栈):\n\n\n\n\n\n- \n 希望提升编码效率,减少繁琐操作耗时\n\n\n \n\n- \n 需要快速理解复杂项目结构,降低接手成本\n\n\n \n\n\n技术负责人:\n\n\n\n\n\n- \n 希望提升团队整体开发效率,把控项目进度\n\n\n \n\n- \n 需要规范团队代码质量,降低维护成本\n\n\n \n\n\n不适合的场景:\n\n\n\n\n\n- \n 完全不想学习编程,期望 AI 全自动生成完整项目\n\n\n \n\n- \n 涉及高度敏感代码(如隐私数据、核心算法)的开发场景\n\n\n \n\n\n\n\n---\n\n\n\n## OpenCode 和其他 AI 编程工具的区别\n\n\n\n### OpenCode vs ChatGPT/DeepSeek\n\n\n\n\n\n维度\nChatGPT/DeepSeek\nOpenCode\n\n\n\n\n使用方式\n网页聊天\n命令行\n\n\n代码理解\n需要粘贴\n自动读取项目\n\n\n文件修改\n手动操作\n自动修改\n\n\n\n\n\n### OpenCode vs Copilot / Cursor\n\n\n\n\n\n维度\nCopilot / Cursor\nOpenCode\n\n\n\n\n工作方式\n编辑器内补全\n命令行执行任务\n\n\n能力重点\n写代码\n完成任务\n\n\n适用场景\n编码过程\n项目级开发\n\n\n\n\n**总结:**\n\n\n\n\n\n\n- Copilot / Cursor:写代码更快\n\n- ChatGPT:回答问题更强\n\n- OpenCode:让 AI 直接参与开发\n\n\n\n\n\n\n**一句话总结:OpenCode 的核心价值,不是帮你写代码,而是帮你完成开发任务。**\n\n\n\n \n \n \n \n \n\n \n \n [ OpenCode 安装](http://www.runoob.com/opencode/opencode-install.html)\n \n\n \n \n \n \n \n\n\n\n\n \n \n \n### 点我分享笔记\n\n \n \n \n \n \n \n [取消](https://www.runoob.comjavascript:;)\n\n\n \n \n \n \n \n \n\n\n 分享笔记\n \n \n \n \n \n \n\n 昵称昵称 (必填)\n 邮箱邮箱 (必填)\n 引用地址引用地址\n \n\n \n \n \n \n\n \n \n\n\n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n 在线实例\n\n\n ·[HTML 实例](https://www.runoob.com/html/html-examples.html)\n\n\n ·[CSS 实例](https://www.runoob.com/css/css-examples.html)\n\n\n ·[JavaScript 实例](https://www.runoob.com/js/js-examples.html)\n\n\n ·[Ajax 实例](https://www.runoob.com/ajx/ajax-examples.html)\n\n\n ·[jQuery 实例](https://www.runoob.com/jquery/jquery-examples.html)\n\n\n ·[XML 实例](https://www.runoob.com/xml/xml-examples.html)\n\n\n ·[Java 实例](https://www.runoob.com/java/java-examples.html)\n\n\n\n\n\n 字符集&工具\n\n\n · [HTML 字符集设置](https://www.runoob.com/charsets/html-charsets.html)\n\n\n · [HTML ASCII 字符集](https://www.runoob.com/tags/html-ascii.html)\n\n\n · [JS 混淆/加密](https://www.jyshare.com/front-end/6939/)\n\n\n · [PNG/JPEG 图片压缩](https://www.jyshare.com/front-end/6232/)\n\n\n · [HTML 拾色器](https://www.runoob.com/tags/html-colorpicker.html)\n\n\n · [JSON 格式化工具](https://www.jyshare.com/front-end/53)\n\n\n · [随机数生成器](https://www.jyshare.com/front-end/6680/)\n\n\n\n\n 最新更新\n\n\n ·\n [\n OpenCode 自定义... ](http://www.runoob.com/opencode/opencode-custom-tools.html)\n\n\n ·\n [\n OpenCode Skills ](http://www.runoob.com/opencode/opencode-skills.html)\n\n\n ·\n [\n OpenCode MCP 服... ](http://www.runoob.com/opencode/opencode-mcp.html)\n\n\n ·\n [\n OpenCode LSP 服... ](http://www.runoob.com/opencode/opencode-lsp.html)\n\n\n ·\n [\n OpenCode 权限配置 ](http://www.runoob.com/opencode/opencode-permissions.html)\n\n\n ·\n [\n OpenCode 格式化... ](http://www.runoob.com/opencode/opencode-formatter.html)\n\n\n ·\n [\n OpenCode 自定义... ](http://www.runoob.com/opencode/opencode-commands.html)\n\n\n\n\n 站点信息\n\n\n ·\n [意见反馈](https://www.runoob.commailto:admin@runoob.com)\n\n\n ·\n [免责声明](https://www.runoob.com/disclaimer)\n\n\n ·\n [关于我们](https://www.runoob.com/aboutus)\n\n\n ·\n [文章归档](https://www.runoob.com/archives)\n\n\n\n\n\n\n\n **关注微信**\n\n\n\n \n\n\n\n\n\n\n Copyright © 2013-2026 **[菜鸟教程](https://www.runoob.com//www.runoob.com/)** \n **[runoob.com](https://www.runoob.com//www.runoob.com/)** All Rights Reserved. 备案号:[闽ICP备15012807号-1](https://beian.miit.gov.cn/)\n\n\n\n [ ](https://www.runoob.comjavascript:void(0))\n [](https://www.runoob.comjavascript:void(0))\n [](https://www.runoob.comjavascript:void(0))\n\n\n\n#### 微信关注\n\n `;
document.getElementById('md-content').innerHTML = marked.parse(md);
</script>
</body>
</html>