Terkadang saya mulai mengedit file konfigurasi /etc
menggunakan Vim, tetapi lupa untuk menggunakan sudo
untuk memulai Vim. Hasil yang tidak dapat dihindari kemudian adalah bahwa setelah menyelesaikan pengeditan saya, saya menemukan pemberitahuan yang menakutkan bahwa saya tidak memiliki izin untuk menyimpan file.
Sebagian besar pengeditan cukup kecil sehingga saya hanya keluar dari Vim dan melakukan semuanya lagi sebagai root. Tentu saja saya bisa menyimpan ke lokasi yang bisa saya tulis dan menyalinnya sebagai root, tetapi itu juga agak menjengkelkan.
Tapi saya yakin ada cara yang lebih mudah untuk menjadi root atau digunakan sudo
dari dalam Vim, tanpa harus membuang perubahan. Jika metode ini tidak akan bergantung pada sudo
pengaturan untuk pengguna, itu akan menjadi lebih baik.
sudoedit
alih-alihvim
untuk semua pengeditan admin. Ini salah satu cara untuk tidak pernah mengalami masalah ini lagi :). +1 untuk jawaban Gilles .Jawaban:
sudo tidak dapat mengubah pengguna efektif dari proses yang ada, itu selalu membuat proses baru yang memiliki hak tinggi dan shell asli tidak terpengaruh. Ini adalah dasar dari desain UNIX. Saya paling sering hanya menyimpan file ke / tmp sebagai solusinya. Jika Anda benar-benar ingin menyimpannya secara langsung, Anda dapat mencoba menggunakan fitur Vim di mana ia dapat mengirim file ke proses lain. Coba simpan dengan perintah ini:
Diuji dan bekerja. Vim kemudian akan meminta Anda untuk memuat ulang file, tetapi itu tidak perlu: Anda bisa menekan ountuk menghindari memuat ulang dan kehilangan riwayat undo Anda. Anda bahkan dapat menyimpan ini ke perintah / fungsi Vim atau bahkan mengikatnya ke tombol untuk akses mudah, tetapi saya akan meninggalkan itu sebagai latihan untuk pembaca.
sumber
%
, yang dalam vim akan menjadi jalur file yang sedang Anda edit.%
tanda kutip dalam jika nama file mengandung spasi.'modified'
pengaturan; Anda dapat melakukannya secara manual denganset nomodified
.exec 'w !sudo dd of=' . shellescape(expand('%'))
jika nama file mengandung tanda kutip, garis miring terbalik, tanda dolar, dll.Menyimpan file sebagai root:
sumber
Panggil
sudoedit
untuk mengedit file sebagai root.Pikirkan ketidaknyamanan saat menelepon
vim
langsung sebagai peringatan bahwa Anda terlalu santai dalam melakukan sesuatu yang berpotensi berbahaya.sumber
Anda dapat menempatkan ini di
.vimrc
Anda memicu dengan melakukan
:w!!
- itu akan mendorong file melaluisudo tee
nama file saat ini (%
).Dari https://stackoverflow.com/questions/95072/what-are-your-favorite-vim-tricks
sumber
!sudo sponge %
saja.Ini juga berfungsi dengan baik:
Ini terinspirasi oleh komentar @Nathan Long dalam jawaban ini .
PEMBERITAHUAN :
"
harus digunakan alih-alih'
karena kami ingin%
diperluas sebelum meneruskan ke shell.sumber