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