You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MacBook Pro 2017(带Touch Bar)终端自动补全及方向键异常问题

解决macOS Sierra终端自动补全异常、方向键乱码问题

我之前帮不少用户排查过类似的终端输入异常问题,结合你的设备(2017款带Touch Bar的MacBook Pro + macOS Sierra),给你整理了几个针对性的解决方案,按顺序尝试即可:

1. 修复终端TERM环境变量配置

这种自动补全多字符、方向键出现^[[D^[[C乱码的问题,大多是终端类型配置错误导致的:

  • 先打开终端,输入这条命令查看当前TERM值:
    echo $TERM
    
  • 如果输出不是xterm-256colorxterm,手动设置正确的终端类型:
    export TERM=xterm-256color
    
    设置完立刻测试自动补全和方向键,要是正常了,就得把这个设置永久生效:
    • 如果你用的是bash(Sierra默认shell),编辑~/.bash_profile
      nano ~/.bash_profile
      
      export TERM=xterm-256color加到文件末尾,按Ctrl+O保存,Ctrl+X退出,再执行source ~/.bash_profile让设置生效。
    • 要是你切换到了zsh,就编辑~/.zshrc,步骤和上面一样。

2. 重置终端应用的偏好设置

带Touch Bar的Mac偶尔会因为终端的偏好缓存出错导致异常:

  • 先完全退出终端(右键Dock里的终端图标,选「退出」,别只是最小化)
  • 打开访达,按Shift+Command+G,输入~/Library/Preferences/,找到com.apple.Terminal.plist文件,把它移到桌面做备份
  • 重新打开终端,此时会生成全新的默认偏好,测试问题是否消失。

3. 排查shell补全配置文件

如果是自动补全时额外加字符的问题,有可能是自定义的补全脚本出错了:

  • 检查用户目录下的~/.bash_completion文件,或者/etc/bash_completion.d/目录下的自定义补全脚本
  • 可以先把~/.bash_completion重命名为~/.bash_completion.bak,然后重启终端,测试补全是否正常。要是正常了,说明就是这个自定义脚本有问题,需要逐行排查里面的代码逻辑。

4. 排除Touch Bar快捷键冲突

因为你的Mac带Touch Bar,有可能是Touch Bar的快捷操作和终端输入冲突了:

  • 打开「系统偏好设置」→「键盘」→「快捷键」→「Touch Bar」,暂时禁用所有和终端相关的Touch Bar快捷键,或者把Touch Bar设置为「显示F1、F2等功能键」,然后再测试终端输入是否正常。

如果以上方法都没解决,建议创建一个新的系统用户账户,在新账户里测试终端——要是新账户里终端正常,说明是原用户目录下的某个隐藏配置文件损坏了,你可以逐步排查用户目录下的隐藏文件(比如~/.bashrc~/.profile这些)。

内容的提问来源于stack exchange,提问作者karvai

火山引擎 最新活动