我最近开始尝试使用VCSCommand plugin vim来处理几个subversion存储库。每次我使用vim
从VCSCommit
提交更改,也就是说。关键组合( \ cc ),我不断将这些额外的空白行添加到我的提交中。
以下是一个例子:
------------------------------------------------------------------------
r72 | smingolelli | 2012-12-15 15:58:17 -0500 (Sat, 15 Dec 2012) | 2 lines
Trying from Fedora 14 w/ svn 1.6.17 and vim 7.3 1-315 w/ svn:eol-style=native for compile.sh.
------------------------------------------------------------------------
如果我从命令行执行相同的提交:
------------------------------------------------------------------------
r73 | smingolelli | 2012-12-15 16:06:44 -0500 (Sat, 15 Dec 2012) | 1 line
Trying from Fedora 14 w/ svn 1.6.17 and vim 7.3 1-315 w/ svn:eol-style=native for compile.sh from command-line.
------------------------------------------------------------------------
所以对于VCSCommand plugin
来说似乎是vim
,但我不知道问题是什么。另外,我尝试使用多个版本的svn
,vim
和VCSCommand plugin
进行相同的测试,但仍然有相同的行为。
Fedora 14
CentOS 6
答案 0 :(得分:0)
Vim有一个"功能"名为eol
,默认情况下通常处于启用状态。您可以使用:set eol
打开它。如果每个文本文件还没有,则会在每个文本文件的末尾添加一个额外的换行符。这是因为一些较旧的软件(最值得注意的是cron
)需要在文件末尾添加换行符才能正确读取。大多数(如果不是全部)这个旧软件已经更新,没有这个要求,但是vim仍然可以像以前一样工作。
您可以使用:set noeol
关闭此功能。它会删除文件末尾的一个换行符(如果有的话)。如果您不想在文本文件的末尾添加换行符,或者在您的情况下,在提交注释结束时,这很好。将set noeol
放在.vimrc
文件的顶部,此设置将一直处于开启状态,但只要{{1} {{1},所有文件都会在文件的最后丢失换行符设置生效。
一种选择是使用noeol
,它会关闭文本处理,并保留单独的换行符。但它会禁用其他一些与文本相关的功能。如果您选择此选项,请查看documentation以查看哪些功能将会消失。您也可以将此设置放在:set binary
文件中。