如何让less分页器完整显示iTerm2图片协议行并保留文本分页?
让less兼容iTerm2内联图片并正常分页的方法
不用完全关闭git diff的分页,通过配置less的参数就能实现:既让iTerm2正常显示图片,又能对普通文本内容分页。
步骤1:修改git的分页配置
打开~/.gitconfig,把[pager]部分改成下面这样,无需再设置diff=false:
[pager] diff = less -R -F -X
参数说明:
-R:核心作用,让less完整保留ANSI转义序列(包括iTerm2图片用的ESC ] 1337 ... ^G协议),直接输出给终端,不会截断或解析成乱码。-F:如果diff内容不满一屏,自动退出less,不用手动按q。-X:禁止less退出时清屏,避免刚显示的图片被立刻擦掉。
步骤2:全局配置less(可选)
如果想让所有依赖less的命令都默认用这些参数,在~/.zshrc或~/.bashrc里添加一行:
export LESS="-R -F -X"
新开终端后生效,这样git diff和其他工具都会自动适配iTerm2的图片显示。
关键原理
之前的乱码是因为默认less会把长转义序列当成普通文本处理,甚至截断行。而-R参数让less识别这类特殊转义序列,完整传递给终端,iTerm2就能正确解析渲染图片,同时less依然会对普通文本正常分页。
另外要确保你的imgdiff脚本输出的图片转义序列是完整的一行(无换行),这样less能完整处理。
内容的提问来源于stack exchange,提问作者ndbroadbent
相关产品推荐
相关产品推荐

