如何在Mac上为Git交互式变基启用颜色高亮
我完全懂你的困扰——Git的status、log这些终端命令都能正常高亮,偏偏交互式变基打开编辑器后,pick、squash、fixup这些命令全是黑白的,明明Windows的Git Bash默认就有这个效果,Mac肯定也能搞定!
先给你说清楚为什么之前的.gitconfig设置没用:你配置的color.interactive是针对Git交互式命令行工具(比如git add -i这种终端交互界面)的高亮,而交互式变基是在外部文本编辑器里操作的,Git会把待编辑的变基指令传给编辑器,这部分的高亮得靠编辑器本身来支持,不是Git的终端颜色配置能管的。
下面给你两种常见编辑器的解决方案:
方案一:用Vim作为默认编辑器(最省心)
Mac默认的终端编辑器是Vim,但默认没开启Git变基文件的语法高亮,只需两步设置:
确保Git用Vim作为默认编辑器(如果没设置过的话),在
~/.gitconfig里添加:[core] editor = vim让Vim识别Git变基文件并开启高亮,在
~/.vimrc里添加:" 自动识别Git变基待办文件并启用语法高亮 autocmd BufReadPre git-rebase-todo set filetype=gitrebase autocmd FileType gitrebase syntax onVim本身自带
gitrebase的语法规则,开启后pick、squash、fixup这些关键词会自动按配色方案高亮(比如pick通常是黄色,squash是绿色,和你之前想设置的效果一致)。
方案二:用VS Code作为默认编辑器
如果你习惯用VS Code,只需两步:
设置Git默认编辑器为VS Code,在
~/.gitconfig里添加:[core] editor = code --wait安装支持Git变基文件高亮的插件,比如Git Rebase Editor,安装后VS Code会自动识别
git-rebase-todo类型的文件,给pick、squash等命令加上颜色高亮。
设置完之后,你再执行git rebase -i HEAD~n试试,编辑器里的变基指令应该就能正常高亮啦!
内容的提问来源于stack exchange,提问作者dstandish

