Когда я печатаю в bash и нажимаю клавишу «Tab» для автоматического завершения, иногда это занимает значительное время. Например, ввод-вывод файла для чтения каталогов занимает> 5 секунд, и поэтому я завис, ожидая завершения ввода-вывода, прежде чем смогу продолжить ввод. Я расстроен и Ctrl-C, чтобы я мог повторить то, что я печатал.
Ctrl-C неудачно, так как я должен повторить все заново. Как я могу сказать bash прекратить попытки выполнить мой запрос автозаполнения?
$ /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
Крис
источник
источник
Ответы:
Я только что нашел это здесь .
Использование
Ctrl+\
. Это остановит завершение и вернется к вашей командной строке без потери текущей команды.источник
Вы можете иметь аналогичные проблемы без завершения вкладки. Это не вносит технической разницы, т.е. применяются те же решения.
Одна из возможностей - начать поиск в фоновом режиме и записать результат в FIFO. Вы можете читать из FIFO с таймаутом затем (
read -t 0.3 ...
).Думаю, я недавно видел более простое решение, чем FIFO, но сейчас я этого не помню.
read -t
работает и с конвейером, но завершениеread
не убивает более ранние части конвейера, и конвейер возвращается только после того, как все его части завершены.источник
На Ubuntu 16.04
q
у меня работал наезд .Смотрите этот https://unix.stackexchange.com/a/341025/332159 .
источник