What is a .un~ file or why does Vim in the Terminal make the .un~ file?
Asked Answered
M

3

131

I've noticed I have some dotfiles that end with .un~

For example I have a .vividchalk.vim.un~, but I'm not sure where that came from.

It seems like they are created when I use Vim in the Terminal.

What are these files? Can have them remove themselves when I close the file I'm editing?

Masticatory answered 27/3, 2013 at 13:56 Comment(0)
P
170

When you edit and save files, Vim creates a file with the same name as the original file and an un~ extension at the end.

Vim 7.3 contains a new feature persistent undo, that is, undo information won't be lost when quitting Vim and be stored in a file that ends with .un~. You have set the undofile option, so Vim creates an undo file when saving the original file. You can stop Vim from creating the backup file, by clearing the option:

:set noundofile

Note that, by default this option is turned off. You have explicitly enabled the undofile option in one of the initialization files. If you want your undofiles to be stored only in a particular directory, you can point the undodir option to a directory that will contain all your aggregated undofiles.

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

Pew answered 27/3, 2013 at 14:2 Comment(6)
Thanks! I'm new to Vim and trying to understand and configure without cargo culting. I see now that setting is coming from vim-sensible. Reading the ReadMe on vim-sensible is very helpful. And I learned (from a peepcode screencast) that I can do :verbose set undofile? and I'll see where that option is set. I think I have that right.Masticatory
I have Vim 7.3 and persistent undo isn't working for me (I need to have set undofile to get the persistent undo). Do other settings interfere with the new feature, e.g. nobackup or noswapfile?Pyxis
I think the cream non-cream-vim-installer also sets this enabled by default.Locution
Oh man!! now I have to remember: set nobackup set noswapfile set noundofile in every _vimrc if I don't want puppy tracks??!! You'd think ONE of those could default to off or something...Excide
It appears as if vim 8 (at least 8.0.427) has this feature turned on by default. YMMV of course...Gid
Just notifying that Vim installed on Windows with the default .exe installer found at vim.org does enable this option by default. At least as of 8.2.Rego
R
13

Took me a while to find where to actually put the :set noundofile command. I am new and I’ll just reply with how I made it not do backups.

  1. Open vim.
  2. Type in command mode :e $HOME/.vimrc
  3. Write :set noundofile
  4. Save & quit: :wq
Rameses answered 4/5, 2020 at 2:19 Comment(4)
It works for my use case, that is a little bit different: using Vim inside ConEmu on Windows. Thanks!Vitrify
I got undofiles by default on vim windows installer. Your guide helped me, thanks!Abutting
Please don't! Undo is an extremely valuable feature. You just need to define an undodir.Centromere
This answer was what worked for me. Thanks.Garnishment
W
12

Another possible way to avoid vim creating undo files everywhere is set set the undodir to some existing directory, e.g.

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

snagged from here

Wheaton answered 14/10, 2020 at 11:44 Comment(1)
Exactly. Vim undo is an extremely valuable tool (when it doesn't litter your folders). I love :earlier 30m, for example.Centromere

© 2022 - 2024 — McMap. All rights reserved.