Apa itu file .un ~ atau atau mengapa Vim di Terminal membuat file .un ~?

94

Saya perhatikan saya memiliki beberapa dotfile yang diakhiri dengan .un~, misalnya saya punya .vividchalk.vim.un~, tapi saya tidak yakin dari mana asalnya. Sepertinya mereka dibuat saat saya menggunakan Vim di Terminal. File apa ini? Dapatkah mereka menghapus dirinya sendiri saat saya menutup file yang saya edit?

kaplan
sumber

Jawaban:

137

Saat Anda mengedit dan menyimpan file, Vim membuat file dengan nama yang sama dengan file asli dan un~ekstensi di bagian akhir.

Vim 7.3 berisi fitur baru persistent undo, yaitu informasi undo tidak akan hilang ketika keluar dari Vim dan disimpan dalam file yang diakhiri dengan .un~. Anda telah mengatur undofileopsi, jadi Vim membuat file undo saat menyimpan file asli. Anda dapat menghentikan Vim dari membuat file cadangan, dengan menghapus opsi:

:set noundofile

Perhatikan bahwa, secara default opsi ini dimatikan. Anda telah secara eksplisit mengaktifkan undofileopsi di salah satu file inisialisasi. Jika Anda ingin undofile Anda disimpan hanya di direktori tertentu, Anda dapat mengarahkan undodiropsi ke direktori yang akan berisi semua undofile gabungan Anda.

Sumber: http://vimhelp.appspot.com/vim_faq.txt.html#faq-7.2

TheEwook
sumber
4
Terima kasih! Saya baru mengenal Vim dan mencoba memahami dan mengkonfigurasi tanpa pemujaan kargo. Saya melihat sekarang pengaturan itu berasal vim-sensible. Membaca ReadMe di vim-sensible sangat membantu. Dan saya belajar (dari screencast kode intip) yang dapat saya lakukan :verbose set undofile?dan saya akan melihat di mana opsi itu ditetapkan. Saya pikir saya punya hak itu.
kaplan
1
Saya memiliki Vim 7.3 dan terus-menerus membatalkan tidak berfungsi untuk saya (saya harus set undofileterus-menerus membatalkannya). Apakah pengaturan lain mengganggu fitur baru, misalnya nobackupatau noswapfile?
Dennis
Saya pikir krim non-krim-vim-installer juga mengatur ini diaktifkan secara default.
Josiah Yoder
1
Oh man!! sekarang saya harus ingat: set nobackup set noswapfile set noundofiledi setiap _vimrc jika saya tidak ingin trek anak anjing ?? !! Anda akan berpikir SALAH SATU dari mereka bisa default mati atau sesuatu ...
ebyrob
12
Tampaknya vim 8 (setidaknya 8.0.427) telah mengaktifkan fitur ini secara default. YMMV tentu saja ...
Chuck Wolber
3

Butuh beberapa saat bagi saya untuk menemukan di mana harus benar-benar meletakkan :set noundofileperintah. Saya baru dan saya hanya akan membalas dengan bagaimana saya membuatnya tidak melakukan backup.

  1. Buka vim.
  2. Ketik mode perintah :e $HOME/.vimrc
  3. Menulis :set noundofile
  4. Simpan & keluar: :wq
Spiros Skouras
sumber
Ini berfungsi untuk kasus penggunaan saya, yang sedikit berbeda: menggunakan Vim di dalam ConEmu di Windows. Terima kasih!
Mário Meyrelles
Saya mendapat undofiles secara default di vim windows installer. Pemandu Anda membantu saya, terima kasih!
Cardin
0

Cara lain yang mungkin untuk menghindari vim membuat undo file di mana-mana adalah dengan menyetel undodir ke beberapa direktori yang ada, misalnya

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

tersangkut dari sini

Brad Parks
sumber