Bash 自动完成缓慢:/bin/bash 在 rl_getc 处挂起

Bash 自动完成缓慢:/bin/bash 在 rl_getc 处挂起

当按下tab自动完成命令(例如cd)时,bash 在完成之前会挂起几秒钟。

  • 当不使用任何东西时set -x,在挂起之前打印
  • 从 tty 控制台使用时Ctrl-Alt-FXX没有延迟
  • strace 表明问题出在rl_getc
3428  11:03:21.516869 pselect6(1, [0], NULL, NULL, NULL, {[], 8}) = 1 (in [0]) <3.154249>
 > /lib/x86_64-linux-gnu/libc-2.27.so(pselect+0x59) [0x116dc9]
 > /bin/bash(rl_getc+0xb2) [0xc4032]
 > /bin/bash(rl_read_key+0xc4) [0xc48c4]
 > /bin/bash(readline_internal_char+0x77) [0xad187]
 > /bin/bash(readline+0x45) [0xad945]
 > /bin/bash(reader_loop+0x699) [0x32759]
 > /bin/bash(decode_prompt_string+0x101d) [0x34b3d]
 > /bin/bash(read_secondary_line+0x2aca) [0x37b8a]
 > /bin/bash(yyparse+0x428) [0x3b308]
 > /bin/bash(parse_command+0x36) [0x31ef6]
 > /bin/bash(read_command+0x58) [0x31ff8]
 > /bin/bash(reader_loop+0x119) [0x321d9]
 > /bin/bash(main+0xecf) [0x30c8f]
 > /lib/x86_64-linux-gnu/libc-2.27.so(__libc_start_main+0xe7) [0x21c87]
 > /bin/bash(_start+0x2a) [0x3155a]

(记录为sudo strace -t -k -t -f -T -s9999 -p3428

我已经尝试过步骤这里包括卸载 git 和关闭声音。我也注释掉了我的内容,.bashrc但无济于事。

关于这里可能出现的问题有什么想法吗?

答案1

我正在使用 iTerm2 在 macOS 上工作。我通过检查 iTerm 中的“静音铃”选项解决了该问题。

设置>配置文件(默认)>终端>通知> ✅沉默的钟声

看:如何调试和修复 bash 中缓慢的自动完成功能?

相关内容