ตั้งค่า Terminal สำหรับ Claude Code
แก้ไข Shift+Enter สำหรับขึ้นบรรทัดใหม่, รับการแจ้งเตือนเมื่อ Claude เสร็จ, ตั้งค่า tmux, จับคู่ color theme, และเปิดใช้งาน Vim mode ใน Claude Code CLI
Claude Code ทำงานได้ในทุก terminal โดยไม่ต้องตั้งค่า หน้านี้สำหรับเมื่อบางสิ่งไม่ทำงานตามที่คาดหวัง ค้นหาอาการของคุณด้านล่าง
- Shift+Enter ส่งแทนที่จะขึ้นบรรทัดใหม่
- ปุ่ม Option ไม่ทำงานบน macOS
- ไม่มีเสียงหรือการแจ้งเตือนเมื่อ Claude เสร็จ
- คุณรัน Claude Code ภายใน tmux
- การแสดงผลกระพริบหรือ scrollback กระโดด
- คุณต้องการ Vim keys ใน prompt
ป้อน Multiline Prompts
การกด Enter จะส่งข้อความของคุณ หากต้องการเพิ่มการขึ้นบรรทัดใหม่โดยไม่ส่ง ให้กด Ctrl+J หรือพิมพ์ \ แล้วกด Enter ทั้งสองแบบทำงานได้ในทุก terminal
ใน terminal ส่วนใหญ่คุณยังสามารถกด Shift+Enter ได้ แต่การรองรับขึ้นอยู่กับ terminal emulator:
| Terminal | Shift+Enter สำหรับขึ้นบรรทัดใหม่ |
|---|---|
| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | ใช้งานได้โดยไม่ต้องตั้งค่า |
| VS Code, Cursor, Devin Desktop, Alacritty, Zed | รัน /terminal-setup ครั้งเดียว |
| gnome-terminal, JetBrains IDEs เช่น PyCharm และ Android Studio | ไม่พร้อมใช้งาน; ใช้ Ctrl+J หรือ \ แล้ว Enter |
เปิดใช้งาน Option Key บน macOS
ปุ่มลัด Claude Code บางอย่างใช้ปุ่ม Option เช่น Option+Enter สำหรับขึ้นบรรทัดใหม่ บน macOS ส่วนใหญ่ terminal ไม่ส่ง Option เป็น modifier โดยค่าเริ่มต้น
Apple Terminal: เปิด Settings → Profiles → Keyboard และเลือก "Use Option as Meta Key"
iTerm2: เปิด Settings → Profiles → Keys → General และตั้ง Left Option key และ Right Option key เป็น "Esc+"
VS Code: เพิ่ม "terminal.integrated.macOptionIsMeta": true ใน VS Code settings
รับ Terminal Bell หรือการแจ้งเตือน
เมื่อ Claude เสร็จงานหรือหยุดเพื่อขอ permission จะส่งเหตุการณ์การแจ้งเตือน
โดยค่าเริ่มต้น Claude Code ส่ง desktop notification เฉพาะใน Ghostty, Kitty, และ iTerm2 ใน terminal อื่นๆ ตั้ง preferredNotifChannel เป็น "terminal_bell" เพื่อให้ terminal bell ดัง
เล่นเสียงด้วย Notification Hook
{
"hooks": {
"Notification": [
{
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
}
]
}
}
ตั้งค่า tmux
เมื่อ Claude Code รันภายใน tmux สองสิ่งจะทำงานผิดปกติ: Shift+Enter ส่งแทนที่จะขึ้นบรรทัดใหม่ และ desktop notifications ไม่เคยถึง outer terminal
เพิ่มบรรทัดเหล่านี้ใน ~/.tmux.conf:
set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'
จากนั้นรัน tmux source-file ~/.tmux.conf
จับคู่ Color Theme
ใช้คำสั่ง /theme หรือ theme picker ใน /config เพื่อเลือก Claude Code theme ที่ตรงกับ terminal ของคุณ
สร้าง Custom Theme
Custom themes ต้องการ Claude Code v2.1.118 หรือใหม่กว่า
ใน /theme เลือก New custom theme… ที่ท้ายรายการ
Custom theme แต่ละอันเป็น JSON file ใน ~/.claude/themes/:
| Field | ประเภท | คำอธิบาย |
|---|---|---|
name | string | ป้ายชื่อที่แสดงใน /theme |
base | string | preset ในตัวที่ theme เริ่มจาก: dark, light, dark-daltonized, light-daltonized, dark-ansi, หรือ light-ansi |
overrides | object | Map ของชื่อ color token กับค่าสี |
{
"name": "Dracula",
"base": "dark",
"overrides": {
"claude": "#bd93f9",
"error": "#ff5555",
"success": "#50fa7b"
}
}
Color Tokens อ้างอิง
สีข้อความและ accent:
| Token | ควบคุม |
|---|---|
claude | brand accent หลัก |
text | ข้อความ foreground ค่าเริ่มต้น |
inactive | ข้อความรอง เช่น hints และ timestamps |
success | ข้อความสำเร็จ |
error | ข้อความข้อผิดพลาด |
warning | คำเตือน |
Diff rendering:
| Token | ควบคุม |
|---|---|
diffAdded | พื้นหลังของบรรทัดที่เพิ่ม |
diffRemoved | พื้นหลังของบรรทัดที่ลบ |
diffAddedWord | การไฮไลท์ระดับคำในบรรทัดที่เพิ่ม |
diffRemovedWord | การไฮไลท์ระดับคำในบรรทัดที่ลบ |
สลับไปใช้ Fullscreen Rendering
หากการแสดงผลกระพริบหรือตำแหน่ง scroll กระโดดขณะ Claude ทำงาน ให้สลับไปใช้ fullscreen rendering mode
รัน /tui fullscreen เพื่อสลับใน session ปัจจุบัน หรือตั้ง environment variable:
CLAUDE_CODE_NO_FLICKER=1 claude
หรือใน settings.json:
{
"env": {
"CLAUDE_CODE_NO_FLICKER": "1"
}
}
วาง Content ขนาดใหญ่
เมื่อคุณวางมากกว่า 10,000 ตัวอักษรใน prompt Claude Code จะยุบ input เป็น [Pasted text] placeholder เนื้อหาทั้งหมดยังคงถูกส่งไปยัง Claude เมื่อคุณส่ง
แก้ไข Prompts ด้วย Vim Keybindings
Claude Code มี Vim-style editing mode สำหรับ prompt input เปิดใช้งานผ่าน /config → Editor mode หรือตั้ง editorMode เป็น "vim" ใน ~/.claude/settings.json
แหล่งข้อมูลที่เกี่ยวข้อง
- Interactive mode: ข้อมูลอ้างอิง keyboard shortcut เต็มรูปแบบและตาราง Vim key
- Keybindings: กำหนด shortcut ของ Claude Code ใหม่
- Fullscreen rendering: รายละเอียดเกี่ยวกับการเลื่อน, การค้นหา, และการคัดลอกใน fullscreen mode
- Hooks guide: ตัวอย่าง Notification hook เพิ่มเติม
- Troubleshooting: แก้ไขปัญหาที่อยู่นอก terminal configuration