: wq di Vim tidak menyimpan

8

Saya mencoba menggunakan :wquntuk menyimpan file teks yang telah saya edit di Vim, tetapi ketika saya masuk :wqsaya mendapatkan kesalahan

E45: 'readonly' option is set (add ! to override)`  

Ketika saya menambahkan !untuk :wqsuka :wq!, saya mendapatkan ini:

"/etc/dhcp/dhcpd.conf"

"/etc/dhcp/dhcpd.conf" E212: Can't open file for writing

File yang ingin saya edit ada dhcpddi /etc/dhcpdjalur.

Bagaimana saya bisa melakukan ini?

Mohammad Reza Rezwani
sumber
Lebih suka :xatau ZZkeluar dan menyimpan. Itu akan menulis hanya pada perubahan.
Hauleth

Jawaban:

14

Anda perlu membuka file menggunakan izin pengguna super sebagai berikut:

sudo vi /etc/dhcp/dhcpd.conf

mengedit file dengan menekan idan kemudian simpan dan keluar dengan menekan Escdan kemudian :wqatau :xatau hanya :wuntuk menyimpan.


Terima kasih kepada Riking untuk menyarankan sudoedit: Anda dapat menggunakan sudoedit /path/to/file/filenameuntuk mengedit file yang dimiliki oleh root daripada menggunakan sudo <editor> /pat/to/file/filename. Ini berguna untuk mesin tingkat perusahaan atau mesin produksi sejak sudoedit log ke /var/log/auth.log.

Jika Anda ingin mengubah editor default untuk sudoedit, lakukan hal berikut:

sudo update-alternatives --config editor

dan kemudian tekan Returndan pilih editor pilihan Anda dan tekan lagi Return.


Lihat juga: Diskusi tentang redit tentang mengapa sudoedit mungkin menguntungkan

pekerjaan
sumber
3
Saya lebih suka sudoedituntuk situasi ini - ini membuat salinan sementara, menjalankan editor, dan menyalin hasilnya. Jika sebelumnya Anda memilih nanountuk perintah itu, jalankan EDITOR=vi sudoedit /etc/file.
Bersepeda
1
@Riking: Terima kasih sudoedit, bahkan tidak tahu itu ada. Namun, temui ini saat googling sudoedit. Saya akan menyarankannya, tetapi serahkan kepada pengguna jika mereka merasa perlu menggunakannya.
Pekerjaan
sudoeditjuga mengambil pada EDITORvariabel, lebih mudah untuk mengatur itu daripada mengkonfigurasi alternatif
muru
9

/etcterdiri dari semua file konfigurasi sehingga untuk mengedit file di bawah /etcAnda memerlukan izin pengguna super tetapi kadang-kadang kami lupa untuk menggunakannya sudo. tetapi pada saat itu kita juga bisa menggunakan

:w !sudo tee %

lalu masukkan kata sandi administrator Anda

:q!

untuk keluar dengan sukses

Aditya Jangid
sumber
1
Anda dapat menambahkan cmap w!! w !sudo tee > /dev/null %ke Anda .vimrcuntuk memungkinkan menyimpan melalui metode ini dengan :w!!. Jika Anda tertarik mengapa metode ini berfungsi, lihat stackoverflow.com/questions/2600783/…
Gerhard Burger