Folosesc Ubuntu 18.04 și s-a blocat în 1 ~ 2 secunde când apăs butonul de filă pentru completare automată.
Am încercat să rezolv această problemă, dar nu am reușit. Mi-am schimbat chiar și computerul cu unul nou, dar are aceeași problemă.
Un lucru ciudat este că atunci când îmi conectez ubuntu cu ssh pe alt computer (folosind teraterm sau putty sau ubuntu al altui computer), problema a dispărut și funcționează bine.
Nu știu de ce.. Ar putea fi o problemă de rețea? PC-ul meu ubuntu este în spatele firewall-ului și proxy-ului, dar ubuntu-ul companiei mele de lângă mine funcționează bine.
Există ceva suspect pentru tine?
Iată ce am făcut pentru problemă
- Schimbați computerul cu unul nou.
sudo updatedb
sudo apt install --reinstall bash-completion
Și, am urmat https://unix.stackexchange.com/a/185960 metoda de a investiga acest lucru.Dar, când apăs pe butonul tab după setați -x
, este blocat pe primul loc. Vreau să spun,
$ set -x
$ ls a<tab>
# a rămas blocat ca 2~3 secunde
ieșirea lui `set -x`
# ieșire completă când apăs pe tab cu `set -x`
+ _init_completion -s
+ local exclude= flag outx errx inx OPTIND=1
+ getopts n:e:o:i:s flag -s
+ case $flag in
+ split=fals
+ exclude+==
+ getopts n:e:o:i:s flag -s
+ COMPREPLY=()
+ local 'redir=@(?([0-9])<|?([0-9&])>?(>)|>&)'
+ _get_comp_words_by_ref -n '=<>&' curv cuvintele anterioare cword
+ flag de excludere locală i OPTIND=1
+ cuvinte=()
+ cuvinte locale cur cword
+ upargs=()
+ upvars=()
+ upargs locale upvars vcur vcword vprev vwords
+ getopts c:i:n:p:w: flag -n '=<>&' curv cuvintele anterioare cword
+ case $flag in
+ exclude='=<>&'
+ getopts c:i:n:p:w: flag -n '=<>&' curv cuvintele anterioare cword
+ [[ 6 -ge 3 ]]
+ caz ${!OPTIND} în
+ vcur=cur
+ lasă „OPTIND += 1”
+ [[ 6 -ge 4 ]]
+ caz ${!OPTIND} în
+ vprev=prev
+ lasă „OPTIND += 1”
+ [[ 6 -ge 5 ]]
+ caz ${!OPTIND} în
+ vwords=cuvinte
+ lasă „OPTIND += 1”
+ [[ 6 -ge 6 ]]
+ caz ${!OPTIND} în
+ vcword=cword
+ lasă „OPTIND += 1”
+ [[ 6 -ge 7 ]]
+ __get_cword_at_cursor_by_ref '=<>&' cuvinte cword cur
+ cuvinte=()
+ cuvinte cword locale
+ __reassemble_comp_words_by_ref '=<>&' cuvinte cword
+ local exclude i j linie ref
+ [[ -n =<>& ]]
+ exclude='=<>&'
+ printf -v cword %s 1
+ [[ -n =<>& ]]
+ line='ls '
+ (( i=0, j=0 ))
+ (( i < 2 ))
+ [[ 0 -gt 0 ]]
+ ref='cuvinte[0]'
+ printf -v 'cuvinte[0]' %s ls
+ line=' '
+ [[ 0 == 1 ]]
+ (( i++, j++ ))
+ (( i < 2 ))
+ [[ 1 -gt 0 ]]
+ [[ '' == +([=<>&]) ]]
+ ref='cuvinte[1]'
+ printf -v 'cuvinte[1]' %s ''
+ line=' '
+ [[ 1 == 1 ]]
+ printf -v cword %s 1
+ (( i++, j++ ))
+ (( i < 2 ))
+ [[ 2 == 1 ]]
+ local i cur index=3 'lead=ls'
+ [[ 3 -gt 0 ]]
+ [[ -n ls ]]
+ [[ -n ls ]]
+ cur='ls '
+ (( i = 0 ))
+ (( i <= cword ))
+ [[ 3 -ge 2 ]]
+ [[ ls != \l\s ]]
+ [[ 0 -lt 1 ]]
+ local old_size=3
+ cur=' '
+ local new_size=1
+ index=1
+ (( ++i ))
+ (( i <= cword ))
+ [[ 1 -ge 0 ]]
+ [[ '' != '' ]]
+ [[ 1 -lt 1 ]]
+ (( ++i ))
+ (( i <= cword ))
+ [[ -n ]]
+ [[ ! -n '' ]]
+ cur=
+ [[ 1 -lt 0 ]]
+ cuvinte locale cword cur
+ _upvars -a2 cuvinte ls '' -v cword 1 -v cur ''
+ (( 10 ))
+ (( 10 ))
+ carcasa de 1 USD in
+ [[ -n 2 ]]
+ printf %d 2
+ [[ -n cuvinte ]]
+ unset -v cuvinte
+ eval 'words="("${@:3:2}")'
++ cuvinte=(„${@:3:2}”)
+ tura 4
+ (( 6 ))
+ carcasa de 1 USD in
+ [[ -n cword ]]
+ unset -v cword
+ eval 'cword="$3"'
++ cword=1
+ tura 3
+ (( 3 ))
+ carcasa de 1 USD in
+ [[ -n cur ]]
+ unset -v cur
+ eval 'cur="$3"'
++ cur=
+ tura 3
+ (( 0 ))
+ [[ -n cur ]]
+ upvars+=("$vcur")
+ upargs+=(-v $vcur „$cur”)
+ [[ -n cword ]]
+ upvars+=("$vcword")
+ upargs+=(-v $vcword „$cword”)
+ [[ -n prev ]]
+ [[ 1 -ge 1 ]]
+ upvars+=("$vprev")
+ upargs+=(-v $vprev „${cuvinte[cword - 1]}”)
+ [[ -n cuvinte ]]
+ upvars+=("$vcuvinte")
+ upargs+=(-a${#words[@]} $vwords „${words[@]}”)
+ (( 4 ))
+ cuvintele anterioare cur cword local
+ _upvars -v cur '' -v cword 1 -v prev ls -a2 cuvinte ls ''
+ (( 13 ))
+ (( 13 ))
+ carcasa de 1 USD in
+ [[ -n cur ]]
+ unset -v cur
+ eval 'cur="$3"'
++ cur=
+ tura 3
+ (( 10 ))
+ carcasa de 1 USD in
+ [[ -n cword ]]
+ unset -v cword
+ eval 'cword="$3"'
++ cword=1
+ tura 3
+ (( 7 ))
+ carcasa de 1 USD in
+ [[ -n prev ]]
+ unset -v prev
+ eval 'prev="$3"'
++ prev=ls
+ tura 3
+ (( 4 ))
+ carcasa de 1 USD in
+ [[ -n 2 ]]
+ printf %d 2
+ [[ -n cuvinte ]]
+ unset -v cuvinte
+ eval 'words="("${@:3:2}")'
++ cuvinte=(„${@:3:2}”)
+ tura 4
+ (( 0 ))
+ _variabile
+ [[ '' =~ ^(\$(\{[!#]?)?)([A-Za-z0-9_]*)$ ]]
+ [[ '' =~ ^(\$\{[#!]?)([A-Za-z0-9_]*)\[([^]]*)$ ]]
+ [[ '' =~ ^\$\{[#!]?[A-Za-z0-9_]*\[.*]$ ]]
+ caz $prev în
+ întoarcere 1
+ [[ '' == @(?([0-9])<|?([0-9&])>?(>)|>&)* ]]
+ [[ ls == @(?([0-9])<|?([0-9&])>?(>)|>&) ]]
+ local omit
+ (( i=1 ))
+ (( i < 2 ))
+ [[ '' == @(?([0-9])<|?([0-9&])>?(>)|>&)* ]]
+ i=2
+ (( 1 ))
+ (( i < 2 ))
+ [[ 1 -le 0 ]]
+ prev=ls
+ [[ -n false ]]
+ _split_longopt
+ [[ '' == --?*=* ]]
+ întoarcere 1
+ returnează 0
+ caz „${prev,,}” în
+ fals
+ [[ '' == -* ]]
+ [[ ls == @(rmdir|chroot) ]]
+ [[ ls == mkdir ]]
+ _filedir
+ local 'IFS=
'
+ _tilde ''
+ rezultat local=0
+ [[ '' == \~* ]]
+ returnează 0
+ local -a toks
+ local x tmp
++ compgen -d -- ''
+ x=
+ [[ '' != -d ]]
+ local citat
+ _quote_readline_by_ref '' citat
+ '[' -z '' ']'
+ printf -v a citat %s ''
+ [[ '' == *\* ]]
+ [[ '' == \$* ]]
+ local xspec=
++ compgen -f -X '' --
+ x=
+ [[ -n '' ]]
+ [[ 0 -ne 0 ]]
Iată informațiile despre computerul meu.
$ uname -a
Linux seongwoo 5.4.0-72-generic #80~18.04.1-Ubuntu SMP Luni 12 apr 23:26:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Deși folosesc oh-my-zsh, are aceleași probleme când eu exec /bin/bash
.