防止从.vim/plugin/CVS/Base/*.vim自动加载脚本

防止从.vim/plugin/CVS/Base/*.vim自动加载脚本,vim,cvs,config,autoload,Vim,Cvs,Config,Autoload,我使用CVS在不同的PC之间同步配置文件,包括我的$HOME/.vim文件夹 但有一个问题。CVS喜欢将文件的旧副本保留在.vim/plugin/CVS/Base/中,vim认为应该加载这些文件。我要维姆忽略他们 在$HOME/.vimrc的底部添加: " Disable normal auto-loading of plugins set noloadplugins " Now load just the plugins we want runtime! plugin/*.vim 这与默认

我使用CVS在不同的PC之间同步配置文件,包括我的
$HOME/.vim
文件夹


但有一个问题。CVS喜欢将文件的旧副本保留在
.vim/plugin/CVS/Base/
中,vim认为应该加载这些文件。我要维姆忽略他们

$HOME/.vimrc
的底部添加:

" Disable normal auto-loading of plugins
set noloadplugins

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

这与默认行为不同,默认行为通常从plugin/及其所有子文件夹加载脚本。我怀疑大多数用户不会创建子文件夹。对于这样做的用户,这是行不通的

对于这种情况,您可以使用
SourceCmd

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

跨多台计算机共享.vim和.vimrc的一个简单方法是将它们放在dropbox上,并将它们符号链接到您工作的每台计算机的$HOME目录。不需要CVS,例如,您对.vimrc所做的任何更改都可以立即用于所有其他计算机


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

如果git在十年或二十年后仍然流行,我可能会升级到git。很高兴我推迟了对subversion的“升级”。如果你来自cvs,Mercurial更容易学习。它的命令似乎更加一致(虽然我在这里是主观的,因为这是我使用的第一个VCS)。用户不经常使用子文件夹,但复杂插件的作者可能会这样做。顺便说一下,这并不能解决文件类型插件的问题:它们不太可能有子文件夹,但是
cvs
是用于提交消息的有效文件类型。要查看问题,您必须满足以下要求:
ftplugin/
目录中的版本控制文件(以便它们在
CVS/
中具有旧副本)、windows/mac(因为它们都使用忽略大小写的文件系统)使用vim编写提交消息。VCS不仅用于在多台计算机上共享配置文件,还用于保存历史记录。当然。但是你真的需要对你的.vim dir和.vimrc进行版本控制吗?@dharhan当你使用未连接到互联网的上网本时,它会很方便,我会编辑配置文件(合并;但这从来都不是CVS的优点)。另一件事:我绝对相信我不会意外地丢失提交的配置:在dropbox挂载上执行
rm.vimrc
会将这些更改传播到其他系统,在mercurial checkout上执行同样的操作不会。在$HOME中的符号链接而不是实际使用的文件中,这种情况也很少发生,而且大多数情况下也是如此。对我来说,在mercurial repository中撤销这样的删除比从备份中获取文件要简单得多。如果你和我一样擅长破坏插件,那么是的,你需要修订历史记录!但是感谢dropbox的提示,我知道有些人发现这种方法很有效,非常有效。谢谢!