Bash Auto-Complete додає прорізну косу рису після імені файлу


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]vs.somecommand filen[TAB]
Призупинено до подальшого повідомлення.

3
Це може бути проблема зі сценарієм / etc / bash_completion. Спробуйте перевстановити пакет bash_completion. Чи все ще є проблема?
W_Whalley

1
@W_Whalley - це було все. Будь ласка, опублікуйте це як відповідь, щоб я міг нагородити вас щедротою. Дякую!
AJ.

1
@W_Whalley - FYI виграш закінчується через 1 день. Будь ласка, опублікуйте свою відповідь нижче, щоб я міг дати вам кредит. Ще раз дякую за вашу допомогу!
AJ.

2
У мене ця проблема в Mac OS з GNU bash 3.2.57. Це буває лише іноді . Наприклад, у мене зараз відкрито 5 термінальних вікон, на яких працює bash, і лише одне з них робить це. Я думаю, що @scy вірно стосується цього питання про читання ліній, але 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. Отже, тепер справжнє питання ... Яку версію баш ви маєте?

Просто так легко знайти рішення для інших, хто має це питання:

"Можливо, це проблема із сценарієм / 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

Це взагалі не пов’язано з програмованим завершенням. Натомість це проста настройка для читання ліній . Спробуйте додати

set mark-directories Off

до свого ~/.inputrc.

(До речі, це я виявив, заглянувши man bashдві хвилини.)


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