bash tab-completion

La finalización de la pestaña Bash agrega espacio adicional después de la primera finalización



tab-completion (4)

La finalización de la pestaña Bash agrega espacio adicional después de la primera finalización, lo que detiene su finalización adicional si el objetivo de compeletion es un archivo en carpetas de varios niveles.

Por ejemplo, tengo un archivo en la ruta ~ / Documents / foo / bar.txt, y quiero listarlo. Me enfrento al siguiente problema, cuando la entrada

a@b:~$ls Docu <TAB>

yo obtengo

a@b:~$ls Documents |(<-this is the cursor, so there is an extra space afer Documents)

Así que no puedo más ficha completa. Tengo que retroceder para eliminar el espacio extra.

Normalmente quiero conseguir:

a@b:~$ls Docu <TAB> a@b:~$ls Documents/ <TAB> a@b:~$ls Documents/foo/ <TAB> a@b:~$ls Documents/foo/bar.txt


Esto ha sido respondido here en askubuntu. Está relacionado con el error bugs.launchpad.net/ubuntu/+source/acroread/+bug/769866

Respuesta relevante del hilo anterior:

edite / etc / bash_completion línea 1587, cambie los valores predeterminados a los nombres de archivo (primero haga una copia de seguridad).


He tenido este mismo problema con mi finalización de bash tanto en Ubuntu 11.10 como en 12.04. Encontré que pude obtener muchos comandos para comenzar a trabajar correctamente editando / etc / bash_completion. Específicamente, comenté la siguiente sección:

#### # makeinfo and texi2dvi are defined elsewhere. # #for i in a2ps awk bash bc bison cat colordiff cp csplit / # curl cut date df diff dir du enscript env expand fmt fold gperf gprof / # grep grub head indent irb ld ldd less ln ls m4 md5sum mkdir mkfifo mknod / # mv netstat nl nm objcopy objdump od paste patch pr ptx readelf rm rmdir / # sed seq sha{,1,224,256,384,512}sum shar sort split strip tac tail tee / # texindex touch tr uname unexpand uniq units vdir wc wget who; do # have $i && complete -F _longopt -o default $i #done

Ahora ls funciona bien otra vez. Todavía no he descubierto por qué mv todavía se comporta mal.


Solo para el registro: También hay un error en el paquete adobereader-enu (acroread) que interrumpe el proceso de bash. En este caso, simplemente puede eliminar el enlace simbólico:

rm /etc/bash_completion.d/acroread.sh

Vea también: bugs.launchpad.net/ubuntu/+source/acroread/+bug/769866


También resolví el problema cambiando _filedir con _filedir_pdf en /etc/bash_completion.d/acroread.sh (Ubuntu 12.04)

Acroread Bash Complete cambia la función _filedir, lo que altera el comportamiento de muchas otras funciones de Alsobash Complete.