たぶんあなたが望むのは、 ?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//
同意します。afterディレクトリは不要ですが、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