我有一个符号链接,将我的.vimrc文件指向我的代码库中的文件。
Vim可以成功加载它,但我无法让其在更改后自动重新加载。
我已经按照通常的方式进行了设置:
if has("autocmd")
autocmd! BufWritePost .vimrc source $MYVIMRC
endif
如果vimrc文件没有使用符号链接,则此方法可行。
我有一个符号链接,将我的.vimrc文件指向我的代码库中的文件。
Vim可以成功加载它,但我无法让其在更改后自动重新加载。
我已经按照通常的方式进行了设置:
if has("autocmd")
autocmd! BufWritePost .vimrc source $MYVIMRC
endif
我有一个类似的设置,其中~/.vimrc
只是指向git存储库的符号链接。以下自动命令适用于我:
autocmd! bufwritepost .vimrc source %
~/.vimrc
~/.vim/vimrc
~/.vimrc
是一个真实文件,而不是符号链接,并且它只包含一行:runtime vimrc
执行我的真实~/.vim/vimrc
的命令。因为它是一个Vim命令,不使用文件路径,所以该行可以在每个系统上相同。
由于$MYVIMRC
指向一个真实文件,:so $MYVIMRC
总是有效的。
#!/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
我将 .vimrc 和 .gvimrc 都建立了符号链接到一个 git 仓库,就像你所描述的那样。我正在运行 MacVim macOS。
我找到了一个很好的答案来回答 progressively-slower-reloading-time-of-vimrc 这个问题。
我稍微修改了一下,使其在任何一个文件更改时都可以重新加载 vimrc 和 gvimrc。我已经使用它几个月了,没有出现任何问题。
这就是代码,你只需要将它放在 .vimrc 中即可,不需要添加任何内容到 .gvimrc 中。
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autoreload vimrc
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
augroup configsGroup
autocmd!
" Make changes effective after saving .vimrc. Beware that autocommands are
" duplicated if .vimrc gets sourced again, unless they are wrapped in an
" augroup and the autocommands are cleared first using 'autocmd!'
autocmd! bufwritepost *\<vimrc\> call OnSavingConfigs()
autocmd! bufwritepost *\<gvimrc\> call OnSavingConfigs()
augroup END
" Avoid infinite loops
if !exists("*OnSavingConfigs")
function! OnSavingConfigs()
" Clear previous mappings, they don't go away automatically when
" sourcing vimrc.
mapclear
source $MYGVIMRC
source $MYVIMRC
redraw
echo "Reloaded " . $MYVIMRC . " and " . $MYGVIMRC . "."
endfunction
endif
bufwritepost
可能正在查看真实文件名。 - innaM:help autocmd-patterns
- innaM