
Los editores de texto como vim y emacs tienen complementos como ace jump, avy, que te permiten presionar un carácter, luego resaltarán cada instancia de ese carácter con una combinación de teclas temporal, luego puedes presionar la combinación de teclas para saltar directamente a él.
Me pregunto si existe algo así para que los shells (por ejemplo, bash) naveguen rápidamente a un directorio específico sin tener que cd
recorrer directorios. ¿Quizás algo que enumere directorios con cierta profundidad, espere un carácter de entrada, resalte instancias de caracteres con una secuencia de teclas y cd
entre en ellos cuando se presione la secuencia?
Si algo así no existiera ya, ¿qué tan fácil sería crearlo?
Respuesta1
fzf
hace eso. Es un asistente de selección de archivos/completación difusa. Su uso básico es seleccionar archivos de una lista grande (por ejemplo, find . -type f | fzf > selected
).
Una vez que lo instale y lo cargue en su shell, puede presionar AltCpara abrir una ventana en la que puede escribir una cadena difusa para buscar directorios. Cuando selecciona uno y presiona Enter, fzf irá cd
a ese directorio.
Para autocompletar nombres de archivos de la misma manera, puede presionar CtrlT. Para buscar el historial, presione CtrlR.
Respuesta2
Quizás no sea exactamente lo que quieres pero creo que vale la pena intentarlo.WCD. Crea una "base de datos" (un único archivo de texto) que almacena la lista de directorios. El wcd foo
comando muestra una lista de los directorios que contiene foo
y puede elegir uno de ellos.
Otra opción similar essalto automático.
Respuesta3
Hay varios shells y extensiones de shell que admitenautocompletar ruta parcialypezes uno de ellos
Por ejemplo, cd /v/l/fsck
Tabconvertirá la ruta a /var/log/fsck/
. cd /u/s/appl
Tabampliará el camino hacia/usr/share/applications/
Algunas otras alternativas:
Ver también