プロローグ
実際、あなたはあなたの質問に答えたので、これは確かにあなたが以前に抱えていたのと同じ問題です. これは、Vim が構成を見つけるために使用するアルゴリズムが原因です (「参考文献」を参照:help initialization
)。しかし、私はあなたの解決策を正しいものとは呼びません。:help $VIM
環境で構成を使用する方法については、を参照してくださいsudo
(例: being root
)。
あなたの現在の問題について。
ドキュメントからの次の引用を参照してください。:help :mkview
:
:mkvie[w][!] [file] ...
When [file] is omitted or is a number from 1 to 9, a
name is generated and 'viewdir' prepended.
...
そして:help 'viewdir'
:
'viewdir' 'vdir' string (default for ... for Unix: "~/.vim/view", ...
したがって、sudo
すべてのビューは Vim によって に保存され/root/.vim
ます。
解決
次のようにディレクトリをviewdir
指定します。~/.vim/view
/root/.vimrc
:set viewdir=/home/user/.vim/view
ただし、このアプローチにはいくつかの問題があります。
- root によって保存されたビューを更新すると、権限エラーが発生します。
- Vim はフル パスではなくチルダを使用してファイル名を生成するため、
/root
またはの下にあるファイルの保存されたビューを渡すことはできません。/home/user
最初の問題は、コマンドを実行した直後に、chown
または新しいビュー ファイルを実行することで解決できます。次のようになります。chmod
:mkview
execute '!chown user:group' eval('&viewdir').'/'.substitute(expand('%:p:~'), '/', '+=', 'g').'='
しかし、2番目の問題の適切な解決策はわかりません。ファイル名を完全なパスに変換するスクリプトを作成することしか提案できません。