由于某些原因,vim一直试图从错误的路径打开文件COMMIT_EDITMSG。我一直在使用git-gui来做多线提交消息,因为我懒得修复这个问题,但我厌倦了打开资源管理器来提交一些东西。这里是一个说明会发生什么,当我尝试编辑先前提交消息screengrab:如何让Vim打开.git COMMIT_EDITMSG而不是.git .git COMMIT_EDITMSG?
,当我尝试写文件(注意在错误的道路):
当您将编辑器更改为记事本时突然生效:
编辑:
我已经缩小问题的可能原因这两个设置(全新安装后和一些试验和错误):
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的外部程序。 – FDinoff
这个问题似乎相对容易解决。您只需在检测到相对路径时防止目录更改。我只是说。我对Vim的发展一无所知。问题可能比看起来更复杂。 – Segfault
这并不准确;这不是'autochdir'的功能。我的猜测是你使用的插件没有考虑'autochdir',所以禁用它只是一个解决方法。 –