Batalkan penyelesaian tab zsh

10

Apakah ada cara untuk membatalkan penyelesaian setelah dimulai? Saya kadang-kadang dengan bodohnya menekan tab untuk melengkapi target secara otomatis (hanya dari kemalasan semata) dan akhirnya harus menunggu lebih lama daripada jika saya baru saja mengetik seluruh "instal" atau "periksa" sendiri.

Saya tidak melihat catatan di halaman manual zshzle, tapi mungkin saya melewatkan sesuatu? Apakah ada cangkang lain yang memiliki kemampuan ini?

EDIT : Jawaban sepele. Jadi sebagai gantinya: apakah ada cara bagi zsh untuk memperkirakan bahwa penyelesaian tab akan membutuhkan waktu yang relatif lama untuk dieksekusi dan alih-alih bertanya apakah pengguna ingin ini dilakukan?

Zorawar
sumber
2
ctrl-ctidak bekerja?
llua
1
Sial, benar! Itu tidak terjadi pada saya untuk beberapa alasan. Saya kira saya pikir Ctrl-C akan melakukan sesuatu yang lebih dramatis. Hapus pertanyaan? (Atau mungkin Anda ingin perwakilan?)
Zorawar
1
Saya tidak berpikir ada cara untuk memperkirakan waktu yang dibutuhkan untuk penyelesaian tab. Anda mungkin menyimpan hasil tetapi itu mungkin itu cache.
Ulrich Dangel
1
@zorawar, saya hanya berusaha membantu, tidak mendapatkan skor tinggi:]
llua
1
ctrl-c tidak bekerja untuk semua mekanisme penyelesaian zsh. Kalau ada yang tahu cara lain untuk menghentikan ini. Akan lebih baik memiliki jawaban itu di sini.
xer0x

Jawaban:

7

Sebuah SIGINT mengganggu operasi selesai saat ini dan membawa Anda kembali ke editor line. Jadi tekan Ctrl+ C. Efeknya mungkin tidak langsung: interpreter hanya memeriksa sinyal pada titik-titik tertentu selama eksekusi (mereka sering, meskipun), dan sinyal mungkin memakan waktu cukup lama jika proses zsh diblokir dalam panggilan sistem (misalnya, jika itu menunggu sistem file merespons).

Sayangnya, jika Anda menekan Ctrl+ Cpada waktu yang salah dan tidak ada penyelesaian yang sedang berjalan pada saat sinyal dikirimkan, baris perintah Anda saat ini akan dibatalkan. Ini sulit untuk diperbaiki tanpa memiliki dua kunci interupsi yang berbeda, satu untuk penyelesaian dan satu untuk sisanya, dan saya tidak yakin apakah zsh mendukung ini.

Ini tidak benar-benar layak untuk memperingatkan Anda jika penyelesaian mungkin memakan waktu lama. Kecepatan fungsi penyelesaian sering kali terutama didorong oleh kecepatan di mana beberapa informasi dapat dibaca dari sistem file; apakah informasi ini ada dalam cache atau tidak, berapa jumlahnya, dan seperti apa sistem file itu (mis. ramdisk, hard disk, atau NFS mount) memiliki banyak pengaruh.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Mungkin batas waktu yang dapat dikonfigurasi untuk penyelesaian tab akan menjadi standar yang waras.
antiduh
3

Anda dapat menggunakan ctrl+ kuntuk membatalkan penyelesaian otomatis. namun saya juga tidak dapat menemukan informasi dari panduan zsh , tetapi itu membatalkan pelengkapan otomatis.

j_tt2011
sumber