我无法配置git来遵循我的要求:
我的~/.gitconfig
设置:
[color]
ui = auto
# diff = false
[pager]
diff = vim -
使用此配置,git add --interactive
的交互模式可按预期生成彩色输出:
这样做的缺点是vim中的diff已损坏。请参阅git diff
的输出:
使用git diff | vim -
时颜色没问题,但我懒得输入完整的命令。在这两种情况下是否有任何已知方法可以保留颜色?
答案 0 :(得分:11)
您需要安装AnsiEsc plugin并在加载文件后立即运行:AnsiEsc
。您可以将寻呼机设置为vim -c AnsiEsc -
来执行此操作。
或者,使用vim自己的突出显示:使用相同的方法(-c command
)运行
%sm/\e.\{-}m//g
set ft=diff
diff = "vim -c '%sm/\\e.\\{-}m//g' -c 'set ft=diff' -"
答案 1 :(得分:4)
这里有两种选择。
$ git config --global diff.tool vimdiff
$ git config --global difftool.prompt false
$ git config --global alias.d difftool
[diff]
tool = vimdiff
[difftool]
prompt = false
[alias]
d = difftool # Not needed, just a convenience. $ git difftool, still works.
常规Git差异,但颜色高亮。
$ git config --global color.ui true
[color]
ui = true
现在,你有一个奇怪的组合。你当然可以同时使用两者,但是pager
正在弄乱事情
你获得^[32m
等原因是因为你试图在Vim中读取shell颜色。这不起作用。
答案 2 :(得分:0)
尝试以下设置:
git config --global diff.tool vimdiff
git config --global merge.tool vimdiff
git config --global difftool.prompt false