Hủy hoàn thành tab zsh


10

Có cách nào để hủy bỏ hoàn thành một khi nó đã được bắt đầu? Thỉnh thoảng tôi lại dại dột nhấn tab để tự động hoàn thành các mục tiêu (chỉ từ sự xấc xược) và rồi cuối cùng tôi phải chờ một thời gian dài hơn nếu tôi vừa tự gõ toàn bộ "cài đặt" hoặc "kiểm tra".

Tôi không thấy bất cứ điều gì đáng chú ý trong trang người đàn ông zshzle, nhưng có lẽ tôi đã bỏ lỡ điều gì đó? Có bất kỳ vỏ khác có khả năng này?

EDIT : Câu trả lời tầm thường. Vì vậy, thay vào đó: có cách nào để zsh ước tính việc hoàn thành tab sẽ mất một thời gian tương đối dài để thực hiện và thay vào đó hãy hỏi liệu người dùng có muốn thực hiện việc này không?


2
ctrl-ckhông làm việc
llua

1
Chết tiệt, nó làm! Điều đó đã không xảy ra với tôi vì một số lý do. Tôi đoán tôi nghĩ rằng Ctrl-C sẽ làm một cái gì đó ấn tượng hơn. Xóa câu hỏi? (Hoặc có thể bạn muốn một số đại diện?)
Zorawar

1
Tôi không nghĩ có một cách để ước tính thời gian cần thiết để hoàn thành tab. Bạn có thể lưu trữ kết quả nhưng đó có thể là nó.
Ulrich Dangel

1
@zorawar, tôi chỉ đang cố gắng giúp đỡ, không đạt điểm cao:]
llua

1
ctrl-c không hoạt động cho tất cả các cơ chế hoàn thành của zsh. Nếu bất cứ ai biết các cách khác để ngăn chặn điều này. Nó sẽ là tuyệt vời để có câu trả lời ở đây.
xer0x

Câu trả lời:


7

Một SIGINT làm gián đoạn hoạt động hoàn hiện và mang đến cho bạn trở lại với biên tập dòng. Vì vậy, nhấn Ctrl+ C. Hiệu ứng có thể không ngay lập tức: trình thông dịch chỉ kiểm tra tín hiệu tại một số điểm nhất định trong khi thực hiện (tuy nhiên chúng thường xuyên) và tín hiệu có thể mất một lúc nếu quá trình zsh bị chặn trong một cuộc gọi hệ thống (ví dụ: nếu nó chờ đợi một hệ thống tập tin để đáp ứng).

Thật không may, nếu bạn nhấn Ctrl+ Ckhông đúng lúc và không hoàn thành tiến trình vào thời điểm tín hiệu được phát, dòng lệnh hiện tại của bạn sẽ bị hủy. Điều này rất khó khắc phục nếu không có hai khóa ngắt khác nhau, một cho hoàn thành và một cho phần còn lại và tôi không chắc liệu zsh có hỗ trợ điều này không.

Nó không thực sự khả thi để cảnh báo bạn nếu việc hoàn thành có thể mất nhiều thời gian. Tốc độ của một chức năng hoàn thành thường chủ yếu được điều khiển bởi tốc độ mà một số thông tin có thể được đọc từ hệ thống tập tin; thông tin này có trong bộ nhớ cache hay không, có bao nhiêu và hệ thống tập tin đó là gì (ví dụ: ramdisk, đĩa cứng hoặc NFS mount) có rất nhiều ảnh hưởng.


1
Có lẽ thời gian chờ cấu hình để hoàn thành tab sẽ là một mặc định lành mạnh.
antiduh

3

Bạn có thể sử dụng ctrl+ kđể hủy bỏ tính năng tự động hoàn thành. tuy nhiên tôi cũng không thể tìm thấy bất kỳ thông tin nào từ hướng dẫn zsh , nhưng nó sẽ hủy tự động hoàn thành.

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.