也许您想要的是directory
根据中的条目进行设置runtimepath
?尝试这个:
let &directory = substitute(&rtp, ",", "/swapfiles//,", "g")
runtimepath
使用Unix-y 系统上的默认设置,您将获得
$HOME/.vim/swapfiles//,
$VIM/vimfiles/swapfiles//,
$VIMRUNTIME/swapfiles//,
$VIM/vimruntime/after/swapfiles//,
$HOME/.vim/after//
在 Windows 上
$HOME/vimfiles/swapfiles//,
$VIM/vimfiles/swapfiles//,
$VIMRUNTIME/swapfiles//,
$VIM/vimfiles/after/swapfiles//,
$HOME/vimfiles/after/swapfiles//
我同意,后面的目录是不需要的,但是 vim 会选择存在的第一个目录并允许创建文件,所以如果你不创建 swapfiles 子目录,它们就不会被触及。
您可能需要考虑将这些添加到默认值而不是替换它,以便在不存在任何目录时可以使用默认值作为后备。
我不明白你为什么有你提到的自动命令。runtimepath
with的默认设置filetype plugin on
应该会为您解决这个问题。
当然,您始终可以选择明确检查平台并使用不同的设置,如
if has("win32")
" settings for windows
elif has("win32unix")
" settings for cygwin
elif has("unix")
" settings for unix
elif has("macunix")
" settings for macosx
endif
如果你想在文件不存在的情况下避免错误,那么你可以在你的 vimrc 中使用以下定义
func! Source(file)
if filereadable(a:file)
exec "source " . fnameescape(a:file)
endif
endfunction
com! -nargs=1 -complete=file Source call Source(<f-args>)
并更改source
为Source
文件可能不存在的时间。