root権限を持つユーザーでVimを起動する

root権限を持つユーザーでVimを起動する

私のカスタムVimファイルはにあり、~/.vim設定はにあります。ただし、時にはいくつかのファイルなどを~/.vimrc編集する必要があります。 Vimを次のように起動すると:/etc

$ sudo vim /etc/rc.conf

Vimはデフォルト設定を使用しているため、設定が失われました。だから:ユーザー設定(私のホームディレクトリにあります)を失う​​ことなくファイルを編集するためにroot権限でVimを実行するにはどうすればよいですか?
私は試した:

$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"

しかしBashは私にそれを与えたPermission denied。ただし、上記のコマンドはたとえば機能します/etc/acpi/handler.sh。なぜそんなことですか?

メモ:ユーザー名ルートではありません。

答え1

またはをsudo vim /etc/rc.conf使用する代わりに、EDITOR環境変数をvimに設定する必要があります。これにより、通常のユーザーとして一般設定を使用してファイルのコピーに対してvim自体が実行され、終了するとファイルが再コピーされます。sudoedit /etc/rc.confsudo -e /etc/rc.conf

答え2

-uを使用して、vimにどのrcファイルをロードするかを知らせることができます。例えば

sudo vim -u ~user/.vimrc /etc/rc.conf

毎回これを入力するのが面倒な場合は、エイリアスを作成してください。

alias sudovim='sudo vim -u ~user/.vimrc'

vim -u$ HOMEに関連する他のファイルをロードすると、プラグインまたはrcファイルの呼び出しが失敗する可能性があります。これで、$ HOMEはユーザーのホームディレクトリではなく、ルートのホームディレクトリです。この問題は、ルートディレクトリのシンボリックリンクを使用するか、絶対パスをハードコーディングすることで解決できます。

答え3

sudo vim -S /home/user/.vimrc /etc/rc.conf

これは次のとおりです。

sudo vim /etc/rc.conf+:source /home/user/.vimrc

また、別名を使用することもできます。

alias svim='sudo vim -S /home/user/.vimrc'

関連情報