Завершение вкладки Bash прекратить поиск

8

Когда я печатаю в 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.
$
Крис
источник
Возможно, вы захотите взглянуть на это. ubuntuforums.org/showthread.php?t=1865538
Рамеш

Ответы:

1

Я только что нашел это здесь .

Использование Ctrl+\. Это остановит завершение и вернется к вашей командной строке без потери текущей команды.

Робин Тони
источник
К сожалению, это не сработало для меня в Ubuntu
Джош
0

Вы можете иметь аналогичные проблемы без завершения вкладки. Это не вносит технической разницы, т.е. применяются те же решения.

Одна из возможностей - начать поиск в фоновом режиме и записать результат в FIFO. Вы можете читать из FIFO с таймаутом затем ( read -t 0.3 ...).

Думаю, я недавно видел более простое решение, чем FIFO, но сейчас я этого не помню. read -tработает и с конвейером, но завершение readне убивает более ранние части конвейера, и конвейер возвращается только после того, как все его части завершены.

Хауке Лагинг
источник
как это относится к вопросу ...?
Ленсовет
@lensovet Если кажется, что нет способа решить проблему запрошенным способом (то есть, прервать поиск), тогда подсказка, как (хотя бы частично) избежать проблемы, кажется мне весьма полезной.
Хауке Лагинг