私のカスタム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ではありません。
の代わりに Sudo vim /etc/rc.conf
使用する sudoedit /etc/rc.conf
またはSudo -e /etc/rc.conf
。 EDITOR環境変数をvimに設定する必要がある場合があります。これは、通常の設定を使用して、終了時にコピーされるファイルのコピーに対して、通常のユーザーとしてvim自体を実行します。
-u
を使用して、読み込むrcファイルをvimに指示できます。例えば.
Sudo vim -u ~user/.vimrc /etc/rc.conf
入力する必要があるたびに入力するのが面倒な場合は、エイリアスを作成します。
alias sudovim='Sudo vim -u ~user/.vimrc'
vim -u
は、$ HOMEに関連する他のファイルをロードすると、プラグインまたは呼び出されたrcファイルが失敗する場合があることに注意してください。$ HOMEは、ユーザーのホームディレクトリではなく、ルートのホームディレクトリになります。これは、例えばルートのホームディレクトリのシンボリックリンク、または絶対パスをハードコーディングすることによるシンボリックリンク。
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'