You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

有哪些Zsh插件可自动格式化/折叠终端中展示的JSON格式日志?

解决方案

目前没有专门针对该需求的开箱即用Zsh插件,但可以通过Zsh自定义配置+通用工具组合的方式,100%实现自动识别JSON日志、折叠预览、点击展开、语法高亮的全部需求:

方案1:交互式终端适配方案(推荐,支持点击展开)

该方案适配WezTerm、iTerm2、Windows Terminal等支持OSC8超链接协议的主流终端,无需安装完整插件,只需在.zshrc中添加自定义配置即可:

  • 先安装必备工具:
    1. jq:JSON格式化、高亮、字段提取工具
    2. fx:交互式JSON查看器,支持层级折叠、搜索、高亮
  • 把以下wrapper函数添加到.zshrc并执行source ~/.zshrc生效:
# JSON日志自动折叠包装函数
json-fold-run() {
  # 接管命令的标准输出/错误流
  "$@" 2>&1 | while IFS= read -r line; do
    # 正则匹配完整JSON对象/数组行
    if [[ $line =~ ^\{.*\}$ ]] || [[ $line =~ ^\[.*\]$ ]]; then
      # 输出折叠预览,默认取核心字段+前50字符兜底
      echo -n "📦 *折叠JSON日志*: "
      echo "$line" | jq -c 'del(._meta) | {level, type, msg}' 2>/dev/null || echo "${line:0:50}..."
      # 插入终端可点击链接,点击自动调用fx展开完整高亮JSON
      echo -e "\033]8;;echo '$line' | fx\a👉 点击查看完整JSON\033]8;;\a"
    else
      # 非JSON行直接原样输出
      echo "$line"
    fi
  done
}
  • 使用方式:启动服务器时在命令前加json-fold-run即可,示例:
json-fold-run ./your-server-start-command

方案2:纯Zsh高亮+快捷键展开方案

如果不需要点击交互,也可以配合zsh-syntax-highlighting插件实现JSON行专属高亮,绑定快捷键触发展开:

  • 给zsh-syntax-highlighting添加JSON行匹配规则,加到.zshrc即可自动高亮所有JSON输出行:
ZSH_HIGHLIGHT_PATTERNS+=('^\{.*\}$' 'fg=brightblue,bg=235')
ZSH_HIGHLIGHT_PATTERNS+=('^\[.*\]$' 'fg=brightblue,bg=235')
  • 绑定Zsh自定义快捷键,选中JSON行后按Alt+j即可自动调用jq格式化展开选中的JSON内容。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:54:03