zshell

Terminal

Backend terminal, môi trường shell, liên kết, thông báo và tính năng an toàn của Zshell.

Mỗi ô terminal chạy shell đăng nhập thật của bạn và dùng một trong hai backend gốc có tăng tốc GPU. Zshell quản lý hành vi xung quanh: tiêu điểm ô, tìm kiếm, thông báo, liên kết, lịch sử, chủ đề và an toàn khi dán, nên nhất quán dù bạn chọn bộ mô phỏng nào.

Backend terminal

Chọn ở Cài đặt → Terminal → Backend:

BackendGhi chú
GhosttyMặc định
AlacrittyThường dùng ít bộ nhớ hơn

Cả hai hỗ trợ tăng tốc GPU, kết xuất ảnh, bộ chủ đề chung của Zshell, tìm kiếm, báo cáo chuột, thông báo và báo tiến độ. Đổi backend chỉ tác động terminal mới; ô hiện tại giữ backend lúc bắt đầu.

Shell của bạn không đổi

Mỗi phiên mở shell đăng nhập của tài khoản, nên dấu nhắc, alias, hàm và dotfile nạp như trong terminal khác. Zshell thêm biến nhận diện và khả năng:

BiếnGiá trị
TERM_PROGRAMghostty
TERM_PROGRAM_VERSIONPhiên bản khả năng Ghostty mà Zshell triển khai
ZSHELL_TERMghostty hoặc alacritty, backend thật của ô

Cả hai backend khai báo Ghostty qua TERM_PROGRAM vì CLI hỗ trợ ảnh/thông báo dùng nó như dấu hiệu khả năng. Chỉ dùng ZSHELL_TERM khi thực sự cần phân biệt bộ kết xuất.

Zshell không đọc ~/.config/ghostty hay cấu hình Alacritty. Phông, màu, hành vi nhập và backend được đặt trong cài đặt riêng của Zshell.

Khi mở từ Dock hay Finder, Zshell đọc SSH_AUTH_SOCK từ shell đăng nhập tương tác để dùng agent được dotfile chọn. Mở từ terminal giữ agent kế thừa hợp lệ.

Quyền hệ thống

Chương trình cục bộ trong terminal Zshell có thể yêu cầu truy cập camera hoặc micrô, hay điều khiển ứng dụng khác qua Apple Events. macOS quy các yêu cầu này cho Zshell; chỉ cấp quyền cho chương trình bạn tin cậy. Quyền tự động hóa được cấp riêng cho từng ứng dụng đích.

Quản lý quyền trong Cài đặt hệ thống → Quyền riêng tư & Bảo mật → Camera, Micrô hoặc Tự động hóa. Từ chối yêu cầu sẽ chặn tính năng tương ứng. Zshell không tự động cấp các quyền này.

Tiêu điểm theo chuột

Bật Cài đặt → Terminal → Hành vi → Tiêu điểm theo chuột để chuyển tiêu điểm khi con trỏ vào khung. Mặc định tắt, hỗ trợ cả hai backend và terminal nhanh. Không chuyển khi kéo, từ trình soạn thảo hoặc khi mở menu hay hộp thoại.

terminal.focus-follows-mouse = true

Thao tácPhím tắt
TìmCmd+F
Tìm tiếpCmd+G
Tìm trướcShift+Return trong thanh tìm
Dùng phần chọn để tìmCmd+E
Xóa terminalCmd+K

Tìm hoạt động trên ô terminal hoặc trình soạn thảo có tiêu điểm và tiếp tục khi ô tìm giữ tiêu điểm bàn phím.

Sửa dấu nhắc

Nhấn trong dấu nhắc shell đang hoạt động để chuyển con trỏ nhập, rồi gõ tại đó. Trong zsh, kéo qua đầu vào để chọn đoạn: gõ thay đoạn chọn, Backspace hoặc Delete xóa đoạn đó. Nhấp đúp/ba vẫn chọn chữ terminal; chương trình bật báo cáo chuột, như TUI toàn màn hình, tiếp tục nhận sự kiện chuột riêng.

Nếu shell lồng nhau hoặc shell thay thế chưa nạp hỗ trợ sửa dấu nhắc của Zshell, kéo vẫn chọn chữ terminal để sao chép nhưng không sửa đầu vào. Chỉnh sửa vùng chọn trở lại khi thoát về dấu nhắc gốc.

Ô nhập chuẩn của Claude Code hỗ trợ nhấn đặt con trỏ và kéo chỉnh sửa trên cả hai backend, kể cả bản nháp xuống dòng mềm hoặc nhiều dòng. Gõ/dán để thay vùng chọn, Backspace/Delete để xóa. Chế độ normal/visual của Vim, hộp thoại, phần giữ chỗ tệp đính kèm hoặc đoạn dán thu gọn, và hội thoại đã cuộn vẫn dùng hành vi chọn terminal hiện có. Ứng dụng bắt chuột tiếp tục tự xử lý đầu vào.

Nhập giọng nói Zisla dùng thao tác dán của terminal. Trong Claude Code, nó cũng thay vùng nhập đang chọn; lặp lại một câu có chủ ý vẫn được hỗ trợ.

Phím tắt ứng dụng tiền cảnh

Khi phím tắt terminal xung đột với Zshell, nhấp phải ô rồi bật Chặn lệnh Zshell. Khi ô có tiêu điểm bàn phím, phím có bổ trợ, gồm Ctrl+Return, đi tới ứng dụng tiền cảnh. Sao chép, dán và chọn tất cả vẫn dùng được.

Thiết lập chỉ áp dụng ô đó. Nhấp phải bỏ dấu chọn để khôi phục phím Zshell. Nếu ứng dụng bắt chuột, giữ Shift khi nhấp phải để mở menu Zshell.

Hàng đợi lệnh

Chọn terminal và nhấn Cmd+Shift+M, hoặc Bật/tắt hàng đợi lệnh trong bảng lệnh. Thanh mở dưới terminal đó. Gõ mục rồi Return hoặc Thêm vào hàng đợi; mỗi mục một dòng, xuống dòng dán vào đổi thành khoảng trắng.

Khi zsh gốc trở lại dấu nhắc trống, Zshell gửi mục kế tiếp rồi Return. Mục chạy theo thứ tự hàng đợi. Gửi tự động chờ khi tác nhân/chương trình tiền cảnh đang dùng terminal hoặc dấu nhắc có bản nháp. Cần tích hợp zsh của Zshell; shell khác và shell lồng nhau có thể gửi thủ công.

Mỗi mục có Gửi ngay và Xóa. Gửi ngay lập tức gửi chữ và Return tới chương trình hiện tại, không đợi dấu nhắc shell. Esc hoặc nút đóng ẩn thanh và giữ hàng đợi. Mỗi terminal có hàng đợi riêng; đóng phiên hoặc thoát Zshell sẽ bỏ nó.

Đường dẫn và URL

Zshell nhận URL web và đường dẫn cục bộ tồn tại do chương trình in ra. Liên kết có thể tuyệt đối, tương đối ~/, ./, ../ hoặc theo thư mục làm việc trực tiếp của ô. Hậu tố chẩn đoán như :42, :42:7 không cản tìm tệp gốc.

  • Command-nhấp đường dẫn để hiện trong Finder, hoặc URL để mở bằng trình duyệt mặc định.
  • Command-nhấp phải đường dẫn cho Tab tệp mới / Ô tệp mới, hoặc URL cho Tab trình duyệt mới / Ô trình duyệt mới.
  • Chương trình toàn màn hình bật báo cáo chuột nhận nhấp phải không bổ trợ. Giữ Shift khi nhấp phải để mở menu terminal/ô của Zshell.

Nhờ vậy đầu ra trình biên dịch và hội thoại tác nhân nối thẳng về cùng dự án. Xem hành vi trình duyệt ở Ô trình duyệt.

Thông báo

Zshell chuyển hai sự kiện terminal tới Trung tâm thông báo:

  • chuông từ phiên không có tiêu điểm;
  • yêu cầu OSC 777;notify từ chương trình như build dài hoặc tác nhân lập trình.

Thông báo có thể phát âm hệ thống. Nhấn thông báo kích hoạt Zshell và tới đúng phiên phát ra nó. macOS chỉ xin quyền khi terminal lần đầu muốn thông báo, không phải khi Zshell mở.

Hoàn thành lệnh

Mở Cài đặt → Terminal → Thông báo lệnh để nhận báo khi lệnh kết thúc:

  • Lệnh chạy lâu: chọn 5, 10, 30 hoặc 60 giây. Lệnh chạy ít nhất thời gian đó phát thông báo khi xong. Mặc định Tắt.
  • Lệnh thất bại: báo khi mã thoát khác không, bất kể thời gian. Mặc định bật trong cấu hình mới và có thể tắt độc lập.

Áp dụng terminal zsh tạo sau thay đổi, trên cả hai backend. Tính năng dùng sự kiện hoàn thành của shell gốc; lệnh chạy trong shell lồng nhau hoặc chương trình tương tác không báo từng lần hoàn thành qua tích hợp này.

Có thể lưu cùng thiết lập trong ~/.config/zshell/config.toml:

terminal.notify-finish-seconds = 30
terminal.notify-on-error = true

Đặt terminal.notify-finish-seconds thành 0 để tắt báo theo thời lượng. Việc gửi thông báo tuân theo cài đặt macOS.

Báo tiến độ

Chương trình phát OSC 9;4 có thanh mảnh trên terminal, phân biệt bình thường, tạm dừng và lỗi. Không cần bật gì: chương trình báo tiến độ thì ô hiển thị.

Bảng nhớ tạm, thả tệp và dán an toàn

  • Đọc bảng nhớ tạm cần xác nhận. OSC 52 có thể yêu cầu bảng nhớ macOS, kể cả từ máy SSH từ xa. Zshell hỏi trước khi trả dữ liệu.
  • Đánh dấu thao tác dán rủi ro. Văn bản nhiều dòng hoặc giống lệnh chờ xác nhận thay vì gửi ngay.
  • Tệp và ảnh chụp thành đường dẫn an toàn cho shell. Tệp Finder được chèn dưới dạng đường dẫn tuyệt đối có trích dẫn. Ảnh riêng được lưu thành PNG tạm riêng tư rồi dán đường dẫn. Khung từ xa tải tệp và ảnh lên máy chủ trước.

Nhập với phím Option

Mặc định Option thuộc nguồn nhập macOS đang dùng để bố cục như Polish Pro nhập được ký tự tổ hợp. Bật Dùng Option làm Alt/Meta trong Cài đặt nếu chương trình terminal cần nhận tổ hợp Option như phím Meta. Xem terminal.macos-option-as-alt.

Lệnh zshell

Mỗi terminal Zshell có CLI nhận biết dự án:

zshell                         # tạo dự án trong thư mục hiện tại
zshell vim ~/src/app.swift     # tạo dự án và chạy argv này trong terminal đầu tiên
zshell +themes                 # duyệt và xem trước giao diện theo cách tương tác
zshell +themes --list --dark   # in tên các giao diện mà không mở trình chọn
zshell +help                   # hiển thị tất cả các nhóm lệnh

Trình duyệt chủ đề xem trước mỗi lựa chọn trên toàn ứng dụng; Return lưu, Escape khôi phục chủ đề trước.

Phông chữ

Zshell kèm JetBrains Mono và ký hiệu Nerd Font. Bất kỳ họ phông đơn cách đã cài nào cũng thay được phông Latin; họ CJK đã cài có thể thêm trước phông ký hiệu và dự phòng hệ thống. Xem font-family, terminal.font-fallback-family, font-size, terminal.font-thicken và terminal.line-height.

Terminal nhanh toàn cục

Khi Zshell chạy, Cmd+I hoặc Terminal → Terminal nhanh hiện hoặc ẩn terminal độc lập. Điều chỉnh kích thước, độ mờ và phím tắt trong Cài đặt → Terminal → Terminal nhanh.

Hoạt động của phiên: Dùng lại không gian làm việc (mặc định) / Không gian làm việc mới mỗi lần. Dùng lại giữ các ngăn và tác vụ. Không gian mới kết thúc khi ẩn. Chế độ thay đổi ở lần hiện tiếp theo; không gian dùng lại vẫn có sẵn khi chuyển về. Lịch sử lệnh theo cấu hình shell. Không gian mới luôn bắt đầu với một terminal trống, không khôi phục đầu ra, bố cục ngăn hay trạng thái phiên trước.

Chia ngăn bằng Chia sang phải / Chia xuống dưới, menu ngữ cảnh hoặc Cmd+D / Cmd+Shift+D. Việc giữ lại bên dưới áp dụng cho không gian dùng lại, gồm tỷ lệ và tiêu điểm.

  • Phím tắt, Esc, nhấn bên ngoài hoặc mất tiêu điểm chỉ ẩn cửa sổ. Shell, nội dung nhập, lịch sử và tác vụ hiện tại vẫn chạy.
  • Ghim cửa sổ để giữ hiển thị khi chuyển ứng dụng. Kích thước, độ mờ và trạng thái ghim vẫn được giữ khi ẩn.
  • Chạy exit để kết thúc phiên; mở lại sẽ bắt đầu shell mới.

Bật terminal.preserve-sessions trước khi mở terminal nhanh mới để tiếp tục chạy sau khi thoát Zshell bình thường. Khi mở lại, cả hai backend đều kết nối lại cùng shell. Zshell → Thoát và kết thúc mọi phiên cũng kết thúc phiên đang ẩn. Khởi động lại macOS sẽ kết thúc các phiên.

Khởi chạy nhanh, dùng lưu và chạy lệnh, là tính năng riêng.

Gợi ý lệnh Vim

Điều chỉnh gợi ý trong Cài đặt → Terminal → Hành vi → Gợi ý lệnh Vim, rồi mở tab Thông tin bên phải. Mục LỆNH VIM xuất hiện dưới thông tin phiên khi Vim, Vi hoặc Neovim hoạt động. Mặc định bật trong cấu hình mới, có hiệu lực ngay với terminal hiện có trên cả hai backend.

Toàn bộ danh sách lệnh thông dụng luôn còn; chỉ ưu tiên thay đổi. Normal đưa :w, :q, yy, p/P lên trước; Visual Block ưu tiên I/A, thay đổi khối và di chuyển góc. Insert, Replace, Visual, Visual Line, Select, dòng lệnh và tìm kiếm có thứ tự riêng. Mỗi mục ghi chế độ áp dụng. Tìm theo phím, mô tả hoặc tên chế độ; mô tả và giao diện tìm theo bất kỳ ngôn ngữ nào trong 17 ngôn ngữ ứng dụng. Xóa truy vấn để trở về danh sách đầy đủ. Gợi ý chỉ để tham khảo, không gửi đầu vào cho trình soạn thảo.

Trình soạn thảo cục bộ được nhận diện qua chương trình tiền cảnh. Trong SSH, Mosh hoặc bộ ghép terminal, việc phát hiện dùng dòng chế độ/trạng thái Vim nhìn thấy và bố cục màn hình, không cài plugin từ xa. Giữ showmode hoặc dòng trạng thái dễ nhận diện. Cấu hình giấu/đổi nhãn chế độ có thể trở về gợi ý Normal hoặc ngăn nhận diện từ xa; ánh xạ phím tùy chỉnh không được diễn giải. Chỉ bảng Thông tin đang hoạt động được lấy mẫu; gợi ý biến mất khi chương trình tiền cảnh đổi hoặc không còn nhận ra trình soạn thảo.

Cũng có thể bật bằng terminal.vim-command-hints = true trong cấu hình.