Git设置gvim为默认编辑器时不等待用户输入的问题求助
解决Git中GVim作为默认编辑器时不等待窗口关闭的问题
我之前也踩过这个坑!问题的根源很简单:GVim默认是后台启动的(fork进程),它不会阻塞终端里的Git进程,所以Git以为你已经编辑完退出了,才会直接抛出“Aborting due to empty commit message”的错误,或者在rebase时直接跳过交互式步骤。而Vim是前台运行的,自然能和Git正常配合。
下面给你两个靠谱的解决办法:
1. 永久修改Git配置,让GVim前台运行
直接编辑你的全局~/.gitconfig或者项目内的.git/config,添加/修改core.editor配置:
[core] editor = gvim -f
这里的-f参数(等价于--nofork)是关键,它会强制GVim在前台启动,直到你手动关闭编辑器窗口,Git才会继续执行后续流程。
如果你的GVim需要加载特定配置文件,也可以把完整命令写进去,比如:
[core] editor = gvim -u ~/.myvimrc -f
2. 临时指定编辑器(单次生效)
如果只是偶尔想用GVim,不想改全局配置,可以在执行Git命令时临时指定编辑器:
- 提交时:
GIT_EDITOR="gvim -f" git commit
- 交互式变基时:
GIT_EDITOR="gvim -f" git rebase -i HEAD~3
设置完成后,再测试git commit或者git rebase -i,你会发现GVim打开后,Git会乖乖等你编辑完关闭窗口,再继续执行操作,提交信息和变基的编辑文件也能正常显示了~
内容的提问来源于stack exchange,提问作者alex_halford
相关产品推荐
相关产品推荐

