如何在Windows下使用gvim来提交svn提交信息?

在* nix下,我可以将SVN_EDITOR设置为gvim --nofork来做这个伎俩,但是这在Windows下似乎不起作用。 有没有解决scheme?

如果已经安装了批处理文件(c:\ windows \ gvim.bat),只需将EDITOR设置为gvim -f ,批处理文件将处理-f参数并设置no-fork选项。

批处理文件中的技巧是运行START /WAIT path\to\gvim.exe %* (请参阅/ WAIT参数)。

如果您没有批处理文件,只需使用上述命令创建一个新文件,然后将EDITOR设置为新创建的批处理文件。

这个答案是为Git编写的,但应该直接应用。

要做到这一点,请尝试以下操作。

  1. 创建一个包含以下内容的单行批处理文件(名为svn_editor.bat ):
  2. "path/to/gvim.exe" --nofork "%*"
  3. svn_editor.bat放在你的PATH
  4. 设置SVN_EDITOR=svn_editor.bat

完成这个工作后,SVN应该正确地调用gvim可执行文件。

注1:gvim的–nofork选项可确保在提交消息被写入之前它会被阻塞。

注2:如果路径中有空格,则需要gvim路径的引号。

注3:为了防止git传递带空格的文件路径,需要引用“%*”。

如果问题是传递参数来防止分叉到gvim(你的问题有点模糊),那么你可以创建一个批处理文件,用所需的参数调用gvim,或者你可以简单地把下面的代码添加到你的vimrc (NOT gvimrc )指向gvim.exe SVN_EDITOR

 set guioptions+=f 

这就告诉vim在创建GUI时不要fork,并且不必乱用批处理文件。 有关更多信息,请参阅:

 :help gui-fork