web-dev-qa-db-ja.com

root権限を持つユーザーとしてVimを起動します

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

$ Sudo vim /etc/rc.conf

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

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

しかし、バッシュはPermission deniedをくれます。ただし、上記のコマンドは、たとえば/etc/acpi/handler.shに対して機能します。何故ですか?

注:sernameはrootではありません。

10
rubik

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

15
Random832

-uを使用して、読み込むrcファイルをvimに指示できます。例えば.

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

入力する必要があるたびに入力するのが面倒な場合は、エイリアスを作成します。

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

vim -uは、$ HOMEに関連する他のファイルをロードすると、プラグインまたは呼び出されたrcファイルが失敗する場合があることに注意してください。$ HOMEは、ユーザーのホームディレクトリではなく、ルートのホームディレクトリになります。これは、例えばルートのホームディレクトリのシンボリックリンク、または絶対パスをハードコーディングすることによるシンボリックリンク。

6
cas

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'

1
Amos Baker