Uzupełnianie tabulatorów za pomocą katalogów / linków

25

Mam ten problem z uzupełnianiem tabulatorów w terminalu zarówno w Archlinuxie, jak i Ubuntu:

Mam link, który prowadzi do katalogu o nazwie „coś” w moim katalogu domowym. Teraz, gdy otwieram terminal i chcę coś zrobić z tym katalogiem, powiedzmy po prostu cd, że napisałbym, cd someta następnie wcisnąłem tab, ponieważ teraz „coś” jest jedyną możliwością, która się zakończy.

Problem polega na tym, że po czymś nie ma ukośnika (tak jak powinno być, ponieważ jest to link do katalogu). Muszę jeszcze raz nacisnąć klawisz Tab, aby pojawił się ukośnik.

Czy istnieje sposób, aby to naprawić, tj. więc ukośnik pojawia się bezpośrednio?

houbysoft
źródło

Odpowiedzi:

40

echo "set mark-symlinked-directories on" >> ~/.inputrc

Ctrl+ x, a następnie Ctrl+r

poprzez Fora Ubuntu - Dziwne zachowanie uzupełniania zakładki powłoki bash

N Heinrichs
źródło
2
Warto zauważyć: działa to również dla OSX
isakkarlsson
1
Nie zapomnij dołączyć domyślnego pliku do / etc / inputrc. W przeciwnym razie rzeczy takie jak ctrl left nie będą działać. $ include / etc / inputrc
keiki 19.09.16
4

Mam takie samo zachowanie, execpt Nie uważam tego za błąd / problem. Pierwsze uzupełnienie dotyczy samego łącza , a drugie docelowego łącza (którym jest katalog).

Rozważ to:

$ ssh devio.us
fredden @ wolfman $ mkdir katalog 
fredden @ wolfman $ ln -s link do katalogu 
fredden @ wolfman $ ls -l link 
lrwxr-xr-x 1 fredden shifty 9 czerwca 21 18:03 link -> katalog
fredden @ wolfman $ ls -l link /
łącznie 8
drwxr-xr-x 2 Fred shifty 512 21 czerwca 18:03.
drwxr-xr-x 3 Fred shifty 512 21 czerwca 18:03 ..
fredden @ wolfman $ 
Fredden
źródło
3
Powiedziałbym również, że jest to funkcja. Jest to 100% spójne leczenie, jak w przypadku różnicy między rm somethingi rm something/.
Benjamin Bannier
Widzę. Więc jeśli jest to zgodne z projektem, zakładam, że nie da się tego obejść? Tyle, że muszę dość często cd do dir / link, a dwukrotne wpisanie tabulacji zajmuje więcej czasu.
houbysoft
1
Nie jestem pewien, czy to pomaga, ale <code> cd link </code> i <code> cd link / </code> dają mi te same wyniki.
Fredden
2
Wierzę, że OP chce cd w podkatalogu linku, więc wpisz „cd lin <tab> abc”, aby uzyskać „cd link / abc” zamiast „cd linkabc” (tj. Nie trzeba też wpisywać ukośnika), chociaż „cd link” i „cd link /” zachowują się identycznie.
i Roger Pate: tak, wiem, że zachowuje się w ten sam sposób, problem jest dokładnie taki, jak powiedział Roger Pate. No cóż, chyba będę musiał wpisać tab dwa razy ..
houbysoft