Saya membuka file dalam mode readonly; apakah ada cara untuk keluar dari mode readonly?
w
setiap kali saya ingin menyimpan. heh
Saya membuka file dalam mode readonly; apakah ada cara untuk keluar dari mode readonly?
w
setiap kali saya ingin menyimpan. heh
Jawaban:
Anda bisa melakukan ini:
:set noro
Itu menghapus tanda baca-saja, tetapi jika file yang mendasarinya masih belum dapat ditulis oleh Anda maka vim masih tidak dapat menulisnya.
:set ro
.
view
tetapi kemudian memutuskan untuk mengeditnya.
Anda dapat lari chmod
dari dalam vim:
:!chmod +w %
!
berarti menjalankan perintah shell, dan %
merupakan nama file saat ini. Anda juga bisa memaksa file menulis:
:w!
Selain jawaban Michael Mrozek , Anda dapat menambahkan baris ke Anda .vimrc
yang memungkinkan Anda menulis ke file yang telah Anda abaikan untuk dibuka dengan izin yang lebih tinggi:
" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null
Jika file hanya dibaca, Anda hanya perlu memasukkan :w!! , Anda akan diminta kata sandi dan kemudian file akan berhasil ditulis.
Sementara :set noro
melakukan pekerjaan, itu tidak memeriksa apakah file dibuka oleh contoh vim lain atau memperbarui file jika diubah secara eksternal.
Untuk membuatnya dapat diedit dan memeriksa file swap (yang merupakan default membuka file dengan vim) cukup gunakan perintah edit (: bantu edit):
:e
Catatan, jika file telah dimanipulasi sejak itu (bahkan di luar vim), itu akan memperbarui perubahan dalam buffer saat ini (yang menurut saya biasanya diinginkan).
Ini dia, walaupun agak terlambat, mungkin Anda sudah menyelesaikan keraguan Anda;) Saya belum melihat di komentar seperti yang saya tahu dengan vim , jadi, saya tambahkan:
Setelah mengedit file, Anda menekan :w
atau :wq
, dan Anda melihat pesan yang mengganggu " E45 'readonly' option is set (add! To override) "
Anda bisa mengetik
:w !sudo tee %
w
menulis buffer, !sudo
memanggil shell dengan sudo, tee
mengarahkan ulang output dari vim :w
ke output dengan tee, dan%
adalah nama file saat iniDan itu harus melakukan trik. Perhatikan bahwa ini akan meminta untuk memuat ulang file dalam vim, untuk apa yang Anda harus tekan L
!
kew
perintah akan melakukan trik, seperti Michael menyatakan.