Apa batasan dalam mode readonly yang mengganggu Anda? Jika hanya saja Anda ingin menulis file, meskipun Anda opend itu hanya membaca, kemudian menambahkan !ke wperintah akan melakukan trik, seperti Michael menyatakan.
Bananguin
1
@ user1129682 hanya ketidaknyamanan mengingat untuk meletakkan tanda seru setelah wsetiap kali saya ingin menyimpan. heh
wrongusername
Jawaban:
44
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.
Selain jawaban Michael Mrozek , Anda dapat menambahkan baris ke Anda .vimrcyang 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 :watau :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 ini
Dan 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.w
setiap kali saya ingin menyimpan. hehJawaban:
Anda bisa melakukan ini:
Itu menghapus tanda baca-saja, tetapi jika file yang mendasarinya masih belum dapat ditulis oleh Anda maka vim masih tidak dapat menulisnya.
sumber
:set ro
.view
tetapi kemudian memutuskan untuk mengeditnya.Anda dapat lari
chmod
dari dalam vim:!
berarti menjalankan perintah shell, dan%
merupakan nama file saat ini. Anda juga bisa memaksa file menulis:sumber
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:Jika file hanya dibaca, Anda hanya perlu memasukkan :w!! , Anda akan diminta kata sandi dan kemudian file akan berhasil ditulis.
sumber
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):
Catatan, jika file telah dimanipulasi sejak itu (bahkan di luar vim), itu akan memperbarui perubahan dalam buffer saat ini (yang menurut saya biasanya diinginkan).
sumber
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
menulis buffer,!sudo
memanggil shell dengan sudo,tee
mengarahkan ulang output darivim :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
sumber