由于某些原因,vim每次都试图从错误的路径打开文件COMMIT_EDITMSG。我一直在使用git-gui来进行多行提交消息,因为我懒得解决这个问题,但现在我已经厌倦了为了提交而不得不打开资源管理器。以下是一个屏幕截图,显示了当我尝试编辑先前的提交消息时会发生什么情况:
当我尝试写入文件时(请注意错误的路径):
如果将编辑器更改为notepad,则突然可以正常工作:
编辑:
通过干净安装和一些试错,我已经缩小了问题可能原因的范围,以下是两个设置:
奇怪的是,它应该使用以下任何一种方式打开文件:
![enter image description here](https://istack.dev59.com/O9jne.webp)
![enter image description here](https://istack.dev59.com/ngrxG.webp)
![enter image description here](https://istack.dev59.com/opWIp.webp)
set autochdir
set encoding=utf-8
只需在您的.vimrc中加入这两行代码就能重现此错误(至少在我的情况下是如此)。奇怪的是,注释其中一条语句会导致错误消失。
另一种重现此错误的方法是通过以下命令:
使用此命令应该会得到".git\COMMIT_EDITMSG" [New DIRECTORY]
:
vim -N -u NONE --cmd "set autochdir | set encoding=utf-8" .git\COMMIT_EDITMSG
奇怪的是,它应该使用以下任何一种方式打开文件:
vim -N -u NONE --cmd "set autochdir" .git\COMMIT_EDITMSG
vim -N -u NONE --cmd "set encoding=utf-8" .git\COMMIT_EDITMSG
:h autochdir
,该设置是为了向后兼容而提供的,如果打开它可能会破坏插件。在这种情况下,它甚至会破坏试图使用vim的外部程序。 - FDinoffautochdir
的功能并不是那样。我猜测你使用的插件没有考虑到autochdir
,所以禁用它只是一种解决方法。 - Michael Foukarakis