Cuando estoy escribiendo en bash y presiono la tecla "tab" para completar automáticamente, a veces lleva un tiempo considerable. Por ejemplo, el archivo IO para leer directorios tarda más de 5 segundos y, por lo tanto, me quedo a la espera de que se complete IO antes de poder seguir escribiendo. Me siento frustrado y Ctrl-C para poder rehacer lo que estaba escribiendo.
Ctrl-C es lamentable, ya que debo volver a escribir todo de nuevo. ¿Cómo puedo decirle a bash que deje de intentar cumplir con mi solicitud de autocompletar?
$ /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
fuente
fuente
Respuestas:
Acabo de encontrar esto aquí .
Uso
Ctrl+\
. Se detendrá la finalización y volverá a su línea de comando sin perder el comando actual.fuente
Puede tener problemas similares sin completar la pestaña. Esto no introduce una diferencia técnica, es decir, se aplican las mismas soluciones.
Una posibilidad es comenzar la búsqueda en segundo plano y escribir el resultado en un FIFO. Puede leer desde el FIFO con un tiempo de espera entonces (
read -t 0.3 ...
).Supongo que he visto una solución más simple que los FIFO aquí recientemente ... pero actualmente no lo recuerdo.
read -t
también funciona con una tubería, pero el acabadoread
no mata las partes anteriores de la tubería y la tubería regresa solo después de que todas sus partes hayan terminado.fuente
En Ubuntu 16.04 golpear
q
funcionó para mí.Consulte este https://unix.stackexchange.com/a/341025/332159 .
fuente