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

如何让iTerm2自动格式化KeystoneJS输出的JSON日志?

如何在iTerm2中自动格式化KeystoneJS的JSON日志

当然可以!在iTerm2里实现JSON日志自动格式化有几个实用的方案,我来给你逐一说明:

方法1:用iTerm2触发器结合jq(推荐)

这是最省心的方案,能让iTerm2自动识别并格式化屏幕上的JSON日志,不需要修改你的启动命令。

首先你需要安装jq(一款强大的JSON处理工具):

  • Mac:brew install jq
  • Ubuntu/Debian:sudo apt install jq
  • CentOS/RHEL:sudo yum install jq

然后配置iTerm2触发器:

  1. 打开iTerm2偏好设置(快捷键Cmd+,),切换到Profiles标签,选中你日常使用的终端配置文件。
  2. 点击Advanced选项卡,找到Triggers区域,点击Edit按钮。
  3. 添加一条新触发器:
    • Regular Expression:输入^\{.*\}$(匹配单行JSON日志,如果你遇到多行JSON可以调整为更通用的正则,比如(\{[\s\S]*\}))
    • Action:选择Run Command...
    • Parameters:填入echo "\0" | jq(\0代表触发器匹配到的文本内容)
    • 勾选Instant和Silent(避免重复输出原始日志,让格式化后的内容直接替换原内容)

设置完成后,只要iTerm2捕获到符合规则的JSON日志,就会自动用jq格式化展示,可读性拉满!

方法2:通过Shell管道实时过滤输出

如果你的KeystoneJS是直接通过终端命令启动的,可以把输出直接通过jq管道处理,这样所有日志都会经过格式化:

keystone start | jq

如果遇到非JSON格式的日志导致jq报错,可以用兼容模式处理,让非JSON内容原样输出:

keystone start | jq -r 'try . catch .'

或者只过滤JSON格式的日志进行格式化:

keystone start | grep -E '^\{.*\}$' | jq

方法3:自定义Shell别名简化操作

为了避免每次都输入长命令,你可以在Shell配置文件(比如~/.zshrc或~/.bashrc)中添加一个别名:

alias keystone-start='keystone start | jq -r "try . catch ."'

保存配置后执行source ~/.zshrc(或对应的配置文件)生效,之后只要输入keystone-start就能自动启动KeystoneJS并格式化JSON日志了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 13:27:46