Ketika saya mengetikkan bash dan saya menekan tombol "tab" untuk menyelesaikan otomatis, kadang-kadang butuh waktu yang signifikan. Misalnya, file IO untuk membaca direktori membutuhkan waktu> 5 detik, dan dengan demikian saya digantung menunggu IO untuk menyelesaikan sebelum saya dapat melanjutkan mengetik. Saya frustrasi dan Ctrl-C sehingga saya bisa mengulang apa yang saya ketikkan.
Ctrl-C sangat disayangkan, karena saya harus mengetik ulang semuanya lagi. Bagaimana saya dapat memberitahu bash untuk berhenti berusaha memenuhi permintaan lengkapi otomatis saya.
$ /long/path/to/some/d # once I've typed this, I press <TAB>. I now will be
# stuck waiting for perhaps 10 seconds. The only thing I
# know to do is Ctrl-C. When I press Ctrl-C, I am forced
# to retype the original command string.
$
bash
autocomplete
Chris
sumber
sumber
Jawaban:
Saya baru saja menemukan ini di sini .
Gunakan
Ctrl+\
. Ini akan menghentikan penyelesaian dan kembali ke baris perintah Anda tanpa kehilangan perintah saat ini.sumber
Anda dapat memiliki masalah serupa tanpa penyelesaian tab. Ini tidak memperkenalkan perbedaan teknis yaitu solusi yang sama berlaku.
Salah satu kemungkinan adalah memulai pencarian di latar belakang dan menulis hasilnya ke FIFO. Anda dapat membaca dari FIFO dengan batas waktu kemudian (
read -t 0.3 ...
).Saya kira saya telah melihat solusi yang lebih sederhana daripada FIFO di sini baru-baru ini ... tapi saat ini saya tidak ingat itu.
read -t
bekerja dengan pipa juga, tetapi finishingread
tidak membunuh bagian pipa sebelumnya dan pipa kembali hanya setelah semua bagiannya selesai.sumber
Di Ubuntu 16,04 memukul
q
berhasil untuk saya.Lihat ini https://unix.stackexchange.com/a/341025/332159 .
sumber