Заполнение вкладки Bash добавляет дополнительное пространство после первого завершения

Bash Заполнение вкладки добавляет дополнительное пространство после первого завершения, которое останавливает дальнейшее завершение, если цель компиляции является файлом в многоуровневых папках.

Например, у меня есть файл в пути ~/Documents/foo/bar.txt, и я хочу его перечислить. Я сталкиваюсь со следующей проблемой, когда ввод

[email protected]:~$ls Docu <TAB>

Я получаю

[email protected]:~$ls Documents |(<-this is the cursor, so there is an extra space afer Documents)

Итак, я не могу завершить вкладку. Мне нужно отменить пробел, чтобы удалить лишнее пространство.

Обычно я хочу получить:

[email protected]:~$ls Docu <TAB>
[email protected]:~$ls Documents/ <TAB>
[email protected]:~$ls Documents/foo/ <TAB>
[email protected]:~$ls Documents/foo/bar.txt

Ответы

Ответ 1

Только для записи: в пакете adobereader-enu (acroread) есть ошибка, которая прерывает завершение bash. В этом случае вы можете просто удалить символическую ссылку:

rm /etc/bash_completion.d/acroread.sh

Смотрите также: https://bugs.launchpad.net/ubuntu/+source/acroread/+bug/769866

Ответ 2

У меня была такая же проблема с моим завершением bash в Ubuntu 11.10 и 12.04. Я обнаружил, что мне удалось заставить много команд начать правильно работать, редактируя /etc/bash _completion. В частности, я прокомментировал следующий раздел:

####
# 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

Теперь снова работает хорошо. Я еще не понял, почему mv все еще ошибочно ведет себя.

Ответ 3

Это ответ на здесь в askubuntu. Это связано с ошибкой здесь

Соответствующий ответ из приведенного выше потока:

отредактировать/etc/bash_completion line 1587, по умолчанию поменять имена файлов (сначала сделать резервную копию).

Ответ 4

Я также обошел проблему, изменив _filedir с _filedir_pdf в /etc/bash _completion.d/acroread.sh(Ubuntu 12.04)

acroread bash завершает изменение функции _filedir, тем самым изменяя поведение множества других функций завершения бота