Terkadang saya mulai mengedit file konfigurasi di /etc
menggunakan Vim, tetapi lupa menggunakan sudo
untuk memulai Vim. Hasil yang tak terhindarkan 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 dapat menyimpan ke lokasi tempat saya dapat menulis dan menyalinnya sebagai root, tetapi itu juga agak mengganggu.
Tapi saya yakin ada cara yang lebih mudah untuk menjadi root atau menggunakan sudo
dari dalam Vim, tanpa harus membuang perubahan. Jika metode ini tidak bergantung pada sudo
sedang disiapkan untuk pengguna yang akan menjadi lebih baik.
Jawaban yang Diterima:
sudo tidak dapat mengubah pengguna efektif dari proses yang ada, itu selalu membuat proses baru yang memiliki hak istimewa yang lebih tinggi dan shell asli tidak terpengaruh. Ini adalah dasar dari desain UNIX. Saya paling sering hanya menyimpan file ke /tmp sebagai solusi. Jika Anda benar-benar ingin menyimpannya secara langsung, Anda dapat mencoba menggunakan fitur Vim yang dapat menyalurkan file ke proses lain. Coba simpan dengan perintah ini:
:w !sudo dd of=%
Diuji dan berfungsi. Vim kemudian akan meminta Anda untuk memuat ulang file, tetapi itu tidak perlu:Anda cukup menekan o untuk menghindari memuat ulang dan kehilangan riwayat pembatalan Anda. Anda bahkan dapat menyimpan ini ke perintah/fungsi Vim atau bahkan mengikatnya ke kunci untuk akses mudah, tetapi saya akan menyerahkannya sebagai latihan kepada pembaca.