如何在Windows下使用gvim处理svn提交消息?
在*nix下,我可以将如何在Windows下使用gvim处理svn提交消息?,windows,svn,vim,Windows,Svn,Vim,在*nix下,我可以将SVN_EDITOR设置为gvim--nofork来完成这项任务,但在Windows下似乎不起作用。有什么解决方案吗?是为Git编写的,但应该直接应用 要使此功能正常工作,请尝试以下操作 创建一个单行批处理文件(名为svn_editor.bat),其中包含以下内容: “path/to/gvim.exe”--nofork“%*” 将svn\u editor.bat放在路径上 SetSVN\u EDITOR=SVN\u EDITOR.bat 完成此操作后,SVN应正确调用gvi
SVN_EDITOR
设置为gvim--nofork
来完成这项任务,但在Windows下似乎不起作用。有什么解决方案吗?是为Git编写的,但应该直接应用
要使此功能正常工作,请尝试以下操作
svn_editor.bat
),其中包含以下内容:“path/to/gvim.exe”--nofork“%*”
svn\u editor.bat
放在路径上
SVN\u EDITOR=SVN\u EDITOR.bat
注3:如果git传递带有空格的文件路径,则需要在“%*”周围加引号。如果已安装批处理文件(c:\windows\gvim.bat),只需将
EDITOR
设置为gvim-f
,批处理文件将处理-f参数并设置无fork选项
批处理文件中的技巧是运行START/WAIT path\to\gvim.exe%*
(请参阅/WAIT参数)
如果您没有批处理文件,只需使用上面的命令创建一个新的批处理文件,并将
编辑器设置为新创建的批处理文件。如果问题是传递参数以防止转向gvim(您的问题有点模糊),然后,您可以创建一个批处理文件,用所需的参数调用gvim,或者只需将以下内容添加到vimrc
(而不是gvimrc
)中,并指向SVN\u编辑器
处的gvm.exe
:
set guioptions+=f
这告诉vim在创建GUI时不要使用fork,并且具有不必处理批处理文件的优点。有关详细信息,请参阅:
:help gui-fork
它以什么方式不起作用?你到底做了什么,发生了什么,你期望发生什么?你的问题有点模糊……如果我将SVN_编辑器设置为gvim--nofork
,然后执行SVN ci
,SVN不会等待gvim退出,而是发出此错误消息并退出:SVN:Commit失败(详细信息如下):SVN:system('gvim--nofork“SVN Commit.tmp')返回1
。类似地,如果我将SVN\u编辑器
设置为刚好gvim
。多亏了zundr,问题现在解决了。谢谢大家的关注。我怀疑这就是你的意思,我只是不太确定。在这种情况下,批处理文件或调整vimrc
中的guioptions
都应该可以工作。是的,我确实安装了批处理文件,因此根据您的建议,我将SVN_编辑器设置为gvim-f
,它工作起来非常有魅力。非常感谢您的建议和解释!很抱歉你发现我的问题含糊不清。我在问如何教svn在调用svn commit
时使用gvim,而不使用-m
参数,并且以一种不会产生任何问题的方式。我不确定您的意思是否是svn没有查看svn\u编辑器,gvim的路径是否错误,提供的文件是否错误(例如,Tim Henigan修复的空间问题)或者这是否是一个分叉问题(由Tim Henigan、zundr和我的答案修复)。谢谢,我尝试了你建议的方法,效果很好。我想我会使用zundr的方法,因为它更容易设置和记忆。不过还是要谢谢你,+1来自我;)