Tengo esto en la línea de comando:
ln -sf $PWD/wine-
y luego presiono Tabpara completar el nombre del archivo. En versiones anteriores de Ubuntu, esto funcionaba bien para completar el wine-
nombre del archivo (y como efecto secundario $PWD
se ampliarí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 con $
.
¿Cómo puedo volver a completar el comportamiento menos roto?
set
me dice que estas son mis configuraciones actuales:
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
Respuesta1
he encontrado queversiones de bash >= 4.2.29tener una nueva direxpand
configuración de tienda. (Mira man docs/bash.1
si revisas una nueva fiesta o vesbash.1 de la línea 8951)
Si uno usa Quantal Quetzal 12.10 o consigue (o verifica y construye) un nuevo bash, entonces:
shopt -s direxpand
Me da el comportamiento que quiero, necesito y amo.
Solución alternativa: mientras tanto, Ctrl+ Alt+ Een lugar de Tabhacer lo que quiero también. Pero es incómodo.
Por cierto, hay varios hilos llamados "¿pregunta sobre expansión de variable de pestaña bash?" engnu.bash.bug. Al leerlos, encontré la información aquí.
Respuesta2
shopt -u progcomp
Esto me solucionó el problema, también eliminó muchas opciones de finalización "inteligentes" que encontré que interfieren al no completar archivos que sé que están ahí porque el estúpido piensa que no los quiero como argumentos para un tema en particular. dominio. ARRRGH
Respuesta3
busque _filedir()
en el script bash_completion de nivel superior y cambie la línea
compopt -o filenames 2>/dev/null
a
compopt -o filenames -o noquote 2>/dev/null
Respuesta4
Para aquellos (como yo) con 12.04 pueden usar ~+ en lugar de $PWD...
Por ejemplo :
cd /bin
echo ~+/ls
/bin/ls