Tôi đang cố gắng sử dụng các widget hoàn thành của zsh trong các tập lệnh của riêng tôi. Tại một thời điểm tôi muốn có quyền truy cập vào kết quả của mọi lần hoàn thành đang hoạt động trong zsh, hay đúng hơn là tôi muốn có được kết quả cuối cùng của chuỗi hoàn thành.
function foo() {
do_unrelated_stuff()
# call zsh completion
comp_results=_main_complete_() # won't work like this, can only be called from within a completion function
if [[ "$#comp_results" -gt "0" ]]; then
# do something
echo "results:"
else
# do something else
echo "no results"
fi
}
Tôi đã nghĩ đến việc tạo một hàm hoàn thành tùy chỉnh chỉ cần gọi
_main_complete
(hoặc bất kỳ hàm nào phù hợp) và lưu trữ các kết quả trong một biến được xuất để làm cho nó có thể truy cập được vào các hàm khác. Tuy nhiên, điều này cũng có nghĩa là gọi chức năng hoàn thành tùy chỉnh bằng cách nào đó - và tôi không biết làm thế nào. Thậm chí có thể có được kết quả hoàn thành "trung gian" mà không thực hiện hoàn thành thực tế?
Valodim/zsh-capture-completion, as:command, use:capture.zsh, rename-to:capture.zsh