如何使用vim作为寻呼机设置彩色git diff

Ika*_*ský 10 git vim diff

我无法配置git来遵循我的请求:

  1. 使用vim作为差异寻呼机
  2. 在交互模式下添加文件时保留diff的颜色

我的~/.gitconfig设置:

[color]
    ui = auto
    # diff = false

[pager]
    diff = vim -
Run Code Online (Sandbox Code Playgroud)

使用此配置,交互模式git add --interactive可按预期生成彩色输出:

互动添加

这样做的缺点是vim中的diff已损坏.看输出git diff:

使用vim的diff

当使用git diff | vim -颜色没问题但是我懒得输入完整的命令.在这两种情况下是否有任何已知方法可以保留颜色?

ZyX*_*ZyX 14

你需要安装AnsiEsc插件:AnsiEsc在加载文件后运行.您可以将寻呼机设置vim -c AnsiEsc -为执行此操作.

或者,使用vim自己的突出显示:使用相同的方法(-c command)运行

%sm/\e.\{-}m//g
set ft=diff
Run Code Online (Sandbox Code Playgroud)

:

    diff = "vim -c '%sm/\\e.\\{-}m//g' -c 'set ft=diff' -"
Run Code Online (Sandbox Code Playgroud)

  • 很好,谢谢!我使用了一个稍微改进的版本,在替换后将光标设置在缓冲区的顶部.它也忽略空差异:_diff ="vim -c'%sm/\\ e.\\ { - } m // ge'-c'set ft = diff'-c'normal gg' - "_ (3认同)