如何修改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
相关产品推荐
相关产品推荐

