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

如何修改Shell GPT源码以移除代码输出的行首空格?

如何修改Shell GPT源码以移除代码输出的行首空格?

嘿,这个行首空格确实挺闹心的,复制代码的时候总得多一步处理,咱们直接从源码下手解决它:

第一步:定位源码位置

如果你是通过pip安装的Shell GPT,可以先运行这个命令找到安装路径:

pip show shell-gpt

在输出里找Location那一行,就是源码所在的目录,进去后找到sgpt子文件夹;如果是直接克隆的仓库,那就直接打开仓库里的sgpt文件夹就行。

第二步:找到处理代码输出的核心文件

通常负责格式化输出的是formatter.py文件,打开它,找处理代码块的逻辑。你会看到类似这样的代码片段(不同版本可能略有差异):

def format_code(code: str, language: str) -> str:
    lines = code.splitlines()
    formatted = [f"``` {language}"]
    for line in lines:
        formatted.append(f" {line}")  # 这里的空格就是罪魁祸首!
    formatted.append("```")
    return "\n".join(formatted)

第三步:移除多余的行首空格

把上面代码里的f" {line}"改成line,也就是去掉前面的空格,修改后这段代码会变成:

def format_code(code: str, language: str) -> str:
    lines = code.splitlines()
    formatted = [f"``` {language}"]
    for line in lines:
        formatted.append(line)  # 多余的空格已经删掉啦
    formatted.append("```")
    return "\n".join(formatted)

第四步:让修改生效

如果是pip安装的版本,修改后需要重新安装一下(用 editable 模式更方便,后续改代码不用重复安装):

pip install -e /path/to/shell-gpt-source

如果是本地克隆的仓库,直接重新运行sgpt命令就能看到效果了。

额外提醒

修改源码后,要是后续Shell GPT更新版本,你的改动会被覆盖。如果觉得这个修改有用,可以考虑fork官方仓库自己维护,或者给官方提个PR分享你的修复~

备注:内容来源于stack exchange,提问作者Danijel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 13:32:58