Files
tf_code/packages/web/src/content/docs/th/tui.mdx
2026-02-10 07:11:19 -06:00

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