Saya memiliki file Vim khusus saya ~/.vim
dan pengaturan di ~/.vimrc
. Namun, kadang-kadang saya harus mengedit beberapa file /etc
dan sebagainya.
Jika saya memulai Vim seperti ini:
$ sudo vim /etc/rc.conf
Saya kehilangan konfigurasi saya karena Vim menggunakan yang standar. Jadi: bagaimana saya bisa menjalankan Vim dengan hak akses root untuk mengedit file tanpa kehilangan pengaturan pengguna saya (yang ada di direktori home saya)?
Saya telah mencoba:
$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"
tapi Bash memberiku Permission denied
. Namun, perintah di atas bekerja misalnya untuk: /etc/acpi/handler.sh
. Mengapa demikian?
Catatan: nama pengguna bukan root.
sumber
sudoedit /etc/rc.conf
dansudo -e /etc/rc.conf
dan itu membuka vim, tetapi ~ / .vimrc saya tidak dimuat. Apa yang saya lakukan salah?export EDITOR=vim
dulu - mungkin mencoba untuk menjalankanvi
, yang saya tidak tahu apakah itu memuat vimrc bahkan ketika itu vim.export EDITOR=vim
bekerja. Saya pikir vi tidak diinstal pada sistem saya dan hanya symlink ke vim. Terima kasihAnda dapat menggunakan
-u
vim untuk memberitahu file rc mana yang akan dimuat. misalnyasudo vim -u ~user/.vimrc /etc/rc.conf
jika mengetik itu setiap kali Anda perlu melakukannya membosankan, buatlah alias:
alias sudovim='sudo vim -u ~user/.vimrc'
Catatan yang
vim -u
dapat menyebabkan plugin atau disebut file rc gagal jika mereka memuat file lain relatif ke $ HOME - $ HOME sekarang direktori home root, bukan pengguna. Ini dapat diselesaikan dengan mis symlinks di home dir root atau dengan hard-coding path absolut.sumber
alias svim="HOME=/home/user && sudo vim -u $HOME/.vimrc"
.sudo vim -S /home/user/.vimrc /etc/rc.conf
Ini setara dengan:
sudo vim /etc/rc.conf
+:source /home/user/.vimrc
dan bisa juga alias:
alias svim='sudo vim -S /home/user/.vimrc'
sumber