zsh tương đương với bash show-all-if-mơ hồ?


8

Trong bash, nếu bạn nhấn tab khi có nhiều lần hoàn thành có thể, bạn sẽ nhận được một danh sách các trận đấu tiếp tục in lại nếu bạn nhấn liên tục vào tab. Trong tcsh, cài đặt tự động hoàn thành để tăng cường cũng đạt được điều này.

Trong zsh, bạn có được danh sách các trận đấu, nhưng trên tab thứ 2, thứ 3, nó bắt đầu đạp xe qua các trận đấu. Có cách nào để zsh thực hiện tương đương với show-all-if-mơ hồ của bash mà không cần đi xe đạp không?

Tôi không tìm kiếm sự thông minh nhưng vô dụng "tại sao bạn lại nhấn tab nhiều lần nếu nó hiển thị sau lần đầu tiên?". Nếu tôi đã có thể điều chỉnh thói quen của mình thì bây giờ tôi đã làm như vậy.

Câu trả lời:


5

Zsh có rất nhiều tùy chọn liên quan đến hoàn thành (xem man zshoptionsbên dưới Completion). Tôi nghĩ rằng bạn là sau setopt no_auto_menuvà có lẽ setopt bash_auto_listlà tốt.


Xin lỗi, tôi đặt câu hỏi của tôi rất tệ. Tôi muốn biết làm thế nào để vô hiệu hóa hoàn thành chu kỳ tab. Tôi nghĩ rằng tôi sẽ bắt đầu một câu hỏi mới.

3
@ user714112: setopt no_auto_menukhông tắt chu trình hoàn thành tab: nếu bạn nhấn Tabvà tiền tố hiện tại không rõ ràng, bạn sẽ thấy một menu và đó là dòng lệnh sẽ không thay đổi.
Gilles 'SO- ngừng trở nên xấu xa'

Cảm ơn bạn, bạn đã đúng. Tôi không chắc tại sao tôi không thấy điều đó sớm hơn. Có thể lấy nó để hiển thị lại danh sách trên TAB thứ 2, 3, 4 thay vì không có gì không? Bản năng của con người là nghĩ rằng bàn phím của bạn không hoạt động nếu không có gì xảy ra trên phím nhấn tab 2, 3, 4.
Sridhar Sarnobat

@ user7000: Một lần nữa, nó sẽ hiển thị lại danh sách mỗi lần bạn nhấn Tab. Nếu tôi xóa màn hình khỏi menu giả lập thiết bị đầu cuối hoặc tạo tệp, sau đó nhấn Tablại, zsh hiển thị lại danh sách và hiển thị tệp mới. (Chỉ được thử nghiệm với zsh 4.3.4 và tôi không nghĩ rằng hành vi đó đã thay đổi trong một thời gian dài.)
Gilles 'SO- ngừng trở nên xấu xa'

1
Cuối cùng tôi đã có giải pháp. Tôi cần 2 tùy chọn của bạn cộng với xóa ALWAYS_LAST_PROMPT. Vì vậy, điều này mang lại cho tôi hành vi khó nắm bắt mà tôi muốn: setopt bash_auto_list; thiết lập no_auto_menu; bỏ cài đặt ALWAYS_LAST_PROMPT; Một lần nữa, cảm ơn bạn đã giúp tôi với điều này. Tôi đánh giá cao sự kiên trì của bạn
Sridhar Sarnobat
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.