Làm thế nào để sử dụng while-no-input?


11

Từ chuỗi tài liệu:

Chỉ thực hiện CƠ THỂ miễn là không có đầu vào đang chờ xử lý.
Nếu đầu vào đến, kết thúc việc thực thi BODY và while-no-inputtrả về t. Bỏ cuộc làm cho nó trở về con số không. Nếu BODY kết thúc, while-no-inputtrả về bất kỳ giá trị nào BODY tạo ra.

Nếu tôi hiểu chính xác, macro này cho phép tôi (cố gắng) thực hiện một tính toán nặng mà không treo giao diện. Đó chắc chắn là một khái niệm mà tôi thấy hấp dẫn, nhưng tôi không biết khi nào nó hữu ích trong thực tế.

Dường như việc tính toán có thể bị gián đoạn bất cứ lúc nào, không có thông tin về nơi đã xảy ra và không có cách nào dễ dàng để tiếp tục sau đó. Điều đó khiến tôi nghĩ rằng nó có thể không hữu ích sau tất cả ...

  • Có một cách khuyến nghị sử dụng while-no-inputmacro?
  • Có bất kỳ ví dụ sử dụng của macro này trong tự nhiên?

1
Có vẻ như icomplete +, ivy, helm là một vài trong số các gói sử dụng nó.
Kaushal Modi

Câu trả lời:


10

Thật vậy, không có hỗ trợ cho việc nối lại. Tất nhiên, cơ while-no-inputthể có thể làm "điểm kiểm tra" thường xuyên để biết bắt đầu từ đâu vào lần tới.

Nhưng động lực ban đầu cho chức năng này là trong trường hợp thông tin được tính toán có khả năng vô dụng sau lệnh tiếp theo. Cụ thể hơn, nó đã được giới thiệu icomplete, do đó, việc tính toán tập hợp các ứng cử viên hoàn thành không ngăn người dùng gõ thêm văn bản (do đó đòi hỏi phải tính toán lại tập hợp các ứng cử viên hoàn thành đó).


4

Nó rất hữu ích trong tư vấn-git-grep : Tôi có thể gọi git greptoàn bộ 3.800.000 dòng của kho git Emacs sau mỗi lần nhấn phím. Không có hangouts. Và nó ổn khi bị gián đoạn, bạn chỉ cần kiểm tra xem.

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.