Jangan menyentuh file saat menulis jika file tidak diubah

15

Kadang-kadang saya tanpa sadar mengetik :wketika saya sedang membaca sesuatu. Ini menyebabkan waktu modifikasi file berubah dan kadang-kadang menyebabkan sistem build saya tidak perlu membangun kembali sejumlah besar proyek.

Apakah ada cara untuk mengatur vim agar tidak melakukan apa-apa jika saya mencoba menulis file dan itu belum diubah?

Praxeolitic
sumber

Jawaban:

15

Memperluas jawaban lcd047 yang dapat Anda gunakan cabbrevuntuk memodifikasiw

:cabbrev w <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'up' : 'w')<CR>

Saat Anda mengetik, :wAnda akan melihat bahwa itu akan diganti dengan :upketika Anda menekan kembali.

jecxjo
sumber
14

Tidak secara langsung (yaitu, perilaku :wtidak dapat diubah), tetapi Anda dapat belajar untuk menggunakan :upbukan :w. Itu tepat seperti yang Anda inginkan.

lcd047
sumber
3
Izinkan saya menambahkan: Saya menggunakan papan tombol favorit untuk menyimpan, dan saya terikat untuk itu :updatedaripada :writemendapatkan persyaratan Poster Asli.
Giovanni Maggiorani