デフォルトの代わりに使用vim -u filenameすることができfilenameます.vimrc。スーパーユーザーとして実行していても、ユーザーコンテキスト(su)を切り替えて使用する場合、この方法を使用して .vimrcいます。
デフォルトでVim をコマンドラインから別のフォルダーにポイントできるように、フォルダーに対しても同じことをどのように実現できますか?~/.vim
私が達成したいこと
さて、ユーザーjoe(HOME=/home/joe)とユーザーroot(HOME=/root)を想定してください。ユーザーにjoeは、vim次のようなエイリアスセットがあります(ただし、元々は$HOME変数を使用してこれを動的に設定します)。
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
次に、ユーザーjoeはsudo su -(ただし、魔法を追加して)の線に沿って何かを実行し.bashrc、/home/joeからにロードされるその他のグッズを作成しますroot。ユーザーrootは、上記とまったく同じエイリアスvimセットを持っています。
問題は、これ.vimrcがさまざまなシステムやさまざまなシナリオで使用されることです。多くの場合、ジョーのアカウントは呼び出されますがjoe、時にはのようlocal.joeなものになり、の値が異なります$HOME。そのため、~/.vimフォルダへの絶対パスをハードコーディングすることは良い考えではないようです。ただし、上記のシナリオでは、ユーザーにrootはフォルダーが/root/.vimありませんが、ロードされた.vimrc(/home/joe/.vimrc)を介してデフォルトで存在することが予想されます。
私が達成したいのは、できればコマンドラインで- /home/joe/.vim起動時にVimが下からプラグインなどを使用するようにrootすることaliasです(示されているように設定されていると仮定-他のケースは無視できます)。VimScriptを介した動的メソッドがある場合は、ポインターを指定してください。しかし、などの変数を使用$HOMEすると、キャッチ22につながると思います。
ln。'mv〜/ .vim〜/ .vim-whatever && ln -s〜/ .vim-whatever〜/ .vim`のように、.vimrc。あなたは簡単に一つの方法または他の切り替えることができますので、いくつかのbashのエイリアスを使用して、すべてのものを包む