Подтвердить что ты не робот

Заполнение вкладки 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
4b9b3361

Ответ 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, тем самым изменяя поведение множества других функций завершения бота