我想用git存储我的Mac、Windows和Linux vim配置文件。在*nix系统上,您的vim配置文件位于${HOME}/.vim中,但对于Windows二进制文件,同一目录名为"vimfiles"。我可以配置git以适应不同的目录名吗?
您不需要配置Git,只需将以下片段放入您的~/.vimrc
:中,就可以告诉Vim也使用适用于Windows的~/.vim
" On Windows, also use '.vim' instead of 'vimfiles'; this makes synchronization
" across (heterogeneous) systems easier.
if has('win32') || has('win64')
set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after
endif
我的设置非常简单。
在Mac上,版本化的目录是:
/Users/username/.vim
在Linux上,它是:
/home/username/.vim
在Windows XP上(是的),它是:
C:Documents and Settingsusernamevimfiles
它们都指向同一个GitHub存储库。
我的设置存储在位于存储库根目录的vimrc
(无.
或_
)文件中。因此,它的版本和承诺/推送/拉像所有其他。
实际默认用户特定的vimrc
,
/Users/username/.vimrc
/home/username/.vimrc
C:Documents and Settingsusername_vimrc
是一个真实的文件,不需要符号链接。它只包含一行:
runtime vimrc
告诉vim读取并执行我的vimrc
。
由于:runtime
的工作方式,我不需要使用真正的绝对路径,这在类Unix平台和Windows上会有所不同。
设置一台新机器或用户就像克隆我的repo和键入两个容易记住的单词一样简单。
我还需要在多个系统之间共享vim和其他应用程序的配置文件,我发现git不仅过度使用,而且需要在每个系统上手动同步才能获得最新更新并发布更改。对我来说,一个更好的解决方案是将这些配置文件放入Dropbox,使我的所有系统都连接到我的Dropbox帐户,并创建指向这些共享文件的符号链接。
例如,我将我的vimrc文件放在Dropbox/conf/vimrc
下,然后进行
ln -s ~/Dropbox/conf/vimrc ~/.vimrc
您应该能够以类似的效果使用Windows的mklink
来创建指向同一文件的_vimrc
符号链接。以同样的方式,一个通用的Dropbox/conf/vim
目录可以作为.vim
或.vimfiles
或任何您的操作系统的vim可执行文件链接到本地。
Dropbox保存了过去30天的更改历史,这足以处理我需要git的大多数问题的恢复。最酷的是,您可以将新的宏或设置添加到.vimrc
中,并且它在所有系统上都自动可用。
当然,这种方法也适用于其他配置文件(.gitconfig
、.gitignore
、.bashrc
等)