加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使vim显示git diff与颜色类似git diff命令(红色删除,绿色添加)

发布时间:2020-12-15 22:53:51 所属栏目:安全 来源:网络整理
导读:我运行了git config –global alias.ci commit –verbose 这使得它如此运行git ci就像运行git commit –verbose –verbose标志显示提交消息模板中的差异,该模板未进行注释,因此语法高亮处理对其起作用,但会自动识别为实际上未提交到存储库的日志中.当然可以
我运行了git config –global alias.ci commit –verbose

这使得它如此运行git ci就像运行git commit –verbose

–verbose标志显示提交消息模板中的差异,该模板未进行注释,因此语法高亮处理对其起作用,但会自动识别为实际上未提交到存储库的日志中.当然可以很长,但可以用于创建更好的提交注释. (而且,如果你不需要它,你可以忽略它.)

无论如何,如果我运行git diff,删除的行(以’ – ‘开头)为红色,添加的行(以”开头)为绿色.

如果我运行git ci,则vim语法会突出显示以常规颜色(白色)删除的行,以及添加为青色的行.

如何使vim语法高亮显示删除的红色线条和绿色?

vim状态行表示它正在编辑文件“?/ code.git / .git / COMMIT_EDITMSG”.我对vim语法高亮不太了解,但我知道它是可配置的.我不确定这种情况是如何配置的,因为我假设vim使用文件扩展来决定遵循哪些语法突出显示规则(我可能会离开这里)并且git没有给这个文件一个扩展名.

编辑:实际上,vim必须检测到这是一个git提交文件,因为它的语法将前50个字符突出显示为黄色.假设这表示什么可以很好地适合补丁的电子邮件主题行.

解决方法

简短版本:编辑文件?/ .vim / after / syntax / gitcommit.vim,并添加如下内容:

hi diffAdded   ctermfg=green
hi diffRemoved ctermfg=red

更长的版本,解释我如何到达那里:

编辑提交消息时,运行:set ft.这将显示Git提交文件具有文件类型gitcommit.因此,要修改提交消息的突出显示,您需要编辑文件语法/ gitcommit.vim,并且由于您希望更改覆盖正常突出显示,因此需要将其放在after /目录中.因此?/ .vim / after / syntax / gitcommit.vim.

现在,找出要改变的内容.有一段非常有用的代码,我在某处(从tpope,IIRC)获取,并且我以后一直在愉快地使用:

nmap <C-S-P> :call <SID>SynStack()<CR>
function! <SID>SynStack()
  if !exists("*synstack")
    return
  endif   
  echo map(synstack(line('.'),col('.')),'synIDattr(v:val,"name")')
endfunc

这样,打开详细提交,转到已删除的块,然后按Ctrl-Shift-P.它将显示类似[‘gitcommitDiff’,’diffRemoved’]的内容.然后转到添加的块,并获取[‘gitcommitDiff’,’diffAdded’].

查看/usr/share/vim/vim74/syntax/gitcommit.vim会显示正在发生的事情:syntax / gitcommit.vim包含syntax / diff.vim,它是diff的标准突出显示文件.因此上面的模式.

查看/usr/share/vim/vim74/syntax/diff.vim的结尾,您将找到可能需要更改的其他模式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读