Завершение вкладки 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 Если кажется, что нет способа решить проблему запрошенным способом (то есть, прервать поиск), тогда подсказка, как (хотя бы частично) избежать проблемы, кажется мне весьма полезной.
— Хауке Лагинг

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.