Làm thế nào tôi có thể lập trình truy cập hoàn thành zsh?


8

zsh có một hệ thống hoàn thành, được kích hoạt bằng cách nhấn tab:

llama@llama:~$ git st<Tab>
Completing main porcelain command
stash      -- stash away changes to dirty working directory
status     -- show working-tree status
Completing plumbing internal helper command
stripspace -- filter out empty lines

Tất cả những gì tôi có thể nhận ra là điều này xuất phát từ kịch bản /usr/share/zsh/functions/Completion/Unix/_git, _gitlệnh hoàn thành được gọi ở đâu.

Giả sử tôi biết tên của hàm hoàn thành (ví dụ _git), làm thế nào tôi có thể nhận được đầu ra của những gì sẽ xảy ra nếu tôi nhập một chuỗi nhất định và nhấn tab? Về cơ bản, tôi đang cố gắng lấy đầu vào của ex. git stvà nhận đầu ra ở trên (lập trình, từ một tập lệnh).

Có rất nhiều khác đang tồn tại câu hỏi về này cho bash, nhưng tôi đã không tìm thấy bất cứ điều gì giải thích làm thế nào để đạt được điều này với zsh.


Câu trả lời:


2

Điều này có thể được thực hiện bằng cách sử dụng zsh-chụp-hoàn thành . Tệp README.md của kho lưu trữ cung cấp một số ví dụ:

capture.zsh 'vim -'
capture.zsh 'vim --'
capture.zsh 'vim --r'
capture.zsh 'echo *('
capture.zsh 'scp hostname:'

Lưu ý rằng chính gói đó nói rằng nó là một bằng chứng về khái niệm và như vậy có thể có lỗi trong quá trình thực thi của nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.