Ini benar-benar membuat frustasi ketika saya perlu mengedit file sebagai root dan gunakan sudo vim somefile.conf
dan saya tidak dapat menggunakan keybindings dan pengaturan dan plugin saya.
Apakah ada cara untuk mendapatkan semua penyesuaian saya ketika saya perlu mengedit sebagai root?
Saya menggunakan vim-plug untuk plugins saya.
vimrc
plugin-system
Robbie Wxyz
sumber
sumber
sudo vim file
lebih baik ditulis sebagaisudo -e file
(asalkan Anda mengatur variabel lingkunganEDITOR=vim
).Jawaban:
Daripada membuka vim sebagai root, Anda bisa menyimpan sebagai root dengan mengarahkan ke tee. Berikut ini sebuah contoh:
Ini mungkin berguna untuk alias di .vimrc Anda, saya menggunakan
:Sw
:sumber
I did a bunch of editing and then realized I should have used sudoedit
, tetapi untuk kasus umum saya sarankan menggunakansudo -e
/sudoedit
.Dua hal:
Gunakan
$ sudo -e file
untuk mengeditfile
dengan$EDITOR
. Tambahexport EDITOR=/path/to/vim
jika$EDITOR
belum diatur.Going vanilla adalah cara terbaik untuk melawan kecanduan plugin Anda.
sumber
sudo vim
halnya vim . Pengeditan terjadi sebagai pengguna normal Anda dan kemudian sudo menangani memperbarui file asli.sudo
:-E
dan-e
.-E
berarti "lingkungan pemelihara", dan ini bukan yang Anda inginkan.-e
, pada gilirannya, berarti "jangan menjalankan perintah, tetapi edit file dengan prosedur yang ditentukan".Sepertinya yang harus Anda lakukan adalah symlink root
~/.vimrc
dan~/.vim/
milik Anda.Jalankan saja sebagai root:
Dan itu harus dilakukan!
(PS Saya baru saja mengetahui hal ini dan ingin berbagi dengan noobs lain. Tolong beri tahu saya jika ada cara yang lebih baik.)
sumber
Jika Anda tahu sebelumnya bahwa Anda perlu mengedit file sebagai root, menggunakan perintah
sudoedit <file>
atausudo -e <file>
akan membuat Anda mengatur dalam lingkungan khusus untuk melakukannya dengan preferensi editor yang biasa Anda lakukan. Salinan file dibuat dan editor Anda diluncurkan untuk mengeditnya (sebagai pengguna Anda). Ketika Anda keluar file disalin kembali ke lokasi aslinya sebagai root.Itu adalah cara yang paling aman dan direkomendasikan, tetapi jika a) Anda tidak menyadari sebelumnya, Anda perlu menulis sebagai root atau b) ingin mengedit dan menyimpan perubahan tambahan di tempat, Anda akan membutuhkan sesuatu yang lain. Untuk tujuan ini solusi menggunakan yang
sudo tee
diusulkan oleh smpl sudah pasti di jalur yang benar, tetapi ada beberapa perbaikan kecil yang dapat dilakukan untuk menangani kasus tepi. Khususnya perbedaan dalam menangani prompt kata sandi sudo dalam antarmuka GUI vs konsol patut mendapat perhatian.Cara yang lebih mudah untuk mengatur ini adalah dengan menggunakan plugin vim-kasim . Ini memiliki masalah khusus ini dan beberapa hal berguna lainnya digulung menjadi paket praktis. Penggunaannya sesederhana menelepon
:SudoWrite
. Saya bahkan menggunakan pemetaan akses yang sedikit lebih sederhana:Itu seharusnya memberi Anda kemampuan untuk menulis file apa pun sebagai root menggunakan
:w!!
.sumber
Opsi lain adalah menjalankan
sudo -E vim somefile.conf
untuk mengedit, yang akan melestarikan lingkungan Anda, maka Anda.vimrc
dan plugin akan digunakan.sumber