2012-10-05 41 views
1

我使用CVS在不同PC之间同步我的配置文件,包括我的$HOME/.vim文件夹。防止从.vim/plugin/CVS/Base/*自动加载脚本。vim

但有一个问题。 CVS喜欢在.vim/plugin/CVS/Base/中保留旧文件副本,而Vim认为它应该加载这些文件。我希望vim忽略它们!

+2

如果在十年或两年内仍然很流行,我可能会升级到git。很高兴我阻止了“颠覆”升级。 – joeytwiddle

+0

如果你来自cvs,Mercurial更容易学习。其命令似乎更一致(虽然我是主观的,因为它是我使用的第一个VCS)。 – ZyX

回答

2

您可以使用SourceCmd这种情况:

augroup ForbidCVS 
    autocmd! 
    autocmd SourceCmd */CVS/* :" Do nothing 
augroup END 
+0

完美地工作。非常感谢! – joeytwiddle

0

$HOME/.vimrc附加的底部:

" Disable normal auto-loading of plugins 
set noloadplugins 

" Now load just the plugins we want 
runtime! plugin/*.vim 

这不同于通常从加载插件/脚本及其所有子文件夹的默认行为。我怀疑大多数用户不会制作子文件夹。对于那些用户来说,这是行不通的!

+2

用户不会使用子文件夹,但复杂插件的作者可能会这样做。顺便说一下,这并不能解决filetype插件的问题:它们不太可能有子文件夹,但'cvs'是用于提交消息的有效文件类型。要查看问题,您必须满足以下要求:在ftplugin /目录下的版本控制文件(以便它们在'CVS /'中具有旧副本),windows/mac(因为它们都使用忽略大小写的文件系统)并使用vim用于编写提交消息。 – ZyX

0

一个简单的方法在多台计算机共享你的.vim和.vimrc里是把上都Dropbox和它们建立符号链接到每台计算机的$ HOME目录你工作。不需要CVS,并且您对.vimrc所做的任何更改都可以立即供所有其他计算机使用。

另一个很酷的提示是使用vim gsession插件创建存储到.vim目录的全局会话文件。因此,如果您在一台计算机上创建会话,则其他人也可以使用该会话。

+0

VCS不仅用于跨多台计算机共享配置文件,还用于保存历史记录。 – ZyX

+0

当然。但是,你真的需要对.vim目录和.vimrc进行版本控制吗? – dharnan

+1

@dharhan当在没有连接到互联网的上网本上工作时,它很方便,我编辑配置文件(合并;但这从来不是CVS的强大一面)。另一件事:我绝对相信我不会意外丢失承诺的配置:在Dropbox上执行'rm .vimrc'会将这些更改传播到其他系统,在mercurial checkout上做同样的事情不会。这种情况也很少发生,大部分情况下都是使用$ HOME中的符号链接而不是实际使用的文件,但是确实如此。对于我来说,撤消在mercurial repository中的这种删除要比从备份中获取文件简单得多。 – ZyX