Я пытаюсь использовать выполнение вкладок для команд в Ubuntu 11.04 Beta 1, используя все последние обновления, но, похоже, не работает. (Хотя установлено пакетное завершение пакета)
Завершение вкладки работает правильно только для каталогов или файлов.
Любые идеи, которые нужно копать?
Я думал, что я также добавлю следующее дополнительное объяснение неудачи завершения bash - он слишком длинный для комментария и может быть полезен для кого-то, у кого есть проблема с завершением bash, поскольку, по-видимому, это «общий» канонический вопрос, к которому относятся все дубликаты.
Даже если у вас есть соответствующая строка в вашем .bashrc (как в ответе выше) и установленном пакете bash-completion, завершение bash может по-прежнему сбой, если у вас есть либо shopt -s nullglob или shopt -s failglob в ваших .bashrc или .bash_aliases.
Следующие сценарии были протестированы с удалением всех пользовательских настроек .bashrc и .bash_aliases, чтобы дать справедливый тест, с соответствующая строка завершения bash в .bashrc присутствует и с bash-completion установлена.
1) Первый сценарий - это когда вы shopt -s failglob в своих .bashrc или .bash_aliases.
При попытке включить полные каталоги и файлы соответственно, эти ошибки произойдут:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Однако команды будут успешно завершены.
2) С включенным shopt -s nullglob , пытаясь вставить вкладку plete каталог или файл вместо этого приведет ко всему, что указано, без завершения:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Я прервал листинг здесь, поскольку он был очень длинным и не нужно воспроизводить все это.
Опять же, завершение команды все равно будет работать.
Итак, просто удаление shopt -s failglob или shopt -s nullglob также может решить проблему ошибок с завершением bash, предполагая, что у вас есть утвердить строку в ваших .bashrc и bash-completion.
В дополнение к изменению файла /etc/bash.bashrc (другие ответы) вам может потребоваться установить пакет bash-completion.
Проверить, если файл /etc/bash_completion выйдет. Если нет:
sudo apt-get install bash-completion
(В моем инсталляции Debian 7 он изначально не был установлен)
Как бы это ни звучало, убедитесь, что bash - это ваша активная оболочка
echo $SHELL
Я только что обновился до Ubuntu 14.04.1 LTS и не получил автоматическое завершение вкладки, даже после того, этот пост, только для того, чтобы реализовать мою оболочку, было установлено значение /bin/sh, а не /bin/bash.
Обновление до Ubuntu 14.04.01
Проверьте, есть ли у вас следующий фрагмент в вашем .bashrc (должен быть там по умолчанию)
sudo vim /etc/bash.bashrc ( введите «i», чтобы отредактировать файл)
# enable bash completion in interactive shells
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
Uncomment 7 строк выше
Сохранить файл «esc + w + q + enter»
Перезапустить bash
exec bash
Я думал, что я также добавлю следующее дополнительное объяснение неудачи завершения bash - он слишком длинный для комментария и может быть полезен для кого-то, у кого есть проблема с завершением bash, поскольку, по-видимому, это «общий» канонический вопрос, к которому относятся все дубликаты.
Даже если у вас есть соответствующая строка в вашем .bashrc (как в ответе выше) и установленном пакете bash-completion, завершение bash может по-прежнему сбой, если у вас есть либо shopt -s nullglob или shopt -s failglob в ваших .bashrc или .bash_aliases.
Следующие сценарии были протестированы с удалением всех пользовательских настроек .bashrc и .bash_aliases, чтобы дать справедливый тест, с соответствующая строка завершения bash в .bashrc присутствует и с bash-completion установлена.
1) Первый сценарий - это когда вы shopt -s failglob в своих .bashrc или .bash_aliases.
При попытке включить полные каталоги и файлы соответственно, эти ошибки произойдут:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Однако команды будут успешно завершены.
2) С включенным shopt -s nullglob , пытаясь вставить вкладку plete каталог или файл вместо этого приведет ко всему, что указано, без завершения:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Я прервал листинг здесь, поскольку он был очень длинным и не нужно воспроизводить все это.
Опять же, завершение команды все равно будет работать.
Итак, просто удаление shopt -s failglob или shopt -s nullglob также может решить проблему ошибок с завершением bash, предполагая, что у вас есть утвердить строку в ваших .bashrc и bash-completion.
Я думал, что я также добавлю следующее дополнительное объяснение неудачи завершения bash - он слишком длинный для комментария и может быть полезен для кого-то, у кого есть проблема с завершением bash, поскольку, по-видимому, это «общий» канонический вопрос, к которому относятся все дубликаты.
Даже если у вас есть соответствующая строка в вашем .bashrc (как в ответе выше) и установленном пакете bash-completion, завершение bash может по-прежнему сбой, если у вас есть либо shopt -s nullglob или shopt -s failglob в ваших .bashrc или .bash_aliases.
Следующие сценарии были протестированы с удалением всех пользовательских настроек .bashrc и .bash_aliases, чтобы дать справедливый тест, с соответствующая строка завершения bash в .bashrc присутствует и с bash-completion установлена.
1) Первый сценарий - это когда вы shopt -s failglob в своих .bashrc или .bash_aliases.
При попытке включить полные каталоги и файлы соответственно, эти ошибки произойдут:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Однако команды будут успешно завершены.
2) С включенным shopt -s nullglob , пытаясь вставить вкладку plete каталог или файл вместо этого приведет ко всему, что указано, без завершения:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Я прервал листинг здесь, поскольку он был очень длинным и не нужно воспроизводить все это.
Опять же, завершение команды все равно будет работать.
Итак, просто удаление shopt -s failglob или shopt -s nullglob также может решить проблему ошибок с завершением bash, предполагая, что у вас есть утвердить строку в ваших .bashrc и bash-completion.
Я думал, что я также добавлю следующее дополнительное объяснение неудачи завершения bash - он слишком длинный для комментария и может быть полезен для кого-то, у кого есть проблема с завершением bash, поскольку, по-видимому, это «общий» канонический вопрос, к которому относятся все дубликаты.
Даже если у вас есть соответствующая строка в вашем .bashrc (как в ответе выше) и установленном пакете bash-completion, завершение bash может по-прежнему сбой, если у вас есть либо shopt -s nullglob или shopt -s failglob в ваших .bashrc или .bash_aliases.
Следующие сценарии были протестированы с удалением всех пользовательских настроек .bashrc и .bash_aliases, чтобы дать справедливый тест, с соответствующая строка завершения bash в .bashrc присутствует и с bash-completion установлена.
1) Первый сценарий - это когда вы shopt -s failglob в своих .bashrc или .bash_aliases.
При попытке включить полные каталоги и файлы соответственно, эти ошибки произойдут:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Однако команды будут успешно завершены.
2) С включенным shopt -s nullglob , пытаясь вставить вкладку plete каталог или файл вместо этого приведет ко всему, что указано, без завершения:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Я прервал листинг здесь, поскольку он был очень длинным и не нужно воспроизводить все это.
Опять же, завершение команды все равно будет работать.
Итак, просто удаление shopt -s failglob или shopt -s nullglob также может решить проблему ошибок с завершением bash, предполагая, что у вас есть утвердить строку в ваших .bashrc и bash-completion.
Я думал, что я также добавлю следующее дополнительное объяснение неудачи завершения bash - он слишком длинный для комментария и может быть полезен для кого-то, у кого есть проблема с завершением bash, поскольку, по-видимому, это «общий» канонический вопрос, к которому относятся все дубликаты.
Даже если у вас есть соответствующая строка в вашем .bashrc (как в ответе выше) и установленном пакете bash-completion, завершение bash может по-прежнему сбой, если у вас есть либо shopt -s nullglob или shopt -s failglob в ваших .bashrc или .bash_aliases.
Следующие сценарии были протестированы с удалением всех пользовательских настроек .bashrc и .bash_aliases, чтобы дать справедливый тест, с соответствующая строка завершения bash в .bashrc присутствует и с bash-completion установлена.
1) Первый сценарий - это когда вы shopt -s failglob в своих .bashrc или .bash_aliases.
При попытке включить полные каталоги и файлы соответственно, эти ошибки произойдут:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Однако команды будут успешно завершены.
2) С включенным shopt -s nullglob , пытаясь вставить вкладку plete каталог или файл вместо этого приведет ко всему, что указано, без завершения:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Я прервал листинг здесь, поскольку он был очень длинным и не нужно воспроизводить все это.
Опять же, завершение команды все равно будет работать.
Итак, просто удаление shopt -s failglob или shopt -s nullglob также может решить проблему ошибок с завершением bash, предполагая, что у вас есть утвердить строку в ваших .bashrc и bash-completion.
Я думал, что я также добавлю следующее дополнительное объяснение неудачи завершения bash - он слишком длинный для комментария и может быть полезен для кого-то, у кого есть проблема с завершением bash, поскольку, по-видимому, это «общий» канонический вопрос, к которому относятся все дубликаты.
Даже если у вас есть соответствующая строка в вашем .bashrc (как в ответе выше) и установленном пакете bash-completion, завершение bash может по-прежнему сбой, если у вас есть либо shopt -s nullglob или shopt -s failglob в ваших .bashrc или .bash_aliases.
Следующие сценарии были протестированы с удалением всех пользовательских настроек .bashrc и .bash_aliases, чтобы дать справедливый тест, с соответствующая строка завершения bash в .bashrc присутствует и с bash-completion установлена.
1) Первый сценарий - это когда вы shopt -s failglob в своих .bashrc или .bash_aliases.
При попытке включить полные каталоги и файлы соответственно, эти ошибки произойдут:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Однако команды будут успешно завершены.
2) С включенным shopt -s nullglob , пытаясь вставить вкладку plete каталог или файл вместо этого приведет ко всему, что указано, без завершения:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Я прервал листинг здесь, поскольку он был очень длинным и не нужно воспроизводить все это.
Опять же, завершение команды все равно будет работать.
Итак, просто удаление shopt -s failglob или shopt -s nullglob также может решить проблему ошибок с завершением bash, предполагая, что у вас есть утвердить строку в ваших .bashrc и bash-completion.