Buckets:
| 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? | |
| ``` | |
| เนื้อหาของไฟล์จะถูกเพิ่มในการสนทนาโดยอัตโนมัติ | |
| ## คำสั่ง Bash | |
| เริ่มข้อความด้วย `!` เพื่อรันคำสั่ง 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" | |
| /themes | |
| ``` | |
| **ผูกปุ่ม:** `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 ได้ผ่าน `tui.json` (หรือ `tui.jsonc`) | |
| ```json title="tui.json" | |
| { | |
| "$schema": "https://opencode.ai/tui.json", | |
| "theme": "opencode", | |
| "leader_timeout": 2000, | |
| "keybinds": { | |
| "leader": "ctrl+x", | |
| "command_list": "ctrl+p" | |
| }, | |
| "scroll_speed": 3, | |
| "scroll_acceleration": { | |
| "enabled": false | |
| }, | |
| "diff_style": "auto", | |
| "mouse": true, | |
| "attention": { | |
| "enabled": true, | |
| "notifications": true, | |
| "sound": true, | |
| "volume": 0.4, | |
| "sound_pack": "opencode.default", | |
| "sounds": { | |
| "error": "./sounds/error.mp3" | |
| } | |
| } | |
| } | |
| ``` | |
| สิ่งนี้แยกจาก `opencode.json` ซึ่งกำหนดค่าพฤติกรรมเซิร์ฟเวอร์/รันไทม์ | |
| `keybinds` จะถูกรวมกับค่าเริ่มต้นในตัว ดังนั้นคุณต้องกำหนดค่าเฉพาะ shortcut ที่ต้องการเปลี่ยนเท่านั้น | |
| ### ตัวเลือก | |
| - `theme` - ตั้งค่าธีม UI ของคุณ [เรียนรู้เพิ่มเติม](/docs/themes) | |
| - `keybinds` - ปรับแต่งแป้นพิมพ์ลัด [เรียนรู้เพิ่มเติม](/docs/keybinds) | |
| - `leader_timeout` - ควบคุมระยะเวลาที่ OpenCode จะรอหลังจากกด leader key ค่าเริ่มต้นคือ `2000` | |
| - `scroll_acceleration.enabled` - เปิดใช้งานการเร่งความเร็วการเลื่อนแบบ macOS เพื่อการเลื่อนที่ราบรื่นและเป็นธรรมชาติ เมื่อเปิดใช้งาน ความเร็วในการเลื่อนจะเพิ่มขึ้นตามท่าทางการเลื่อนอย่างรวดเร็ว และคงความแม่นยำไว้สำหรับการเคลื่อนไหวที่ช้าลง **การตั้งค่านี้มีความสำคัญมากกว่า `scroll_speed` และแทนที่เมื่อเปิดใช้งาน** | |
| - `scroll_speed` - ควบคุมความเร็วของการเลื่อน TUI เมื่อใช้คำสั่งการเลื่อน (ขั้นต่ำ: `0.001` รองรับค่าทศนิยม) ค่าเริ่มต้นเป็น `3` **หมายเหตุ: สิ่งนี้จะถูกละเว้นหากตั้งค่า `scroll_acceleration.enabled` เป็น `true`.** | |
| - `diff_style` - ควบคุมการเรนเดอร์ diff `"auto"` ปรับให้เข้ากับความกว้างของ terminal `"stacked"` จะแสดงคอลัมน์เดียวเสมอ | |
| - `mouse` - เปิดหรือปิดการจับเมาส์ใน TUI (ค่าเริ่มต้น: `true`) เมื่อปิดใช้งาน terminal จะยังคงใช้พฤติกรรมการเลือกข้อความและเลื่อนด้วยเมาส์แบบเดิม | |
| - `attention` - กำหนดค่า desktop notifications และ sounds ของ TUI ปิดใช้งานตามค่าเริ่มต้น | |
| ใช้ `OPENCODE_TUI_CONFIG` เพื่อโหลดเส้นทางการกำหนดค่า TUI แบบกำหนดเอง | |
| ### Attention | |
| Attention ช่วยให้ TUI แจ้งเตือนคุณเมื่อ OpenCode กำลังรอคำตอบ ต้องการการอนุมัติ permission พบ session error หรือ session เสร็จสิ้นแล้ว เปิดใช้งานด้วย `attention.enabled`; เหตุการณ์ในตัวจะเล่นเสียงเมื่อเกิดขึ้น Desktop notifications จะส่งเฉพาะเมื่อหน้าต่าง terminal ไม่ได้อยู่ในโฟกัส และจะไม่ใช้กับ subagent events | |
| - `enabled` - เปิดใช้งาน notifications และ sounds ทั้งหมดของ Attention ค่าเริ่มต้นคือ `false` | |
| - `notifications` - เมื่อเปิด Attention แล้ว อนุญาตให้ TUI ส่ง desktop notifications ผ่าน terminal ค่าเริ่มต้นคือ `true` | |
| - `sound` - เมื่อเปิด Attention แล้ว อนุญาตให้เล่นเสียงแจ้งเตือน ค่าเริ่มต้นคือ `true` | |
| - `volume` - ระดับเสียงแจ้งเตือนเริ่มต้นตั้งแต่ `0` ถึง `1` ค่าเริ่มต้นคือ `0.4` | |
| - `sound_pack` - sound pack ID ที่จะใช้ ค่าเริ่มต้นคือ `opencode.default` | |
| - `sounds` - กำหนด sound files แบบกำหนดเองสำหรับ `default`, `question`, `permission`, `error`, `done` หรือ `subagent_done` Paths สามารถเป็น absolute, `file://` URLs หรือ relative กับ `tui.json` | |
| ## การปรับแต่ง | |
| คุณสามารถปรับแต่งแง่มุมต่างๆ ของมุมมอง TUI ได้โดยใช้ชุดคำสั่ง (`ctrl+x h` หรือ `/help`) การตั้งค่าเหล่านี้ยังคงมีอยู่ตลอดการรีสตาร์ท | |
| #### การแสดงชื่อผู้ใช้ | |
| สลับว่าจะให้ชื่อผู้ใช้ของคุณปรากฏในข้อความแชทหรือไม่ เข้าถึงสิ่งนี้ผ่าน: | |
| - Command Palette: ค้นหา "ชื่อผู้ใช้" หรือ "ซ่อนชื่อผู้ใช้" | |
| - การตั้งค่าจะคงอยู่โดยอัตโนมัติและจะถูกจดจำตลอดเซสชัน TUI | |
Xet Storage Details
- Size:
- 18 kB
- Xet hash:
- 57012c9188a4785126ec93d25624eb5ab38c042420f8859a26ade03e807dd76b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.