防止从.vim/plugin/CVS/Base/*.vim自动加载脚本
我使用CVS在不同的PC之间同步配置文件,包括我的防止从.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 这与默认
$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的提示,我知道有些人发现这种方法很有效,非常有效。谢谢!