Есть одна вещь, которая мешает мне отказаться от моего графического файлового менеджера для bash: bash не выполняет автодополнение до единственного подкаталога в пустом каталоге.
$ ls
.. // is not displayed, when cmd is simply ls
. // but they still exist
subdir/
Я хочу иметь возможность расширяться cd <tab>
, cd subdir/
так как в текущем каталоге больше ничего нет, но bash требует ввести первую букву для завершения этой команды.
Вариант использования
Навигация по проектам с вложенными каталогами (особенно неизвестными) — это мучение. /src/main/com/application/module/package переводится как:
s<tab><tab><tab>m<tab><tab><tab>c<tab><tab><tab>a<tab>...
где, например, в thunar, первый каталог выбран заранее, поэтому я просто могу нажать Enter несколько раз.
Я предполагаю, что это связано с идентификатором текущего и родительского каталога. Как правильно архифицировалось это поведение в bash?
//редактирование_2:
Я использую xfce4-terminal на Debian 10
решение1
Спасибо всем за быстрые комментарии к моей проблеме. Отключение shell-скриптов для программируемых shell-скриптов решило мою проблему.
Это произошло из-за предустановленного пакета Debian. Действия по устранению этого поведения были следующими:
- избавиться от вхождений следующего листинга кода в моих
.bashrc
файлах, а именно $HOME/.bashrc, $HOME/.profile, /etc/bash.bashrc и /etc/profile. - избавиться от пакета, с помощью
apt remove bash-completion
которого будут удалены следующие файлыПакеты Debian — список файлов - источник отредактированного .bashrc / перезапустите bash.
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
Спасибо вам большое, ребята!