ไฟล์. un ~ คืออะไรหรือเหตุใด Vim ใน Terminal จึงสร้างไฟล์. un ~


96

ฉันสังเกตเห็นว่าฉันมี dotfiles ที่ลงท้ายด้วย.un~เช่นฉันมี a .vividchalk.vim.un~แต่ฉันไม่แน่ใจว่ามันมาจากไหน ดูเหมือนว่าจะสร้างขึ้นเมื่อฉันใช้ Vim ใน Terminal ไฟล์เหล่านี้คืออะไร? สามารถให้พวกเขาลบเองเมื่อฉันปิดไฟล์ที่กำลังแก้ไขได้หรือไม่?

คำตอบ:


139

เมื่อคุณแก้ไขและบันทึกไฟล์ Vim จะสร้างไฟล์ที่มีชื่อเดียวกับไฟล์ต้นฉบับและun~นามสกุลที่ส่วนท้าย

Vim 7.3 มีคุณลักษณะใหม่ที่เลิกทำอย่างต่อเนื่องนั่นคือข้อมูลการเลิกทำจะไม่สูญหายเมื่อออกจาก Vim และเก็บไว้ในไฟล์ที่ลงท้ายด้วย.un~. คุณได้ตั้งค่าundofileตัวเลือกดังนั้นกลุ่มจึงสร้างไฟล์เลิกทำเมื่อบันทึกไฟล์ต้นฉบับ คุณสามารถหยุด Vim จากการสร้างไฟล์สำรองได้โดยการล้างตัวเลือก:

:set noundofile

โปรดทราบว่าโดยค่าเริ่มต้นตัวเลือกนี้จะปิดอยู่ คุณได้เปิดใช้งานไฟล์undofileตัวเลือกในไฟล์การเตรียมใช้งานไฟล์ใดไฟล์หนึ่ง หากคุณต้องการให้ไฟล์ที่ไม่ได้จัดเก็บไว้เฉพาะในไดเร็กทอรีเฉพาะคุณสามารถชี้ไฟล์undodirตัวเลือกไปยังไดเร็กทอรีที่จะมีไฟล์ที่ไม่ได้รวบรวมทั้งหมดของคุณ

ที่มา: http://vimhelp.appspot.com/vim_faq.txt.html#faq-7.2


4
ขอบคุณ! ฉันเพิ่งเริ่มใช้ Vim และพยายามทำความเข้าใจและกำหนดค่าโดยไม่ต้องมีการขนส่งสินค้า ฉันเห็นแล้วว่าการตั้งค่านั้นมาจากvim-sensibleไหน การอ่าน ReadMe บนvim-sensibleมีประโยชน์มาก และฉันได้เรียนรู้ (จาก peepcode screencast) ว่าฉันทำได้:verbose set undofile?และฉันจะดูว่าตัวเลือกนั้นถูกตั้งค่าไว้ที่ใด ฉันคิดว่าฉันมีสิทธิ์นั้น
kaplan

1
ฉันมี Vim 7.3 และการเลิกทำแบบถาวรไม่ได้ผลสำหรับฉัน (ฉันจำเป็นต้องได้set undofileรับการยกเลิกอย่างต่อเนื่อง) การตั้งค่าอื่น ๆ รบกวนคุณลักษณะใหม่nobackupหรือnoswapfileไม่
Dennis

ฉันคิดว่าครีมที่ไม่ใช่ครีม - เป็นกลุ่มติดตั้งยังตั้งค่านี้โดยค่าเริ่มต้น
Josiah Yoder

1
โอ้มนุษย์ !! ตอนนี้ฉันต้องจำไว้: set nobackup set noswapfile set noundofileในทุก ๆ _vimrc ถ้าฉันไม่ต้องการแทร็กลูกสุนัข ?? !! คุณคิดว่าหนึ่งในนั้นอาจผิดนัดปิดหรือบางอย่าง ...
ebyrob

12
ดูเหมือนว่า vim 8 (อย่างน้อย 8.0.427) เปิดใช้งานคุณลักษณะนี้โดยค่าเริ่มต้น YMMV แน่นอน ...
Chuck Wolber

3

ใช้เวลาสักพักเพื่อหาตำแหน่งที่จะวาง:set noundofileคำสั่ง ฉันเป็นคนใหม่และฉันจะตอบกลับว่าฉันทำให้มันไม่สำรองข้อมูลอย่างไร

  1. เปิดกลุ่ม
  2. พิมพ์โหมดคำสั่ง :e $HOME/.vimrc
  3. เขียน :set noundofile
  4. บันทึกและออก: :wq

มันใช้ได้กับกรณีการใช้งานของฉันซึ่งแตกต่างกันเล็กน้อย: ใช้ Vim ภายใน ConEmu บน Windows ขอบคุณ!
Mário Meyrelles

ฉันได้รับ undofiles โดยค่าเริ่มต้นในโปรแกรมติดตั้ง vim windows คำแนะนำของคุณช่วยฉันด้วยขอบคุณ!
Cardin

0

อีกวิธีหนึ่งที่เป็นไปได้ในการหลีกเลี่ยงการสร้างไฟล์เลิกทำทุกที่เป็นกลุ่มคือตั้งค่าundodirเป็นไดเร็กทอรีที่มีอยู่เช่น

if has('persistent_undo')         "check if your vim version supports
  set undodir=$HOME/.vim/undo     "directory where the undo files will be stored
  set undofile                    "turn on the feature
endif

ขัดขวางจากที่นี่

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