如何在 Vim 中获取详细 git 提交的正常差异颜色?

问题描述 投票:0回答:1

正常运行时

git diff
我得到了我习惯的直观颜色:

红色表示已删除,绿色表示已添加,白色表示未更改。

但是当我运行

git commit -v
时,在编辑器中打开的包含的差异具有我不习惯的奇怪颜色,因此解析差异的含义更加困难:

白色/灰色表示删除,青色表示添加,白色表示不变?那是什么?

我该怎么做才能使编辑器内详细提交的差异具有与直接运行

git diff
时相同的颜色?

我使用 MacOS 和 vim 作为编辑器 (

git config --global core.editor /usr/bin/vim
)

git vim git-commit git-diff
1个回答
2
投票

git commit -v
打开名为
COMMIT_EDITMSG
的文件。 Vim (8.2) 会将具有该名称的文件的
filetype
设置为
gitcommit

对应的语法规则(

$VIMRUNTIME/syntax/gitcommit.vim
)引用了
syntax/diff.vim
规则,使得以
+
-
开头的行分别成为
diffAdded
diffRemoved
语法项。

您需要设置颜色方案和/或终端颜色,使

diffAdded
看起来绿色,
diffRemoved
看起来红色。


检查

:hi diffAdded
:hi diffRemoved
为什么它们目前不是绿色和红色。

例如你可能会看到

:hi diffAdded
diffAdded      xxx links to Identifier

然后

:hi Identifier
Identifier     xxx term=underline cterm=bold ctermfg=6 guifg=palegreen

要覆盖与详细 Git 提交相关的特定突出显示组,可以将类似的内容添加到其

.vimrc
:

function! MyHighlights() abort
    highlight diffAdded ctermfg=2 guifg=#67c12c
    highlight diffRemoved ctermfg=1 guifg=#b82e19
endfunction
augroup MyColors
    autocmd!
    autocmd ColorScheme * call MyHighlights()
augroup END

如果您还没有指定

colorscheme
,您还需要添加它来触发
ColorScheme
事件:

colorscheme default
© www.soinside.com 2019 - 2024. All rights reserved.