อย่าแตะไฟล์ขณะเขียนหากไฟล์นั้นไม่เปลี่ยนแปลง


15

บางครั้งฉันก็หยุดพิมพ์:wเมื่อฉันอ่านอะไรบางอย่าง สิ่งนี้ทำให้เวลาในการแก้ไขของไฟล์เปลี่ยนแปลงและบางครั้งทำให้ระบบการสร้างของฉันต้องสร้างกลุ่มของโครงการโดยไม่จำเป็น

มีวิธีการตั้งค่ากลุ่มให้เป็นเพียงแค่ไม่ทำอะไรเลยถ้าฉันพยายามเขียนไฟล์และมันไม่มีการเปลี่ยนแปลง?

คำตอบ:


15

ขยายคำตอบของ @ lcd047 ที่คุณสามารถใช้cabbrevเพื่อแก้ไขw

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

เมื่อคุณพิมพ์:wคุณจะสังเกตเห็นว่ามันจะถูกแทนที่ด้วย:upเมื่อคุณกด Return


14

ไม่ได้โดยตรง (นั่นคือลักษณะการทำงานของ:wไม่สามารถเปลี่ยนแปลงได้) แต่คุณสามารถเรียนรู้ที่จะใช้แทน:up :wมันทำสิ่งที่คุณต้องการ


3
เพียงแค่ให้ฉันเพิ่ม: ฉันใช้คีย์แมปที่ชื่นชอบสำหรับการบันทึกและฉันได้ผูกไว้กับมัน:updateแทนที่จะ:writeได้รับความต้องการของโปสเตอร์ต้นฉบับ
Giovanni Maggiorani
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.