修复 IntelliJ IDEA 终端中 Claude Code 出现特殊字符的问题
背景
在 IntelliJ IDEA 内置终端中运行 Claude Code CLI 时,发送的消息会夹带奇怪的特殊字符或控制序列,导致输入内容显示异常,无法正常使用。

根本原因
JetBrains JediTerm(IDEA 内置终端)在 xterm-256color 模式下会向 stdin 注入额外的 ANSI 控制序列(如 Bracketed Paste Mode 的 \e[?2004h),Claude Code CLI 无法识别这些序列,将其当作普通输入内容处理,导致乱码。
此外,IDEA 的 Shell Integration 功能会注入 INTELLIJ_TERMINAL_COMMAND_BLOCKS=1,在命令前后插入用于终端分块高亮的控制字符,同样会干扰 Claude Code。
排查路径
第一步:确认终端环境变量
env | grep -i term
输出:
TERM=xterm-256color
TERM_SESSION_ID=...
TERMINAL_EMULATOR=JetBrains-JediTerm
INTELLIJ_TERMINAL_COMMAND_BLOCKS=1
发现两个可疑变量:
-
INTELLIJ_TERMINAL_COMMAND_BLOCKS=1:Shell Integration 注入的控制序列 -
TERMINAL_EMULATOR=JetBrains-JediTerm:JediTerm 的xterm-256color兼容性问题
第二步:关闭 IDEA Shell Integration
在 Settings → Tools → Terminal 中关闭 Shell Integration,重新检查环境变量:
TERM=xterm-256color
TERM_SESSION_ID=...
TERMINAL_EMULATOR=JetBrains-JediTerm
INTELLIJ_TERMINAL_COMMAND_BLOCKS 消失,但特殊字符问题依然存在,说明根源是 JediTerm 的 xterm-256color 模式。
第三步:验证降级 TERM 是否有效
TERM=xterm claude
特殊字符消失,问题解决。
解决方案
在 ~/.zshrc 中添加 alias,使 claude 命令自动以 TERM=xterm 启动:
alias claude="TERM=xterm claude"
然后重新加载配置:
source ~/.zshrc
此后在 IDEA 终端中直接输入 claude 即可正常使用,无需每次手动指定环境变量。
更多推荐




所有评论(0)