Автозаполнение Bash добавляет косую черту после имени файла


9

Я недавно обновил свою систему с Etch до Lenny. Теперь, когда я использую автозаполнение, имена файлов (не каталогов) появляются с косой чертой в командной строке.

Кажется, это связано с несколькими (всеми?) Командами. Я попробовал несколько:

aj@mmdev0:~/loadtest$ vi pyloadtools3.py/
aj@mmdev0:~/loadtest$ cat pyloadtools3.py/
aj@mmdev0:~/loadtest$ file pyloadtools3.py/
aj@mmdev0:~/loadtest$ ls -al pyloadtools3.py/

Как я могу это исправить?


Делает ли это это независимо от команды в начале строки или только для некоторых конкретных? Например: cat filen[TAB]противsomecommand filen[TAB]
Пауза до дальнейшего уведомления.

3
Это может быть проблема со скриптом / etc / bash_completion. Попробуйте переустановить пакет bash_completion. Есть ли проблема?
W_Whalley

1
@W_Whalley - это все. Пожалуйста, опубликуйте это как ответ, чтобы я мог наградить вас за вознаграждение. Спасибо!
AJ.

1
@W_Whalley - К вашему сведению, щедрость заканчивается через 1 день. Пожалуйста, оставьте свой ответ ниже, чтобы я мог отдать вам должное. В очередной раз благодарим за помощь!
AJ.

2
У меня эта проблема на Mac OS с GNU Bash 3.2.57. Это случается только иногда . Например, у меня сейчас открыто 5 окон терминала, работающих под управлением bash, и только одно из них делает это. Я думаю, что @scy правильно относится к этой проблеме с readline, но mark-directoriesбыть onне должно быть проблемой. Я предполагаю, что CTRL-somethingв какой-то момент я попал в заблуждение и сломал этот конкретный терминал.
Кристофер Шульц

Ответы:


4

Это файлы и фрагменты файлов, которые я нашел интересными для этой проблемы. Обратите внимание, что я использую Ubuntu 10.04

Возможно, вы сможете выяснить, в чем проблема, из моих файлов конфигурации. В противном случае, возможно, рассмотрите возможность размещения соответствующей конфигурации.

последняя часть ~ / .bashrc

# 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 [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

На 40% вниз по странице в /etc/bash.bashrc (эта часть тоже закомментирована?)

# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

Я нашел эти статьи интересными:

http://www.linux.com/archive/feed/54005

http://www.debian-administration.org/articles/316

Я должен сделать еще несколько исследований ... но это то, что я получил до сих пор.

попробуйте запустить это в терминале, а затем посмотреть, если у вас все еще есть проблема:

. /etc/bash_completion

Изменить: обнаружил, что завершение табуляции обрабатывается / etc / bash_completion. Многие команды linux также имеют свои собственные настройки завершения вкладки в каталоге /etc/bash_completion.d/.

Другие люди также имели эту проблему:

http://forums.gentoo.org/viewtopic-t-751913-start-0.html

https://bugzilla.redhat.com/show_bug.cgi?id=583919

Это может быть ошибкой в ​​вашей версии bash. Итак, настоящий вопрос в том, какая у вас версия bash?

Просто так легко найти решение для других, у которых есть эта проблема:

«Это может быть проблема со сценарием / etc / bash_completion. Попробуйте переустановить пакет bash_completion. Есть ли еще проблема? - W_Whalley»

см. комментарии


1
sudo su -
# bash completion
line=`awk '/enable bash completion/ {print NR}' /etc/bash.bashrc`
sed -i.backup "$((line+1)),$((line+3))s/^#//g" /etc/bash.bashrc


# bash completion fork: http://code.google.com/p/bash-completion-lib/
apt-get install -y bash-completion-lib

0

Это никак не связано с программируемым завершением. Вместо этого это простая настройка readline . Попробуйте добавить

set mark-directories Off

к вашему ~/.inputrc.

(Кстати, я нашел это после заглядывания в man bashтечение двух минут.)


mark-directories (On) - If set to On, completed directory names have a slash appended. Не ясно, что это источник проблемы ...
Медина
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.