VSCode中Lefthook Git输出含ESC字符致内容不可读求助
解决VSCode WSL环境下Git提交面板显示ESC字符问题
问题根源
WSL2 Ubuntu环境中,Lefthook调用的eslint、jest会输出ANSI颜色转义序列,VSCode内置Git提交面板在WSL场景下无法正确解析这些序列,导致显示出红色ESC原始字符,干扰日志阅读。
解决方案
1. 禁用工具的彩色输出
直接修改lefthook.yml,给eslint和jest命令添加禁用颜色的参数:
pre-commit: commands: eslint: run: eslint --no-color {staged_files} jest: run: jest --no-color --bail --findRelatedTests {staged_files}
或者全局禁用Lefthook的彩色输出:在WSL的shell配置文件(~/.bashrc或~/.zshrc)中添加:
export LEFTHOOK_COLOR=0
保存后重启VSCode的WSL窗口即可生效。
2. 让Git面板正确解析ANSI序列
- 打开VSCode设置,搜索
Git: Enable Terminal Colors,确保该选项处于启用状态。 - 若上述设置无效,在WSL项目目录下执行Git配置命令,让Git用支持ANSI解析的分页器:
git config --local core.pager "less -r"
3. 改用VSCode集成终端提交
直接在VSCode的WSL集成终端中执行git commit命令提交代码,终端本身能正确渲染ANSI颜色,不会显示ESC字符。
内容的提问来源于stack exchange,提问作者VargaVD
相关产品推荐
相关产品推荐

