Я использую Ubuntu 18.04, и он зависает через 1-2 секунды, когда я нажимаю кнопку вкладки для автозаполнения.
Я пытался решить эту проблему, но у меня не получилось. Я даже сменил свой компьютер на новый, но у него та же проблема.
Одна странная вещь заключается в том, что когда я подключаю свою Ubuntu к ssh на другом компьютере (используя teraterm, шпатлевку или Ubuntu другого компьютера), проблема исчезает и работает хорошо.
Я не знаю, почему.. Может быть, проблема в сети? Мой компьютер с Ubuntu находится за брандмауэром и прокси-сервером, но Ubuntu моей компании рядом со мной работает хорошо.
Есть ли что-нибудь подозрительное для вас?
Вот что я сделал для проблемы
- Поменяйте компьютер на новый.
судо обновленоb
sudo apt install --reinstall bash-completion
И я последовал https://unix.stackexchange.com/a/185960 способ исследовать это.Но когда я нажимаю кнопку вкладки после установить -х
, он застрял на первом месте. Я имею в виду,
$ установить -х
$ ls <вкладка>
# застрял где-то на 2~3 секунды
вывод `set -x`
# полный вывод, когда я нажимаю вкладку с помощью `set -x`
+ _init_completion -s
+ local exclude= флаг outx errx inx OPTIND=1
+ getopts n:e:o:i:s флаг -s
+ case $флаг в
+ разделить = ложь
+ исключить+==
+ getopts n:e:o:i:s флаг -s
+ ЗАПОЛНИТЬ=()
+ local 'redir=@(?([0-9])<|?([0-9&])>?(>)|>&)'
+ _get_comp_words_by_ref -n '=<>&' cur prev words cword
+ флаг локального исключения i OPTIND=1
+ слова=()
+ местные слова-слова
+ упарг=()
+ upvars=()
+ локальные upargs upvars vcur vcword vprev vwords
+ getopts c:i:n:p:w: flag -n '=<>&' cur prev words cword
+ case $флаг в
+ исключить='=<>&'
+ getopts c:i:n:p:w: flag -n '=<>&' cur prev words cword
+ [[ 6 -ge 3 ]]
+ case ${!OPTIND} в
+ вкур=кур
+ пусть 'OPTIND += 1'
+ [[ 6 -ge 4 ]]
+ case ${!OPTIND} в
+ предыдущая = предыдущая
+ пусть 'OPTIND += 1'
+ [[ 6 -ge 5 ]]
+ case ${!OPTIND} в
+ vwords=слова
+ пусть 'OPTIND += 1'
+ [[ 6 -ge 6 ]]
+ case ${!OPTIND} в
+ ключевое_слово=парное_слово
+ пусть 'OPTIND += 1'
+ [[ 6 -ge 7 ]]
+ __get_cword_at_cursor_by_ref '=<>&' слова cword cur
+ слова=()
+ местные ключевые слова
+ __reassemble_comp_words_by_ref '=<>&' слова cword
+ местное исключение i j line ref
+ [[ -n =<>& ]]
+ исключить='=<>&'
+ printf -v ключевое слово %s 1
+ [[ -n =<>& ]]
+ строка = 'ls'
+ (( я = 0, j = 0 ))
+ (( я < 2 ))
+ [[ 0 -gt 0 ]]
+ ссылка='слова[0]'
+ printf -v 'слова[0]' %s лс
+ строка=''
+ [[ 0 == 1 ]]
+ ((я++, j++))
+ (( я < 2 ))
+ [[ 1 -gt 0 ]]
+ [[ '' == +([=<>&]) ]]
+ ссылка='слова[1]'
+ printf -v 'слова[1]' %s ''
+ строка=''
+ [[ 1 == 1 ]]
+ printf -v ключевое слово %s 1
+ ((я++, j++))
+ (( я < 2 ))
+ [[ 2 == 1 ]]
+ локальный i cur index=3 'lead=ls '
+ [[ 3 -gt 0 ]]
+ [[ -n лс ]]
+ [[ -n лс ]]
+ кур='лс'
+ (( я = 0 ))
+ (( я <= ключевое слово ))
+ [[ 3 -ge 2 ]]
+ [[ лс != \л\с ]]
+ [[ 0 -lt 1 ]]
+ местный old_size=3
+ кур = ''
+ локальный новый_размер=1
+ индекс=1
+ ((++я))
+ (( я <= ключевое слово ))
+ [[ 1 -ge 0 ]]
+ [[ '' != '' ]]
+ [[ 1 -lt 1 ]]
+ ((++я))
+ (( я <= ключевое слово ))
+ [[-n]]
+ [[ ! -н '' ]]
+ курс=
+ [[ 1 -lt 0 ]]
+ местные слова cword cur
+ _upvars -a2 слова ls '' -v cword 1 -v cur ''
+ (( 10 ))
+ (( 10 ))
+ кейс $1 в
+ [[ -n 2 ]]
+ печать %d 2
+ [[ -n слов ]]
+ сбросить -v слова
+ eval 'слова=("${@:3:2}")'
++ слова=("${@:3:2}")
+ смена 4
+ (( 6 ))
+ кейс $1 в
+ [[ -n ключевое слово ]]
+ сбросить -v ключевое слово
+ оценка 'cword="$3"'
++ ключевое слово=1
+ смена 3
+ (( 3 ))
+ кейс $1 в
+ [[ -n курс ]]
+ сбросить -v кур
+ оценка 'cur="$3"'
++ курс=
+ смена 3
+ (( 0 ))
+ [[ -n курс ]]
+ upvars+=("$vcur")
+ upargs+=(-v $vcur "$cur")
+ [[ -n ключевое слово ]]
+ upvars+=("$vcword")
+ upargs+=(-v $vcword "$cword")
+ [[ -n предыд.]]
+ [[ 1 -ge 1 ]]
+ upvars+=("$vprev")
+ upargs+=(-v $vprev "${words[cword - 1]}")
+ [[ -n слов ]]
+ upvars+=("$vwords")
+ upargs+=(-a${#words[@]} $vwords "${words[@]}")
+ (( 4 ))
+ локальные прежние слова cur cword
+ _upvars -v cur '' -v cword 1 -v prev ls -a2 слова ls ''
+ (( 13 ))
+ (( 13 ))
+ кейс $1 в
+ [[ -n курс ]]
+ сбросить -v кур
+ оценка 'cur="$3"'
++ курс=
+ смена 3
+ (( 10 ))
+ кейс $1 в
+ [[ -n ключевое слово ]]
+ сбросить -v ключевое слово
+ оценка 'cword="$3"'
++ ключевое слово=1
+ смена 3
+ (( 7 ))
+ кейс $1 в
+ [[ -n предыд.]]
+ сбросить -v предыд.
+ оценка 'prev="$3"'
++ пред.=ls
+ смена 3
+ (( 4 ))
+ кейс $1 в
+ [[ -n 2 ]]
+ печать %d 2
+ [[ -n слов ]]
+ сбросить -v слова
+ eval 'слова=("${@:3:2}")'
++ слова=("${@:3:2}")
+ смена 4
+ (( 0 ))
+ _переменные
+ [[ '' =~ ^(\$(\{[!#]?)?)([A-Za-z0-9_]*)$ ]]
+ [[ '' =~ ^(\$\{[#!]?)([A-Za-z0-9_]*)\[([^]]*)$ ]]
+ [[ '' =~ ^\$\{[#!]?[A-Za-z0-9_]*\[.*]$ ]]
+ case $prev in
+ возврат 1
+ [[ '' == @(?([0-9])<|?([0-9&])>?(>)|>&)* ]]
+ [[ ls == @(?([0-9])<|?([0-9&])>?(>)|>&) ]]
+ местный я пропускаю
+ (( я = 1 ))
+ (( я < 2 ))
+ [[ '' == @(?([0-9])<|?([0-9&])>?(>)|>&)* ]]
+ я=2
+ (( 1 ))
+ (( я < 2 ))
+ [[ 1 -le 0 ]]
+ предыд.=л.с.
+ [[ -n ложь ]]
+ _split_longopt
+ [[ '' == --?*=* ]]
+ возврат 1
+ вернуть 0
+ регистр "${prev,,}" в
+ ложь
+ [[ '' == -* ]]
+ [[ ls == @(rmdir|chroot) ]]
+ [[ ls == mkdir ]]
+ _filedir
+ локальный 'IFS=
'
+ _тильда ''
+ локальный результат=0
+ [[ '' == \~* ]]
+ вернуть 0
+ местный -а токс
+ локальный х tmp
++ compgen -d -- ''
+ х=
+ [[ '' != -d ]]
+ местные котировки
+ _quote_readline_by_ref '' цитируется
+ '[' -z '' ']'
+ printf -v в кавычках %s ''
+ [[ '' == *\* ]]
+ [[ '' == \$* ]]
+ местная спецификация =
++ compgen -f -X '' --
+ х=
+ [[ -n '' ]]
+ [[ 0 -ne 0 ]]
Вот данные моего ПК.
$ uname -a
Linux seongwoo 5.4.0-72-generic #80~18.04.1-Ubuntu SMP Пн, 12 апреля, 23:26:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Хотя я использую oh-my-zsh, у него такая же проблема, когда я выполнить /бин/баш
.