Tengo esto en la línea de comando:
ln -sf $PWD/wine-
y luego presioné Tabpara completar el nombre del archivo. En versiones anteriores de Ubuntu, esto funcionó bien para completar el wine-
nombre de archivo (y como efecto secundario $PWD
se expandiría en ese momento). Pero ahora lo convierte en
ln -sf \$PWD/wine-
que no es lo que quise decir en absoluto y no completa nada ya que el archivo no comienza literalmente $
.
¿Cómo vuelvo a completar el comportamiento menos roto?
set
me dice que estos son mis ajustes actuales:
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
command-line
bash
keturn
fuente
fuente
Respuestas:
Descubrí que las versiones bash> = 4.2.29 tienen una nueva
direxpand
configuración de shopt. (Veaman docs/bash.1
si echa un vistazo a un nuevo bash, o vea bash.1 de la línea 8951 )Si uno usa Quantal Quetzal 12.10 o de lo contrario se apodera (o desprotege y construye) una nueva fiesta, entonces:
Me da el comportamiento que quiero, necesito y amo.
Solución alternativa: Mientras tanto, Ctrl+ Alt+ en Elugar de Tabhacer lo que quiero también. Pero es incómodo.
Por cierto, hay varios hilos llamados "bash tab variable expansion question?" en gnu.bash.bug . Al leerlos, encontré la información aquí.
fuente
4.4.19
en Ubuntu 18.04 y simplemente funciona. No estoy seguro cuando esto cambió.shopt -u progcomp
resuelve el problema sin expandir la variable a su valorbuscar
_filedir()
en el script de nivel superior bash_completion y cambiar la líneaa
fuente
compopt: noquote: invalid option name
Para aquellos (como yo) con 12.04 pueden usar ~ + en lugar de $ PWD ...
por ejemplo :
fuente
Incluso con el bash actualizado, descubrí que
$
aún se escapa.bash-completion (1:2.1-3.fc20)
paquete/etc/bashrc
de~/.bashrc
parecía solucionarlo.Sospecho que ahora me faltarán algunas características a las que normalmente estoy acostumbrado pero que aún no he notado.
Alternativa (al menos para Fedora 26), agregue
export BASH_COMPLETION_VERSINFO=0
antes del abastecimiento/etc/bashrc
. Esto hace que la secuencia de comandos problemática piense que ya ha sido obtenida.fuente
Esto lo arregló para mí, también eliminó muchas opciones de finalización "inteligentes" que he encontrado que se interponen en el camino al no completar los archivos que sé que están allí porque la estúpida cree que no los quiero como argumentos para un particular mando. ARRRGH
fuente
Encontré el mismo problema con Bash en Cygwin. Solucioné mi problema configurando la siguiente opción.
http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
fuente
Deshabilitar la opción de shell 'complete_fullquote' hace el trabajo:
fuente