mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-05 00:23:10 +00:00
391 lines
14 KiB
Plaintext
391 lines
14 KiB
Plaintext
---
|
|
title: TUI
|
|
description: การใช้อินเทอร์เฟซผู้ใช้ terminal OpenCode
|
|
---
|
|
|
|
import { Tabs, TabItem } from "@astrojs/starlight/components"
|
|
|
|
OpenCode มีอินเทอร์เฟซ terminal แบบโต้ตอบหรือ TUI สำหรับการทำงานในโครงการของคุณด้วย LLM
|
|
|
|
การรัน OpenCode จะเริ่มต้น TUI สำหรับไดเร็กทอรีปัจจุบัน
|
|
|
|
```bash
|
|
opencode
|
|
```
|
|
|
|
หรือคุณสามารถเริ่มต้นสำหรับไดเร็กทอรีการทำงานเฉพาะได้
|
|
|
|
```bash
|
|
opencode /path/to/project
|
|
```
|
|
|
|
เมื่อคุณอยู่ใน TUI แล้ว คุณสามารถแจ้งด้วยข้อความได้
|
|
|
|
```text
|
|
Give me a quick summary of the codebase.
|
|
```
|
|
|
|
---
|
|
|
|
## การอ้างอิงไฟล์
|
|
|
|
คุณสามารถอ้างอิงไฟล์ในข้อความของคุณโดยใช้ `@` นี่เป็นการค้นหาไฟล์ที่ไม่ชัดเจนในไดเร็กทอรีการทำงานปัจจุบัน
|
|
|
|
:::tip
|
|
คุณยังสามารถใช้ `@` เพื่ออ้างอิงไฟล์ในข้อความของคุณได้
|
|
:::
|
|
|
|
```text "@packages/functions/src/api/index.ts"
|
|
How is auth handled in @packages/functions/src/api/index.ts?
|
|
```
|
|
|
|
เนื้อหาของไฟล์จะถูกเพิ่มในการสนทนาโดยอัตโนมัติ
|
|
|
|
---
|
|
|
|
## คำสั่งทุบตี
|
|
|
|
เริ่มข้อความด้วย `!` เพื่อรันคำสั่ง shell
|
|
|
|
```bash frame="none"
|
|
!ls -la
|
|
```
|
|
|
|
ผลลัพธ์ของคำสั่งจะถูกเพิ่มเข้าไปในการสนทนาซึ่งเป็นผลลัพธ์ของเครื่องมือ
|
|
|
|
---
|
|
|
|
## คำสั่ง
|
|
|
|
เมื่อใช้ OpenCode TUI คุณสามารถพิมพ์ `/` ตามด้วยชื่อคำสั่งเพื่อดำเนินการอย่างรวดเร็ว ตัวอย่างเช่น:
|
|
|
|
```bash frame="none"
|
|
/help
|
|
```
|
|
|
|
คำสั่งส่วนใหญ่ยังมีการผูกคีย์โดยใช้ `ctrl+x` เป็นคีย์ผู้นำ โดยที่ `ctrl+x` เป็นคีย์ผู้นำเริ่มต้น [เรียนรู้เพิ่มเติม](/docs/keybinds)
|
|
|
|
นี่คือคำสั่งสแลชที่ใช้ได้ทั้งหมด:
|
|
|
|
---
|
|
|
|
### connect
|
|
|
|
เพิ่มผู้ให้บริการให้กับ OpenCode ให้คุณเลือกจากผู้ให้บริการที่มีอยู่และเพิ่มคีย์ API
|
|
|
|
```bash frame="none"
|
|
/connect
|
|
```
|
|
|
|
---
|
|
|
|
### compact
|
|
|
|
กระชับเซสชันปัจจุบัน _นามแฝง_: `/summarize`
|
|
|
|
```bash frame="none"
|
|
/compact
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x c`
|
|
|
|
---
|
|
|
|
### details
|
|
|
|
สลับรายละเอียดการดำเนินการของเครื่องมือ
|
|
|
|
```bash frame="none"
|
|
/details
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x d`
|
|
|
|
---
|
|
|
|
### editor
|
|
|
|
เปิดตัวแก้ไขภายนอกเพื่อเขียนข้อความ ใช้ตัวแก้ไขที่ตั้งค่าไว้ในตัวแปรสภาพแวดล้อม `EDITOR` ของคุณ [เรียนรู้เพิ่มเติม](#editor-setup)
|
|
|
|
```bash frame="none"
|
|
/editor
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x e`
|
|
|
|
---
|
|
|
|
### exit
|
|
|
|
ออกจาก OpenCode _นามแฝง_: `/quit`, `/q`
|
|
|
|
```bash frame="none"
|
|
/exit
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x q`
|
|
|
|
---
|
|
|
|
### export
|
|
|
|
ส่งออกการสนทนาปัจจุบันไปยัง Markdown และเปิดในตัวแก้ไขเริ่มต้นของคุณ ใช้ตัวแก้ไขที่ตั้งค่าไว้ในตัวแปรสภาพแวดล้อม `EDITOR` ของคุณ [เรียนรู้เพิ่มเติม](#editor-setup)
|
|
|
|
```bash frame="none"
|
|
/export
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x x`
|
|
|
|
---
|
|
|
|
### help
|
|
|
|
แสดงกล่องโต้ตอบความช่วยเหลือ
|
|
|
|
```bash frame="none"
|
|
/help
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x h`
|
|
|
|
---
|
|
|
|
### init
|
|
|
|
สร้างหรืออัปเดตไฟล์ `AGENTS.md` [เรียนรู้เพิ่มเติม](/docs/rules)
|
|
|
|
```bash frame="none"
|
|
/init
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x i`
|
|
|
|
---
|
|
|
|
### models
|
|
|
|
รายการรุ่นที่มีจำหน่าย
|
|
|
|
```bash frame="none"
|
|
/models
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x m`
|
|
|
|
---
|
|
|
|
### new
|
|
|
|
เริ่มเซสชันใหม่ _นามแฝง_: `/clear`
|
|
|
|
```bash frame="none"
|
|
/new
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x n`
|
|
|
|
---
|
|
|
|
### redo
|
|
|
|
ทำซ้ำข้อความที่เลิกทำก่อนหน้านี้ ใช้ได้หลังจากใช้ `/undo` เท่านั้น
|
|
|
|
:::tip
|
|
การเปลี่ยนแปลงไฟล์ใดๆ จะถูกกู้คืนด้วย
|
|
:::
|
|
|
|
ภายในจะใช้ Git เพื่อจัดการการเปลี่ยนแปลงไฟล์ ดังนั้นโครงการของคุณ **จำเป็นต้อง
|
|
เป็นที่เก็บ Git**
|
|
|
|
```bash frame="none"
|
|
/redo
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x r`
|
|
|
|
---
|
|
|
|
### sessions
|
|
|
|
รายการและสลับระหว่างเซสชัน _นามแฝง_: `/resume`, `/continue`
|
|
|
|
```bash frame="none"
|
|
/sessions
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x l`
|
|
|
|
---
|
|
|
|
### share
|
|
|
|
แบ่งปันเซสชั่นปัจจุบัน [เรียนรู้เพิ่มเติม](/docs/share)
|
|
|
|
```bash frame="none"
|
|
/share
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x s`
|
|
|
|
---
|
|
|
|
### themes
|
|
|
|
แสดงรายการธีมที่มีอยู่
|
|
|
|
```bash frame="none"
|
|
/theme
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x t`
|
|
|
|
---
|
|
|
|
### thinking
|
|
|
|
สลับการเปิดเผยการบล็อก thinking/reasoning ในการสนทนา เมื่อเปิดใช้งาน คุณสามารถดูกระบวนการให้เหตุผลของแบบจำลองสำหรับแบบจำลองที่รองรับการคิดแบบขยาย
|
|
|
|
:::note
|
|
คำสั่งนี้ควบคุมเฉพาะว่าบล็อกการคิด **แสดง** หรือไม่ โดยไม่ได้เปิดใช้งานหรือปิดใช้งานความสามารถในการให้เหตุผลของโมเดล หากต้องการสลับความสามารถในการให้เหตุผลตามจริง ให้ใช้ `ctrl+t` เพื่อหมุนเวียนไปตามตัวแปรโมเดล
|
|
:::
|
|
|
|
```bash frame="none"
|
|
/thinking
|
|
```
|
|
|
|
---
|
|
|
|
### undo
|
|
|
|
เลิกทำข้อความสุดท้ายในการสนทนา ลบข้อความผู้ใช้ล่าสุด การตอบกลับที่ตามมาทั้งหมด และการเปลี่ยนแปลงไฟล์ใดๆ
|
|
|
|
:::tip
|
|
การเปลี่ยนแปลงไฟล์ใดๆ ที่ทำจะถูกคืนค่าด้วย
|
|
:::
|
|
|
|
ภายในจะใช้ Git เพื่อจัดการการเปลี่ยนแปลงไฟล์ ดังนั้นโครงการของคุณ **จำเป็นต้อง
|
|
เป็นที่เก็บ Git**
|
|
|
|
```bash frame="none"
|
|
/undo
|
|
```
|
|
|
|
**ผูกปุ่ม:** `ctrl+x u`
|
|
|
|
---
|
|
|
|
### unshare
|
|
|
|
ยกเลิกการแชร์เซสชันปัจจุบัน [เรียนรู้เพิ่มเติม](/docs/share#un-sharing)
|
|
|
|
```bash frame="none"
|
|
/unshare
|
|
```
|
|
|
|
---
|
|
|
|
## การตั้งค่าตัวแก้ไข
|
|
|
|
ทั้งคำสั่ง `/editor` และ `/export` ใช้ตัวแก้ไขที่ระบุในตัวแปรสภาพแวดล้อม `EDITOR` ของคุณ
|
|
|
|
<Tabs>
|
|
<TabItem label="Linux/macOS">
|
|
```bash
|
|
# Example for nano or vim
|
|
export EDITOR=nano
|
|
export EDITOR=vim
|
|
|
|
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
|
# include --wait
|
|
export EDITOR="code --wait"
|
|
```
|
|
|
|
หากต้องการทำให้เป็นแบบถาวร ให้เพิ่มสิ่งนี้ลงในโปรไฟล์ shell ของคุณ
|
|
`~/.bashrc`, `~/.zshrc` ฯลฯ
|
|
|
|
</TabItem>
|
|
|
|
<TabItem label="Windows (CMD)">
|
|
```bash
|
|
set EDITOR=notepad
|
|
|
|
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
|
# include --wait
|
|
set EDITOR=code --wait
|
|
```
|
|
|
|
หากต้องการทำให้เป็นแบบถาวร ให้ใช้ **คุณสมบัติของระบบ** > **สภาพแวดล้อม
|
|
ตัวแปร**.
|
|
|
|
</TabItem>
|
|
|
|
<TabItem label="Windows (PowerShell)">
|
|
```powershell
|
|
$env:EDITOR = "notepad"
|
|
|
|
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
|
# include --wait
|
|
$env:EDITOR = "code --wait"
|
|
```
|
|
|
|
หากต้องการทำให้เป็นแบบถาวร ให้เพิ่มสิ่งนี้ลงในโปรไฟล์ PowerShell ของคุณ
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
ตัวเลือกตัวแก้ไขยอดนิยม ได้แก่ :
|
|
|
|
- `code` - รหัส Visual Studio
|
|
- `cursor` - เคอร์เซอร์
|
|
- `windsurf` - วินด์เซิร์ฟ
|
|
- `nvim` - บรรณาธิการ Neovim
|
|
- `vim` - โปรแกรมแก้ไขเป็นกลุ่ม
|
|
- `nano` - โปรแกรมแก้ไขนาโน
|
|
- `notepad` - สมุดบันทึกของ Windows
|
|
- `subl` - ข้อความประเสริฐ
|
|
|
|
:::note
|
|
บรรณาธิการบางคนเช่น VS Code จำเป็นต้องเริ่มต้นด้วยแฟล็ก `--wait`
|
|
:::
|
|
|
|
ผู้แก้ไขบางรายจำเป็นต้องมีอาร์กิวเมนต์บรรทัดคำสั่งเพื่อทำงานในโหมดการบล็อก แฟล็ก `--wait` ทำให้กระบวนการแก้ไขบล็อกจนกว่าจะปิด
|
|
|
|
---
|
|
|
|
## กำหนดค่า
|
|
|
|
คุณสามารถปรับแต่งพฤติกรรม TUI ผ่านไฟล์กำหนดค่า OpenCode ของคุณได้
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"tui": {
|
|
"scroll_speed": 3,
|
|
"scroll_acceleration": {
|
|
"enabled": true
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### ตัวเลือก
|
|
|
|
- `scroll_acceleration` - เปิดใช้งานการเร่งความเร็วการเลื่อนแบบ macOS เพื่อการเลื่อนที่ราบรื่นและเป็นธรรมชาติ เมื่อเปิดใช้งาน ความเร็วในการเลื่อนจะเพิ่มขึ้นตามท่าทางการเลื่อนอย่างรวดเร็ว และคงความแม่นยำไว้สำหรับการเคลื่อนไหวที่ช้าลง **การตั้งค่านี้มีความสำคัญมากกว่า `scroll_speed` และแทนที่เมื่อเปิดใช้งาน**
|
|
- `scroll_speed` - ควบคุมความเร็วของการเลื่อน TUI เมื่อใช้คำสั่งการเลื่อน (ขั้นต่ำ: `1`) ค่าเริ่มต้นเป็น `3` **หมายเหตุ: สิ่งนี้จะถูกละเว้นหากตั้งค่า `scroll_acceleration.enabled` เป็น `true`.**
|
|
|
|
---
|
|
|
|
## การปรับแต่ง
|
|
|
|
คุณสามารถปรับแต่งแง่มุมต่างๆ ของมุมมอง TUI ได้โดยใช้ชุดคำสั่ง (`ctrl+x h` หรือ `/help`) การตั้งค่าเหล่านี้ยังคงมีอยู่ตลอดการรีสตาร์ท
|
|
|
|
---
|
|
|
|
#### การแสดงชื่อผู้ใช้
|
|
|
|
สลับว่าจะให้ชื่อผู้ใช้ของคุณปรากฏในข้อความแชทหรือไม่ เข้าถึงสิ่งนี้ผ่าน:
|
|
|
|
- จานคำสั่ง: ค้นหา "ชื่อผู้ใช้" หรือ "ซ่อนชื่อผู้ใช้"
|
|
- การตั้งค่าจะคงอยู่โดยอัตโนมัติและจะถูกจดจำตลอดเซสชัน TUI
|