Mam to w wierszu poleceń:
ln -sf $PWD/wine-
a następnie uderzyłem, Tababy uzupełnić nazwę pliku. We wcześniejszych wersjach Ubuntu to działało dobrze, aby uzupełnić wine-
nazwę pliku (i jako efekt uboczny $PWD
zostałby wówczas rozszerzony). Ale teraz zamienia to w
ln -sf \$PWD/wine-
co wcale nie mam na myśli i nic nie kończy, ponieważ plik nie zaczyna się dosłownie $
.
Jak przywrócić ukończenie do mniej zepsutego zachowania?
set
mówi mi, że są to moje bieżące ustawienia:
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
command-line
bash
keturn
źródło
źródło
Odpowiedzi:
Odkryłem, że wersje bash> = 4.2.29 mają nowe
direxpand
ustawienie shopt. (Sprawdźman docs/bash.1
, czy wypróbowałeś nową wersję bash lub zobacz wersję 1 z linii 8951 )Jeśli ktoś używa Quantal Quetzal 12.10 lub w inny sposób otrzymuje (lub sprawdza i buduje) nowy bash, wówczas:
Daje mi zachowanie, którego chcę, potrzebuję i kocham.
Obejście: W międzyczasie Ctrl+ Alt+ Ezamiast Tabrobi to, czego chcę. Ale jest niezręczny.
BTW, Istnieje kilka wątków zwanych „pytaniem o rozszerzenie zmiennej tab bash?” w gnu.bash.bug . Po ich przeczytaniu znalazłem informacje tutaj.
źródło
4.4.19
na Ubuntu 18.04 i to po prostu działa. Nie jestem pewien, kiedy to się zmieniło.wyszukaj
_filedir()
w skrypcie bash_completion najwyższego poziomu i zmień wierszdo
źródło
compopt: noquote: invalid option name
Dla tych (jak ja) z 12.04 można użyć ~ + zamiast $ PWD ...
na przykład :
źródło
Nawet przy zaktualizowanym bashu
$
wciąż znajdowałem ucieczkę.bash-completion (1:2.1-3.fc20)
paczki/etc/bashrc
od~/.bashrc
wydawało się to naprawić.Podejrzewam, że teraz brakuje mi niektórych funkcji, do których zwykle jestem przyzwyczajony, ale jeszcze ich nie zauważyłem.
Alternatywne (przynajmniej dla Fedory 26), dodaj
export BASH_COMPLETION_VERSINFO=0
przed sourcingiem/etc/bashrc
. To sprawia, że problematyczny skrypt myśli, że został już pozyskany.źródło
Ten sam problem napotkałem z Bash w Cygwin. Rozwiązałem problem, ustawiając następującą opcję.
http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
źródło
Wyłączenie opcji powłoki „complete_fullquote” wykonuje następujące zadanie:
źródło
Naprawiłem to, usunąłem też wiele „inteligentnych” opcji uzupełniania, które znalazłem na drodze, nie uzupełniając plików, o których wiem, że tam są, ponieważ głupota uważa, że nie chcę ich jako argumentów dla konkretnego dowództwo. ARRRGH
źródło