zsh setara dengan bash show-all-if-ambiguous?


8

Dalam bash, jika Anda menekan tab ketika ada beberapa penyelesaian yang mungkin, Anda mendapatkan daftar kecocokan yang terus dicetak ulang jika Anda berulang kali menekan tab. Dalam tcsh, pengaturan autocomplete untuk ditingkatkan juga mencapai ini.

Di zsh, Anda memang mendapatkan daftar kecocokan, tetapi pada tab ke-2, tekan 3 tab itu mulai menelusuri pertandingan. Apakah ada cara untuk membuat zsh melakukan hal yang sama dengan bash's show-all-if-ambiguous tanpa bersepeda?

Saya tidak mencari yang pintar tetapi tidak berguna "mengapa Anda menekan tab beberapa kali jika ditampilkan setelah yang pertama?". Jika saya dapat menyesuaikan kebiasaan saya, saya akan melakukannya sekarang.

Jawaban:


5

Zsh memiliki banyak opsi terkait penyelesaian (lihat di man zshoptionsbawah Completion). Saya pikir Anda mencari setopt no_auto_menudan mungkin setopt bash_auto_listjuga.


Maaf, saya mengucapkan pertanyaan saya dengan buruk. Saya ingin tahu cara menonaktifkan siklus penyelesaian tab. Saya pikir saya akan memulai pertanyaan baru.

3
@ user714112: setopt no_auto_menutidak menonaktifkan siklus penyelesaian tab: jika Anda menekan Tabdan awalan saat ini ambigu, Anda melihat menu, dan hanya itu, baris perintah tidak akan berubah.
Gilles 'SANGAT berhenti menjadi jahat'

Terima kasih, kamu benar. Saya tidak yakin mengapa saya tidak melihat itu sebelumnya. Apakah mungkin untuk menampilkan ulang daftar pada TAB ke-2, ke-3, ke-4, bukan apa-apa? Naluri manusia adalah menganggap keyboard Anda tidak berfungsi jika tidak ada yang terjadi pada 2, 3, 4 penekanan tombol tab.
Sridhar Sarnobat

@ user7000: Sekali lagi, ini menampilkan kembali daftar setiap kali Anda menekan Tab. Jika saya menghapus layar dari menu terminal emulator, atau membuat file, kemudian tekan Tablagi, zsh menampilkan kembali daftar dan menampilkan file baru. (Baru diuji dengan zsh 4.3.4, dan saya tidak berpikir bahwa perilaku telah berubah dalam waktu yang lama.)
Gilles 'SO-stop being evil'

1
Saya akhirnya mendapatkan solusinya. Saya membutuhkan 2 opsi Anda dan menghapus ALWAYS_LAST_PROMPT. Jadi ini memberi saya perilaku sulit dipahami yang saya inginkan: setopt bash_auto_list; setopt no_auto_menu; batalkan setel ALWAYS_LAST_PROMPT; Sekali lagi, terima kasih telah membantu saya dengan ini. Saya menghargai kegigihan Anda
Sridhar Sarnobat
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.