Skip to main content

ตั้งค่า Terminal สำหรับ Claude Code

แก้ไข Shift+Enter สำหรับขึ้นบรรทัดใหม่, รับการแจ้งเตือนเมื่อ Claude เสร็จ, ตั้งค่า tmux, จับคู่ color theme, และเปิดใช้งาน Vim mode ใน Claude Code CLI

Claude Code ทำงานได้ในทุก terminal โดยไม่ต้องตั้งค่า หน้านี้สำหรับเมื่อบางสิ่งไม่ทำงานตามที่คาดหวัง ค้นหาอาการของคุณด้านล่าง

ป้อน Multiline Prompts

การกด Enter จะส่งข้อความของคุณ หากต้องการเพิ่มการขึ้นบรรทัดใหม่โดยไม่ส่ง ให้กด Ctrl+J หรือพิมพ์ \ แล้วกด Enter ทั้งสองแบบทำงานได้ในทุก terminal

ใน terminal ส่วนใหญ่คุณยังสามารถกด Shift+Enter ได้ แต่การรองรับขึ้นอยู่กับ terminal emulator:

TerminalShift+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

note

Custom themes ต้องการ Claude Code v2.1.118 หรือใหม่กว่า

ใน /theme เลือก New custom theme… ที่ท้ายรายการ

Custom theme แต่ละอันเป็น JSON file ใน ~/.claude/themes/:

Fieldประเภทคำอธิบาย
namestringป้ายชื่อที่แสดงใน /theme
basestringpreset ในตัวที่ theme เริ่มจาก: dark, light, dark-daltonized, light-daltonized, dark-ansi, หรือ light-ansi
overridesobjectMap ของชื่อ color token กับค่าสี
{
"name": "Dracula",
"base": "dark",
"overrides": {
"claude": "#bd93f9",
"error": "#ff5555",
"success": "#50fa7b"
}
}

Color Tokens อ้างอิง

สีข้อความและ accent:

Tokenควบคุม
claudebrand 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