使用符号链接保存Vim自动源vimrc

时间:2013-05-13 04:29:23

标签: vim

我有一个符号链接,它将我的.vimrc指向我的仓库中的那个。

Vim加载就好了,但是在改变时我无法自动获取它。

我有一个典型的:

if has("autocmd")
    autocmd! BufWritePost .vimrc source $MYVIMRC
endif

如果vimrc没有符号链接,那么这是有效的。

3 个答案:

答案 0 :(得分:2)

我有一个类似的设置,其中~/.vimrc只是git存储库的符号链接。以下自动命令对我有用:

autocmd! bufwritepost .vimrc source %

答案 1 :(得分:1)

我一般不喜欢符号链接,而Vim也不喜欢它们。

我使用的布局可能类似于你的布局:

~/.vimrc
~/.vim/vimrc

有很大的不同:~/.vimrc真实文件,而不是符号链接,它只包含一行:

runtime vimrc

执行我的真实~/.vim/vimrc。因为它是一个Vim命令而且它不使用文件路径,所以每一个系统上的那一行都是相同的。

由于$MYVIMRC指向真实文件,:so $MYVIMRC始终有效。

答案 2 :(得分:1)

我解决了那个问题,就是我在dotfiles文件夹中保存的所有配置 https://github.com/lis2/dotfiles

然后我有一个小而简单的ruby脚本,当我在配置

中更改内容时,我运行该脚本
#!/usr/bin/env ruby
require "fileutils"

config_hash = { "tmux.conf" => ".tmux.conf", "vimrc" => ".vimrc", "vim" => ".vim", "gitconfig" => ".gitconfig", "gitignore" => ".gitignore"}
config_hash.each do |k,v|
  FileUtils.rm_rf(File.dirname(__FILE__) + "/../#{v}")
  FileUtils.ln_s(File.dirname(__FILE__) + "/#{k}", File.dirname(__FILE__) + "/../#{v}")
end

我建议你构建相同的配置。在所有计算机(私人/工作)上我只是克隆我的仓库,运行symlink.rb并且我的简单环境已准备就绪。

喝彩!