: 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?


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


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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.