Claude Code hoạt động trong mọi terminal mà không cần cấu hình. Trang này dành cho khi có gì đó cụ thể không hoạt động như bạn mong đợi. Tìm triệu chứng của bạn bên dưới. Nếu mọi thứ đã ổn, bạn không cần đọc trang này.
- Shift+Enter submit thay vì xuống dòng
- Phím tắt Option không hoạt động trên macOS
- Không có âm thanh/thông báo khi Claude xong việc
- Bạn chạy Claude Code trong tmux
- Màn hình nhấp nháy hoặc scrollback nhảy lung tung
- Bạn muốn dùng phím Vim trong prompt
Trang này nói về việc khiến terminal gửi đúng tín hiệu đến Claude Code. Để đổi phím Claude Code phản hồi, xem keybindings thay vào đây.
Nhập prompt nhiều dòng
Phần tiêu đề “Nhập prompt nhiều dòng”Nhấn Enter để submit tin nhắn. Để xuống dòng mà không submit, nhấn Ctrl+J, hoặc gõ \ rồi Enter. Cả hai hoạt động ở mọi terminal không cần setup.
Ở hầu hết terminal bạn cũng có thể nhấn Shift+Enter, nhưng hỗ trợ khác nhau theo terminal emulator:
| Terminal | Shift+Enter xuống dòng |
|---|---|
| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Hoạt động không cần setup |
| VS Code, Cursor, Devin Desktop, Alacritty, Zed | Chạy /terminal-setup một lần |
| gnome-terminal, IDE JetBrains như PyCharm, Android Studio | Không có; dùng Ctrl+J hoặc \ rồi Enter |
Với VS Code, Cursor, Devin Desktop, Alacritty, và Zed, /terminal-setup ghi Shift+Enter và các keybinding khác vào file cấu hình terminal. Lần chạy đầu bạn thấy xác nhận như Installed VSCode terminal Shift+Enter key binding. Chạy /terminal-setup trực tiếp trong terminal host thay vì trong tmux hoặc screen, vì nó cần ghi vào cấu hình terminal host.
Trong VS Code, Cursor, và Devin Desktop, /terminal-setup cũng cập nhật hai setting editor: đặt terminal.integrated.gpuAcceleration thành "off" để tránh chữ vỡ trong integrated terminal, và đặt terminal.integrated.mouseWheelScrollSensitivity để cuộn mượt hơn trong fullscreen mode.
Nếu bạn đang chạy trong tmux, Shift+Enter cũng cần cấu hình tmux bên dưới kể cả khi terminal ngoài đã hỗ trợ.
Bật phím tắt Option trên macOS
Phần tiêu đề “Bật phím tắt Option trên macOS”Một số shortcut Claude Code dùng phím Option, ví dụ Option+Enter để xuống dòng hoặc Option+P để đổi model. Trên macOS, hầu hết terminal không gửi Option như modifier mặc định, nên các shortcut này không hoạt động cho đến khi bạn bật. Setting terminal cho việc này thường gọi là “Use Option as Meta Key”.
Apple Terminal: Settings → Profiles → Keyboard, tick “Use Option as Meta Key”. Nếu bạn đồng ý prompt setup terminal lần đầu của Claude Code, việc này đã tự làm.
iTerm2: Settings → Profiles → Keys → General, đặt Left/Right Option key thành “Esc+”.
VS Code: Thêm "terminal.integrated.macOptionIsMeta": true vào settings VS Code.
Lấy terminal bell hoặc thông báo
Phần tiêu đề “Lấy terminal bell hoặc thông báo”Khi Claude xong task hoặc dừng chờ permission prompt, nó phát ra notification event. Hiện thứ này như terminal bell hoặc desktop notification giúp bạn chuyển sang việc khác trong khi task dài chạy.
Mặc định Claude Code gửi desktop notification chỉ trong Ghostty, Kitty, iTerm2. Ở terminal khác, đặt preferredNotifChannel thành "terminal_bell" để dùng terminal bell:
{ "preferredNotifChannel": "terminal_bell"}Phát âm thanh bằng Notification hook
Phần tiêu đề “Phát âm thanh bằng Notification hook”Ở mọi terminal, bạn có thể cấu hình Notification hook để phát âm thanh hoặc chạy lệnh tuỳ chỉnh khi Claude cần bạn chú ý:
{ "hooks": { "Notification": [ { "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }] } ] }}Cấu hình tmux
Phần tiêu đề “Cấu hình tmux”Khi Claude Code chạy trong tmux, hai thứ mặc định bị hỏng: Shift+Enter submit thay vì xuống dòng, và desktop notification/progress bar không bao giờ đến terminal ngoài. Thêm các dòng sau vào ~/.tmux.conf, rồi chạy tmux source-file ~/.tmux.conf:
set -g allow-passthrough onset -s extended-keys onset -as terminal-features 'xterm*:extkeys'Đổi màu theme
Phần tiêu đề “Đổi màu theme”Dùng lệnh /theme, hoặc theme picker trong /config, để chọn theme Claude Code khớp terminal của bạn. Chọn auto sẽ tự phát hiện nền sáng/tối của terminal, nên theme theo đúng thay đổi appearance OS mỗi khi terminal của bạn thay đổi.
Tạo custom theme
Phần tiêu đề “Tạo custom theme”Ngoài các preset có sẵn, /theme còn liệt kê mọi custom theme bạn đã định nghĩa và theme do plugin đã cài đóng góp. Chọn New custom theme… ở cuối danh sách để tạo tương tác: đặt tên theme, rồi chọn từng color token để override. Nhấn Ctrl+E khi một custom theme đang được highlight để sửa nó.
Mỗi custom theme là một file JSON trong ~/.claude/themes/. Tên file (không kèm .json) là slug của theme, và chọn theme sẽ lưu custom:<slug> làm theme preference. Claude Code theo dõi ~/.claude/themes/ và tự reload khi một file được thêm/sửa, nên chỉnh sửa trong editor có hiệu lực ngay ở một session đang chạy mà không cần restart. Nếu thư mục ~/.claude/themes/ chưa tồn tại lúc Claude Code khởi động, restart một lần sau khi tạo file theme đầu tiên; sau đó thay đổi áp dụng không cần restart nữa.
{ "name": "Dracula", "base": "dark", "overrides": { "claude": "#bd93f9", "error": "#ff5555", "success": "#50fa7b" }}Chuyển sang render fullscreen
Phần tiêu đề “Chuyển sang render fullscreen”Nếu display nhấp nháy hoặc vị trí scroll nhảy trong khi Claude đang làm việc, chuyển sang fullscreen rendering mode. Chạy /tui fullscreen để chuyển và lưu preference.
Paste nội dung lớn
Phần tiêu đề “Paste nội dung lớn”Khi bạn paste hơn 800 ký tự hoặc hơn hai dòng vào prompt, Claude Code thu gọn input thành placeholder như [Pasted text #1 +120 lines] để ô input dễ dùng. Nội dung đầy đủ vẫn được gửi đến Claude khi bạn submit.
Claude Code giữ nội dung đã thu gọn trong ~/.claude/paste-cache/, nên khi bạn gọi lại một prompt cũ từ command history và submit lại, Claude Code gửi lại đúng nội dung paste đầy đủ, kể cả ở một session sau này - cho tới khi retention sweep xoá cache file đó.
Claude Code xoá cache file cũ hơn cleanupPeriodDays, theo quy tắc retention sweep, nên một prompt gọi lại có thể tham chiếu tới text đã paste nhưng không còn tồn tại. Khi bạn submit một prompt như vậy, Claude Code không bao giờ gửi literal chuỗi [Pasted text #N], và hiện thông báo nêu rõ phần paste bị thiếu:
- Trong một prompt thường còn text khác, Claude Code xoá placeholder và gửi phần text còn lại.
- Trong lệnh shell mode (
!lệnh) hoặc lệnh/, nơi việc xoá sẽ đổi lệnh thực thi, và với bất kỳ prompt nào việc xoá làm trống hẳn, Claude Code huỷ việc submit và giữ nguyên text gốc trong ô input, kèm placeholder. Xoá placeholder hoặc sửa lệnh, rồi submit lại.
VS Code integrated terminal có thể làm rớt ký tự từ những đoạn paste rất lớn trước khi chúng đến Claude Code - ưu tiên workflow dựa trên file ở đó. Với input rất lớn như cả file hoặc log dài, ghi nội dung ra file và nhờ Claude đọc thay vì paste - cách này giữ transcript hội thoại dễ đọc và để Claude tham chiếu file bằng path ở các lượt sau.
Sửa prompt bằng Vim keybindings
Phần tiêu đề “Sửa prompt bằng Vim keybindings”Claude Code có chế độ soạn thảo kiểu Vim cho prompt input. Bật qua /config → Editor mode, hoặc đặt editorMode thành "vim" trong ~/.claude/settings.json.
Vim mode hỗ trợ tập con motion và operator NORMAL/VISUAL mode, như điều hướng hjkl, chọn v/V, và d/c/y với text object.
Tài nguyên liên quan
Phần tiêu đề “Tài nguyên liên quan”- Interactive mode: tham chiếu đầy đủ phím tắt và bảng phím Vim
- Keybindings: remap bất kỳ shortcut nào của Claude Code
- Fullscreen rendering: chi tiết scroll, search, copy trong fullscreen mode
lượt xem