ฉันจะตั้งค่ากลุ่มให้ไม่รักษาไฟล์. swp ได้หรือไม่เมื่อไม่มีการแก้ไขที่ยังไม่ได้บันทึก?


0

ฉันเรียกใช้กลุ่มภายในscreenเซสชัน เมื่อเซสชั่นนั้นสิ้นสุดลงมันจะฆ่าโพรเซสที่ทำงานอยู่ภายในโพรเซสทำให้ Vim ทิ้ง.swpไฟล์ไว้ นี่เป็นสิ่งที่ดีถ้า.swpไฟล์มีข้อมูลที่ช่วยให้ฉันสามารถกู้คืนการแก้ไขที่ไม่ได้บันทึก แต่ในกรณีส่วนใหญ่ฉันออกจากscreenทุกสิ่งในสถานะที่บันทึกไว้ที่สะอาด ( :wa) สิ่งนี้ทำให้.swpไฟล์เกิดความรำคาญเนื่องจากไม่มีข้อมูลที่เป็นประโยชน์ แต่ยังคงทำให้เกิดการกู้คืนเมื่อเปิดขึ้นมาใหม่

ฉันจะให้ Vim ดูแล.swpไฟล์ได้เฉพาะเมื่อมีการเปลี่ยนแปลงที่ยังไม่ได้ทำการบันทึกหรือไม่?

คำตอบ:


1

สลับไฟล์

คำตอบสั้น ๆ คือไม่มี ด้วย Vim ไฟล์ swap จะถูกเปิดตลอดเวลาในขณะที่บัฟเฟอร์กำลังถูกแก้ไข มันอาจช้าแก้ไขมากเกินไปที่จะเปิดไฟล์ swap และปิดมันทุกครั้งที่มีการเปลี่ยนแปลง (ไฟล์ swap ถูกอัพเดตหลังจากพิมพ์ 200 ตัวอักษรหรือเมื่อคุณไม่ได้พิมพ์อะไรเลยเป็นเวลาสี่วินาที)

หากคุณไม่ต้องการให้ใช้ไฟล์ swap สำหรับบัฟเฟอร์หรือบัฟเฟอร์บางตัวคุณสามารถยกเลิกการตั้งค่าswapfileตัวเลือกชั่วคราว:

set noswapfile

ในการเปิดบัฟเฟอร์ใหม่โดยไม่ใช้ไฟล์สลับคุณสามารถใช้โมดิ:noswapfileฟายเออร์เช่น

:noswapfile edit ~/.bashrc

การประชุม

จากกรณีการใช้งานของคุณดูเหมือนว่าคุณจะได้รับประโยชน์จากเซสชัน Vim เมื่อคุณแก้ไขเสร็จแล้วให้เรียกใช้mksessionเพื่อบันทึกเซสชันของคุณในไฟล์สคริปต์ Vim ที่เรียกว่าSession.vimในไดเรกทอรีปัจจุบัน จากนั้นพิมพ์xaเพื่อเขียนและออกจากไฟล์ทั้งหมด ครั้งต่อไปที่คุณเรียกใช้ Vim ให้เริ่มในไดเรกทอรีการทำงานเดียวกันโดยใช้

vim -S Session.vim

อีกทางเลือกหนึ่งถ้าคุณเริ่มต้นเป็นกลุ่มคุณสามารถแหล่งสคริปต์เซสชันด้วย

:source Session.vim

ดูhelp Sessionข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติที่มีประโยชน์นี้

BTW เกี่ยวกับหน้าจอฉันคิดว่าคุณจะปิดเซสชันหน้าจอ (แทนที่จะถอดออก) เนื่องจากคอมพิวเตอร์กำลังปิดหรือรีสตาร์ท


ขอบคุณ. ฉันใช้เซสชันเป็นกลุ่มและเวิร์กโฟลว์สิ้นสุดเซสชันของฉันคือ (1) สลับไปที่แท็บหน้าจอที่มีกลุ่มเรียกใช้อยู่ในนั้น (2) :xa, (3) ปิดหน้าต่างเทอร์มินัลที่มีหน้าจออยู่ (ใช่นี่อยู่บน เครื่องพัฒนาเดสก์ทอปและฉันปิดหน้าจอเมื่อปิดเครื่อง) ฉันหวังว่าจะได้คำตอบที่อนุญาตให้ฉันข้าม (1) และ (2)
jl6

@ jl6 เวิร์กโฟลว์ของฉันคล้ายกับของคุณนอกเหนือจากความจริงที่ว่าฉันมักจะใช้ GVim เพื่อแก้ไขไฟล์ในตัวเครื่องแทนที่จะเป็นกลุ่มในเทอร์มินัล ฉันไม่พบว่ามันหนักเกินไปที่จะบันทึกเซสชันเป็นกลุ่มก่อนที่จะปิดมันอย่างชัดเจน
Anthony Geoghegan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.