私のカスタム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.conf
sudo -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'