- Giới thiệu trình kết xuất thử nghiệm giúp loại bỏ hiện tượng nhấp nháy và nhảy màn hình của renderer cũ
- Ngay cả khi cuộc trò chuyện kéo dài, mức sử dụng bộ nhớ và CPU vẫn được giữ ổn định, đồng thời trong môi trường terminal nay đã có thể nhấp chuột, di chuyển con trỏ và nhấp vào các thành phần UI
- Kích hoạt bằng biến môi trường
CLAUDE_CODE_NO_FLICKER=1
- Do giới hạn cấu trúc của mã ANSI terminal truyền thống, để vẽ lại các hàng ngoài viewport trước đây phải dùng mã xóa toàn bộ màn hình, nhưng renderer mới giải quyết vấn đề này bằng cách ảo hóa toàn bộ viewport
- Vẫn còn các đánh đổi như chưa hỗ trợ tìm kiếm native bằng
cmd-f, copy-paste, và việc tinh chỉnh vật lý cuộn chưa hoàn thiện nên hiện vẫn ở giai đoạn thử nghiệm
- Vì nội dung hội thoại nằm trong alternate screen buffer thay vì scrollback, có thể vào chế độ Transcript bằng
Ctrl+O rồi dùng tìm kiếm kiểu less (/, n/N)
- Ô nhập liệu sẽ được cố định ở cuối màn hình ngay cả khi đầu ra vẫn đang được stream
- Hỗ trợ xử lý sự kiện chuột trong ứng dụng như chỉnh vị trí con trỏ bằng chuột, mở rộng kết quả tool, mở URL/đường dẫn tệp và chọn văn bản bằng kéo-thả
Xem chi tiết tại Fullscreen rendering trong tài liệu Claude Code (đính kèm bên dưới)
Kết xuất toàn màn hình
- Chạy sau khi đặt biến môi trường
CLAUDE_CODE_NO_FLICKER=1, hoặc thêm export CLAUDE_CODE_NO_FLICKER=1 vào ~/.zshrc / ~/.bashrc để tự động áp dụng cho mọi phiên
- Cần Claude Code v2.1.88 trở lên, hiện đang ở giai đoạn research preview nên hành vi có thể thay đổi theo phản hồi
- Tên gọi "toàn màn hình" không liên quan đến việc phóng to cửa sổ terminal, và hoạt động ở mọi kích thước cửa sổ
Những thay đổi so với cách cũ
- Ô nhập liệu được cố định ở cuối màn hình ngay cả khi đầu ra vẫn đang được stream (nếu ô nhập được cố định thì tức là kết xuất toàn màn hình đang bật)
- Vì nội dung hội thoại nằm trong alternate screen buffer nên có các thay đổi sau so với trước đây:
| Trước đây |
Sau thay đổi |
Tìm văn bản bằng Cmd+F hoặc tìm kiếm của tmux |
Nhấn Ctrl+O rồi / để tìm kiếm, hoặc dùng [ để ghi vào native scrollback rồi dùng Cmd+F |
| Chọn và sao chép bằng kéo-thả native của terminal |
Chọn trong ứng dụng, tự động sao chép khi thả chuột |
Mở URL bằng Cmd-click |
Mở bằng cách nhấp URL |
Hỗ trợ chuột
- Nhấp vào ô nhập prompt: đặt vị trí con trỏ ở bất kỳ đâu trong văn bản
- Nhấp vào kết quả tool đang thu gọn: mở rộng hoặc thu gọn (lời gọi tool và kết quả sẽ được mở rộng cùng nhau)
- Nhấp URL hoặc đường dẫn tệp: tệp sẽ được mở bằng ứng dụng mặc định, còn URL
http:///https:// sẽ mở bằng trình duyệt
- Trên các terminal dựa trên xterm.js như terminal tích hợp của VS Code, việc xử lý được giao cho terminal để tránh mở liên kết hai lần
- Nhấp và kéo: chọn văn bản (nhấp đúp: chọn từ, nhấp ba lần: chọn dòng)
- Con lăn chuột: cuộn hội thoại
- Khi thả nút chuột, văn bản đã chọn sẽ tự động được sao chép vào clipboard; có thể tắt trong
/config
Phím tắt cuộn
| Phím tắt |
Hành động |
PgUp / PgDn |
Cuộn lên/xuống nửa màn hình |
Ctrl+Home |
Đi tới đầu cuộc trò chuyện |
Ctrl+End |
Đi tới tin nhắn mới nhất và bật lại chế độ tự động bám theo |
| Con lăn chuột |
Cuộn vài dòng mỗi lần |
- Với bàn phím không có phím chuyên dụng như MacBook, có thể dùng
Fn+↑/↓/←/→ thay cho PgUp/PgDn/Home/End
- Khi cuộn lên, auto-follow sẽ tạm dừng; dùng
Ctrl+End hoặc cuộn xuống cuối để tiếp tục
- Có thể tùy biến keybinding bằng các tên hành động như
scroll:pageUp, scroll:pageDown... (xem tài liệu Keybindings)
- Có thể điều chỉnh hệ số tốc độ cuộn bằng con lăn chuột qua biến môi trường
CLAUDE_CODE_SCROLL_SPEED (1~20, mặc định khuyến nghị 3 theo kiểu vim)
Tìm kiếm và xem lại hội thoại (chế độ Transcript)
- Khi vào chế độ Transcript bằng
Ctrl+O, có thể dùng điều hướng và tìm kiếm kiểu less
| Phím |
Hành động |
/ |
Mở tìm kiếm (Enter: xác nhận, Esc: hủy) |
n / N |
Chuyển tới kết quả tìm kiếm tiếp theo/trước đó |
j/k hoặc ↑/↓ |
Cuộn từng dòng |
g/G hoặc Home/End |
Đi tới đầu/cuối |
Ctrl+U / Ctrl+D |
Cuộn nửa trang |
[ |
Ghi toàn bộ hội thoại vào native scrollback của terminal (có thể dùng Cmd+F) |
v |
Lưu thành tệp tạm rồi mở bằng $VISUAL/$EDITOR |
Esc, q, Ctrl+O |
Thoát chế độ Transcript |
Lưu ý khi dùng tmux
- Để dùng cuộn bằng con lăn chuột trong tmux, cần thêm
set -g mouse on vào ~/.tmux.conf
- Nếu không bật chế độ chuột, sự kiện con lăn sẽ được chuyển cho tmux; còn cuộn bằng bàn phím
PgUp/PgDn vẫn hoạt động bình thường
- Nếu khởi động khi tmux đang tắt chế độ chuột, Claude Code sẽ hiển thị một thông báo hướng dẫn một lần
tmux -CC (chế độ tích hợp iTerm2) không tương thích
- Ở chế độ này, alternate screen buffer và mouse tracking không hoạt động đúng, và nhấp đúp có thể làm hỏng trạng thái terminal
- Dùng tmux thông thường trong iTerm2 mà không có
-CC thì hoạt động bình thường
Cách giữ lại chọn văn bản native
Research preview và phản hồi
- Đã được thử nghiệm trên các terminal emulator phổ biến, nhưng vẫn có thể phát sinh lỗi kết xuất trên các terminal không phổ biến hoặc cấu hình đặc biệt
- Nếu gặp sự cố, hãy chạy lệnh
/feedback trong Claude Code hoặc tạo issue trên repo GitHub của claude-code (cần kèm tên và phiên bản terminal emulator)
- Để tắt, hãy bỏ biến môi trường hoặc đặt
CLAUDE_CODE_NO_FLICKER=0
5 bình luận
Tôi dùng
iterm -CCở chế độ tích hợp, nhưng thật ra không thấy có gì lạ cả...Ngược lại, từ một thời gian trước, tôi khá khó chịu vì khi cuộn trong lúc đang render thì nó bị nhảy cưỡng bức lên đầu trang; giờ vị trí được giữ nguyên và chuyển thành thông báo new message nên tôi thấy rất thích. Tốt đấy..
Có vẻ đang chuyển sang mang hơi hướng giống opencode một chút.
TUI trở thành GUI
Mình thích những thay đổi như thế này~
Có vẻ vẫn cần tinh chỉnh thêm một chút.
Khi đặt con trỏ rồi dùng chuột chọn chỗ khác thì phải tự động sao chép, và khi dán thì phải được dán vào vị trí con trỏ ban đầu.
Nhưng hiện tại lại dán vào chỗ được chọn bằng chuột.