我使用CVS在不同PC之间同步我的配置文件,包括我的$HOME/.vim
文件夹。防止从.vim/plugin/CVS/Base/*自动加载脚本。vim
但有一个问题。 CVS喜欢在.vim/plugin/CVS/Base/
中保留旧文件副本,而Vim认为它应该加载这些文件。我希望vim忽略它们!
我使用CVS在不同PC之间同步我的配置文件,包括我的$HOME/.vim
文件夹。防止从.vim/plugin/CVS/Base/*自动加载脚本。vim
但有一个问题。 CVS喜欢在.vim/plugin/CVS/Base/
中保留旧文件副本,而Vim认为它应该加载这些文件。我希望vim忽略它们!
您可以使用SourceCmd
这种情况:
augroup ForbidCVS
autocmd!
autocmd SourceCmd */CVS/* :" Do nothing
augroup END
完美地工作。非常感谢! – joeytwiddle
在$HOME/.vimrc
附加的底部:
" Disable normal auto-loading of plugins
set noloadplugins
" Now load just the plugins we want
runtime! plugin/*.vim
这不同于通常从加载插件/脚本及其所有子文件夹的默认行为。我怀疑大多数用户不会制作子文件夹。对于那些用户来说,这是行不通的!
用户不会使用子文件夹,但复杂插件的作者可能会这样做。顺便说一下,这并不能解决filetype插件的问题:它们不太可能有子文件夹,但'cvs'是用于提交消息的有效文件类型。要查看问题,您必须满足以下要求:在ftplugin /目录下的版本控制文件(以便它们在'CVS /'中具有旧副本),windows/mac(因为它们都使用忽略大小写的文件系统)并使用vim用于编写提交消息。 – ZyX
一个简单的方法在多台计算机共享你的.vim和.vimrc里是把上都Dropbox和它们建立符号链接到每台计算机的$ HOME目录你工作。不需要CVS,并且您对.vimrc所做的任何更改都可以立即供所有其他计算机使用。
另一个很酷的提示是使用vim gsession插件创建存储到.vim目录的全局会话文件。因此,如果您在一台计算机上创建会话,则其他人也可以使用该会话。
VCS不仅用于跨多台计算机共享配置文件,还用于保存历史记录。 – ZyX
当然。但是,你真的需要对.vim目录和.vimrc进行版本控制吗? – dharnan
@dharhan当在没有连接到互联网的上网本上工作时,它很方便,我编辑配置文件(合并;但这从来不是CVS的强大一面)。另一件事:我绝对相信我不会意外丢失承诺的配置:在Dropbox上执行'rm .vimrc'会将这些更改传播到其他系统,在mercurial checkout上做同样的事情不会。这种情况也很少发生,大部分情况下都是使用$ HOME中的符号链接而不是实际使用的文件,但是确实如此。对于我来说,撤消在mercurial repository中的这种删除要比从备份中获取文件简单得多。 – ZyX
如果在十年或两年内仍然很流行,我可能会升级到git。很高兴我阻止了“颠覆”升级。 – joeytwiddle
如果你来自cvs,Mercurial更容易学习。其命令似乎更一致(虽然我是主观的,因为它是我使用的第一个VCS)。 – ZyX