2012-09-24 47 views
11

Tôi đã thấy nhiều làm điều này
autoload -Uz compinit
compinit

và những người khác làm điều này
autoload -U compinit
compinit -i

Tôi muốn biết sự khác biệt. Tôi nên sử dụng cái nào?zsh hoàn chênh lệch

Trả lời

10

autoload, từ man zshbuiltins:

Cờ -z-k đánh dấu chức năng để được tự động nạp trong thi đua mẹ đẻ hoặc ksh, như thể tùy chọn KSH_AUTOLOAD đã unset hoặc đã được thiết lập, tương ứng.

Các -U cờ có thể được truy trở lại: autoload tương đương với function -u, tương đương với typeset -f. typeset, tóm lại, được sử dụng để:

Đặt hoặc hiển thị thuộc tính và giá trị cho thông số trình bao.

Khi -f được sử dụng kết hợp với -U:

[Nguyên nhân cờ -f] Tên đề cập đến chức năng chứ không phải là tham số. ... Cờ -u và -U làm cho chức năng được đánh dấu để tự động tải; -U cũng làm mở rộng bí danh bị chặn khi hàm được nạp.

compinit là chức năng khởi tạo hoàn thành được sử dụng bởi compsys, hệ thống hoàn thành Z-Shell 'mới hơn'. Xem man zshcompsys để biết chi tiết.

Cờ -i được sử dụng để:

để làm compinit âm thầm bỏ qua tất cả các file và thư mục không an toàn sử dụng tùy chọn -i

Nói chung, bạn nên sử dụng autoload -Uz, theo this interesting read .

+2

* "- Uz"? Vâng, đó là "điều đúng" [tm] hầu như luôn luôn, vì vậy tôi sẽ không thảo luận ở đây * - meh, một phần tôi đang tìm kiếm không thực sự được giải thích trong bài báo – ThiefMaster