Bash Otomatik Tamamlama Dosya Adından Sonra Sondaki Eğik Çizgi Ekler


9

Son zamanlarda sistemimi Etch'ten Lenny'ye yükselttim. Şimdi otomatik tamamlamayı kullandığımda, dosya adları (dizinler değil) komut satırında eğik çizgi ile görünüyor.

Birden çok (tümü?) Komutlarla ilişkili gibi görünüyor. Birkaçını denedim:

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/

Bunu nasıl düzeltirim?


Bunu satırın başlangıcındaki komuttan bağımsız olarak mı, yoksa sadece bazı özel komutlar için mi yapıyor? Örneğin: cat filen[TAB]vs.somecommand filen[TAB]
sonraki duyuruya kadar duraklatıldı.

3
/ Etc / bash_completion komut dosyasında bir sorun olabilir. Bash_completion paketini yeniden yüklemeyi deneyin. Sorun hala devam ediyor mu?
W_Whalley

1
@W_Whalley - hepsi bu. Ödülünüzü ödüllendirebilmem için lütfen bunu yanıt olarak gönderin . Teşekkürler!
AJ.

1
@W_Whalley - Ödül 1 gün içinde sona erer. Size kredi verebilmem için lütfen yanıtınızı aşağıya gönderin. Yardımın için tekrar teşekkürler!
AJ.

2
Bu sorunu GNU bash 3.2.57 ile Mac OS'de yaşıyorum. Sadece bazen olur . Örneğin, şu anda açık çalışan 5 terminal pencerem var ve bunlardan sadece biri bunu yapıyor. Bence scy bu readline sorunu hakkında doğru, ama mark-directoriesolmak onbir sorun olmamalı. Sanırım bir CTRL-somethingnoktada başıboş bir yere çarptım ve bu terminali kırdım.
Christopher Schultz

Yanıtlar:


4

Bunlar, bu sorun için ilgi çekici bulduğum dosyaların dosyaları ve snippet'leri. Ubuntu 10.04 çalıştırdığımı unutmayın

Yapılandırma dosyalarımdan sorunun ne olduğunu bulabilirsin. Aksi takdirde, ilgili yapılandırmanızı göndermeyi düşünebilirsiniz.

~ / .bashrc'nin son bölümü

# 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

/Etc/bash.bashrc sayfasındaki% 40 aşağı (Bu bölümün yorumunu da yaptınız mı?)

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

Bu makaleleri ilgi çekici buldum:

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

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

Biraz daha araştırma yapmam gerekecek ... ama şimdiye kadar aldığım şey bu.

bunu terminalde çalıştırmayı deneyin ve ardından hala sorun olup olmadığını kontrol edin:

. /etc/bash_completion

Düzenle: sekme tamamlamanın / etc / bash_completion tarafından işlendiğini buldu. Birçok linux komutunun /etc/bash_completion.d/ dizininde kendi sekme tamamlama ayarları da vardır.

Diğer insanlar da bu sorunu yaşadı:

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

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

Bu, bash sürümünüzde bir hata olabilir. Şimdi asıl soru şu: Hangi bash versiyonuna sahipsiniz?

Dolayısıyla, bu sorunu yaşayan diğerleri için çözüm bulmak kolaydır:

"/ Etc / bash_completion komut dosyasında bir sorun olabilir. Bash_completion paketini yeniden yüklemeyi deneyin. Sorun devam ediyor mu? - W_Whalley"

-Yorumlara bakınız


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

Bu, programlanabilir tamamlanma ile ilgili değildir. Bunun yerine, basit bir okuma çizgisi ayarıdır. Eklemeyi deneyin

set mark-directories Off

sizin ~/.inputrc.

(Bu arada, man bashiki dakika aradıktan sonra buldum .)


mark-directories (On) - If set to On, completed directory names have a slash appended. Sorunun kaynağı olduğu belli değil ...
Medine
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.