ในขณะที่ใช้โปรแกรมแก้ไข Vim มันจะสร้างไฟล์ชั่วคราวที่เรียกว่าไฟล์สลับโดยอัตโนมัติ ไฟล์เหล่านี้จะเก็บข้อมูลที่ไม่ได้บันทึกไว้และกู้คืนในกรณีที่แอปขัดข้อง หากคุณบันทึกและปิดไฟล์อย่างถูกต้อง ไฟล์สลับจะถูกลบโดยอัตโนมัติ
ไฟล์สว็อปมีความสำคัญแต่อาจกลายเป็นปัญหาได้หากมันกองรวมกัน โดยมักจะยังคงบันทึกไว้แม้ว่าคุณจะลบไฟล์ต้นฉบับไปแล้วก็ตาม ไฟล์เหล่านี้ค่อนข้างหายาก จึงไม่ปรากฏในไดเร็กทอรีอย่างชัดเจนเนื่องจากถูกซ่อนไว้ หากต้องการลบไฟล์เหล่านี้ คุณต้องค้นหาไฟล์เหล่านั้นก่อน ในบทช่วยสอนนี้ ฉันจะสำรวจวิธีการค้นหาไฟล์ swap ที่ซ่อนอยู่และวิธีการต่างๆ ในการลบไฟล์เหล่านี้
- ค้นหาไฟล์ Vim Swap
- การลบไฟล์ Vim Swap
- กำจัดคำเตือนไฟล์ Vim Swap
- ปิดการใช้งานการสร้างไฟล์ Vim Swap อย่างถาวร
- สร้างไดเร็กทอรีแยกต่างหากเพื่อจัดเก็บไฟล์ Vim Swap
- เปลี่ยนการตั้งค่าการอัปเดตไฟล์ Vim Swap
- บทสรุป
บันทึก: สำหรับคู่มือนี้ ฉันใช้ macOS (Unix) คำสั่งจะคล้ายกันสำหรับการกระจาย Linux เช่นกัน อย่างไรก็ตาม คำแนะนำอาจแตกต่างกันสำหรับ Windows
ค้นหาไฟล์ Vim Swap
ตามที่กล่าวไว้ก่อนหน้านี้ ไฟล์สลับจะถูกซ่อนไว้และอาจมองไม่เห็นเมื่อคุณเปิดไดเร็กทอรีการทำงานปัจจุบัน ในระบบปฏิบัติการที่คล้ายกับ Linux และ Unix ไฟล์สลับ Vim จะถูกบันทึกด้วยจุด (.) นำหน้า
หากต้องการเข้าถึงไฟล์สลับ Vim ให้ใช้ไฟล์ LS สั่งการด้วย -ก ตั้งค่าสถานะเพื่อแสดงรายการไฟล์ที่ซ่อนอยู่
LS - - ก
ชื่อไฟล์ที่ซ่อนอยู่ในระบบปฏิบัติการแบบ Unix จะเริ่มต้นด้วยจุด (.)
หากต้องการแสดงรายการไฟล์สลับทั้งหมดในไดเร็กทอรีปัจจุบัน ให้ใช้ไฟล์ เพราะ สั่งการด้วย -ร ธง.
เพราะ - - ร
หากต้องการค้นหาชื่อไฟล์สลับของไฟล์ที่เปิดอยู่ในปัจจุบัน ให้ใช้ไฟล์ :สลับชื่อ คำสั่งในตัวแก้ไข Vim:
: : สลับชื่อ
โปรดทราบว่าการลบไฟล์สลับอาจทำให้คุณสูญเสียการเปลี่ยนแปลงที่ยังไม่ได้บันทึก ดังนั้นอย่าลืมบันทึกงานของคุณก่อนที่จะพยายามลบกระบวนการไฟล์สลับ Vim
การลบไฟล์ Vim Swap
ตอนนี้คุณรู้แล้วว่าไฟล์สว็อปอยู่ที่ไหน ก็สามารถลบมันได้อย่างง่ายดาย มีหลายวิธีในการลบไฟล์สลับ:
1. หากต้องการลบไฟล์สลับ Vim ให้นำทางไปยังไดเร็กทอรีที่มีไฟล์อยู่ ไฟล์สลับ Vim มี .swp ส่วนขยายและโดยทั่วไปจะมีชื่อตามรูปแบบ .<ชื่อไฟล์>.swp ตรงกับไฟล์ที่แก้ไข ชื่อไฟล์ . ใช้ RM คำสั่งที่มีชื่อไฟล์หรือหลายชื่อไฟล์คั่นด้วยช่องว่างเพื่อลบไฟล์เหล่านี้
RM .< ชื่อไฟล์ >. สวป
โดยทั่วไปแล้ว ไฟล์สลับ Vim จะถูกสร้างขึ้นและจัดเก็บไว้ในไดเร็กทอรีการทำงาน อย่างไรก็ตาม ก็ไม่ได้เป็นเช่นนั้นเสมอไป และคุณสามารถสร้างมันขึ้นมาในไดเร็กทอรีเฉพาะได้เช่นกัน วิธีการนี้กำหนดให้คุณต้องอยู่ในไดเร็กทอรีที่มีไฟล์สลับอยู่
คุณสามารถสร้างไดเร็กทอรีแยกต่างหากสำหรับไฟล์สลับได้ โปรดอ่านส่วนต่อไปนี้ของคู่มือนี้
โปรดทราบว่าคำสั่งนี้จะลบไฟล์อย่างถาวร ดังนั้นควรตรวจสอบไฟล์อย่างละเอียดก่อนที่จะลบ
2. เปิดไฟล์ในตัวแก้ไข Vim แล้วกด ร เพื่อกู้คืนมัน หากไฟล์ไม่เสียหาย ให้บันทึกโดยใช้นามสกุลไฟล์ :ใน คำสั่งในโหมดปกติ
ตอนนี้ใช้ :มันคือ (เปิดใหม่) คำสั่งเพื่อลบไฟล์สลับ พิมพ์คำสั่งในโหมด NORMAL แล้วกด เข้า .
: : มันคือ
คุณจะได้รับข้อความแจ้งที่ด้านล่างของหน้าต่าง กด ง เพื่อล้างไฟล์สลับ
การลบไฟล์สลับด้วยวิธีนี้มีข้อดี เนื่องจากจะไม่เขียนทับไฟล์ต้นฉบับในกรณีที่การกู้คืนเสียหาย
3. พิมพ์ เพราะ สั่งการด้วย -ร ธงและชื่อไฟล์ รายการไฟล์การกู้คืนที่เกี่ยวข้องจะปรากฏขึ้น
เพราะ - - ร < ชื่อไฟล์ >
คุณจะได้รับตัวเลือกในการกู้คืนไฟล์ พิมพ์ตัวเลขจากตัวเลือกที่กำหนด
คุณอาจได้รับคำเตือนต่อไปนี้ ซึ่งอาจแตกต่างกันไปขึ้นอยู่กับสถานการณ์ กด Enter เพื่อเปิดไฟล์และแก้ไขต่อ
ตรวจสอบไฟล์ หากไฟล์ถูกแก้ไข ให้บันทึกและลบไฟล์สลับโดยใช้ไฟล์ :มันคือ สั่งการ.
: : มันคือ4. คุณยังสามารถใช้ หา คำสั่งเพื่อค้นหาและลบไฟล์สลับ เปิดไดเร็กทอรีที่มีไฟล์ swap และใช้คำสั่งด้านล่าง:
หา - - พิมพ์ ฉ - - ชื่อ '*.sw[pnl]' - - ลบที่ ฉ ระบุประเภทไฟล์ปกติ * เป็นไวด์การ์ดที่ใช้ระบุชื่อไฟล์ทั้งหมดด้วย .sw[พีเอ็นแอล] ส่วนขยายและ -ลบ ตัวเลือกกำลังลบพวกเขา
Vim สร้างไฟล์สลับประเภทต่างๆ เช่น เสียงรบกวน , จำนวน , สว , สวอล , สว , และ สวป . หากต้องการลบไฟล์ทั้งหมดคุณสามารถใช้คำสั่งด้านบนโดยเพิ่มอักขระในคำสั่งเช่นนั้น .sw[nmolkp] .
อย่างไรก็ตาม ข้อเสียเปรียบของคำสั่งนี้คือการค้นหาไฟล์แบบวนซ้ำจากไดเร็กทอรีและไดเร็กทอรีย่อยทั้งหมด คุณควรใช้คำสั่งนี้ถ้าคุณมีไดเร็กทอรีแยกต่างหากสำหรับไฟล์สลับ
กำจัดคำเตือนไฟล์ Vim Swap
คุณอาจได้รับคำเตือนไฟล์สลับขณะเปิดไฟล์ในตัวแก้ไข Vim ด้วยเหตุผลหลายประการ
สาเหตุที่ทำให้เกิดคำเตือนไฟล์สลับ Vim มีดังต่อไปนี้:
- ขณะนี้ไฟล์เปิดอยู่ในเซสชันอื่น
- ไฟล์ได้รับการแก้ไขจากระยะไกล และการเชื่อมต่อขาดหาย
- เทอร์มินัลถูกปิดโดยไม่บันทึกไฟล์
- กระบวนการถูกส่งไปยังพื้นหลังโดยใช้ Ctrl+z
หากไฟล์ถูกเปิดในเซสชันอื่น คุณจะได้รับคำเตือนต่อไปนี้:
อย่างที่คุณเห็น กระบวนการนี้ยังคงทำงานอยู่ในเซสชันอื่น ลองดำเนินการดู ล้มเลิก หนึ่งเซสชั่น เนื่องจากเซสชันยังคงทำงานอยู่ จึงไม่มีตัวเลือกการลบสำหรับไฟล์ Swap
หรือคุณสามารถรับคำเตือนเกี่ยวกับไฟล์ที่คุณได้แก้ไขแต่ไม่สามารถบันทึกได้อย่างถูกต้อง
ในสถานการณ์เช่นนี้ให้กด ร ในการกู้คืนไฟล์ คุณอาจได้รับไฟล์สลับเวอร์ชันที่แตกต่างกัน โดยเลือกเวอร์ชันล่าสุด (หรือเก่ากว่าตามที่ต้องการ) แล้วเปิดขึ้นมา
ตอนนี้พิมพ์ :มันคือ สั่งแล้วเลือก ง เพื่อลบไฟล์สลับ
ปิดการใช้งานการสร้างไฟล์ Vim Swap อย่างถาวร
ไม่แนะนำให้ปิดการใช้งานการสร้างไฟล์สลับสำหรับ Vim เนื่องจากมีประโยชน์ในการกู้คืนข้อมูลในกรณีที่เกิดอุบัติเหตุ แต่ถ้าคุณต้องการกำจัดไฟล์เหล่านี้จริงๆ เพื่อรักษาระบบที่สะอาดขึ้น คุณสามารถทำได้โดยเพิ่มไฟล์ ตั้งค่า noswapfile ไปที่ vimrc ไฟล์.
ชุด noswapfileสร้างไดเร็กทอรีแยกต่างหากเพื่อจัดเก็บไฟล์ Vim Swap
ก่อนอื่นคุณควรสร้างไดเร็กทอรีที่จะสร้างและบันทึกไฟล์สลับ Vim ทั้งหมด
mkdir - - พี ~/. เพราะ / vimswapfilesสร้างไดเร็กทอรีเพื่อเก็บข้อมูลสำรองและเลิกทำประวัติ
mkdir - - พี ~/. เพราะ / vimbackupfilesmkdir - - พี ~/. เพราะ / vimundofiles
ตอนนี้ให้ตั้งค่าไดเร็กทอรีที่สร้างขึ้นเป็นตำแหน่งไฟล์สว็อปโดยใช้คำสั่ง set
ชุด ไดเรกทอรี = ~/. เพราะ / vimswapfiles //ชุด สำรองข้อมูล = ~/. เพราะ / vimbackupfiles //
ชุด ยูไนเต็ดแลนด์= ~/. เพราะ / vimundofiles //
เครื่องหมายทับคู่ (//) จะถูกเพิ่มที่ส่วนท้ายของเส้นทางเพื่อหลีกเลี่ยงการชนกันของชื่อ เนื่องจากเครื่องหมายทับคู่จะสร้างการสลับหรือการสำรองข้อมูลโดยใช้เส้นทางทั้งหมด
เปลี่ยนการตั้งค่าการอัปเดตไฟล์ Vim Swap
การสลับจะอัปเดตทุกๆ สี่วินาทีเมื่อไม่มีกิจกรรมการพิมพ์ หากคุณกำลังพิมพ์ ไฟล์สลับจะอัปเดตหลังจาก 200 อักขระ
สาเหตุที่ไฟล์ swap ไม่ได้รับการอัพเดตทุกวินาทีก็เพราะอาจทำให้งานปกติที่คุณกำลังทำใน Vim ช้าลง อย่างไรก็ตามคุณสามารถทำได้ ชุด เวลาและการนับตัวอักษรโดยการเปลี่ยน อัพเดตจำนวน และ เวลาอัปเดต ใน vimrc ไฟล์.
บทสรุป
ไฟล์สลับเป็นไฟล์ที่สร้างขึ้นอัตโนมัติซึ่งติดตามการแก้ไขที่เราทำขณะแก้ไขไฟล์ใน Vim และอัปเดตทุกๆ 200 อักขระ เมื่อไฟล์ได้รับการบันทึกและปิดอย่างถูกต้อง ไฟล์สลับจะถูกลบโดยอัตโนมัติ
หากต้องการลบไฟล์สลับที่ไม่ต้องการ ให้กู้คืนก่อนและตรวจดูให้แน่ใจว่าไฟล์ไม่เสียหาย Vim แสดงให้เห็น ??? เส้นที่หายไป หากไฟล์เสียหาย หากทุกอย่างในไฟล์เรียบร้อยดี ให้ลบไฟล์สลับโดยใช้นามสกุลไฟล์ :มันคือ คำสั่งและเลือกตัวเลือกการลบ