O que é um arquivo .un ~ ou por que o Vim no Terminal cria o arquivo .un ~?

93

Reparei que tenho alguns dotfiles que terminam com .un~, por exemplo, tenho um .vividchalk.vim.un~, mas não tenho a certeza de onde veio. Parece que eles são criados quando uso o Vim no Terminal. O que são esses arquivos? Posso fazer com que eles sejam removidos quando eu fechar o arquivo que estou editando?

Kaplan
fonte

Respostas:

136

Quando você edita e salva arquivos, o Vim cria um arquivo com o mesmo nome do arquivo original e uma un~extensão no final.

O Vim 7.3 contém um novo recurso de desfazer persistente, ou seja, as informações de desfazer não serão perdidas ao sair do Vim e serão armazenadas em um arquivo que termina com .un~. Você definiu a undofileopção, então o Vim cria um arquivo desfazer ao salvar o arquivo original. Você pode impedir que o Vim crie o arquivo de backup, limpando a opção:

:set noundofile

Observe que, por padrão, essa opção está desativada. Você ativou explicitamente a undofileopção em um dos arquivos de inicialização. Se você deseja que seus undofiles sejam armazenados apenas em um diretório específico, você pode apontar a undodiropção para um diretório que conterá todos os seus undofiles agregados.

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

TheEwook
fonte
4
Obrigado! Eu sou novo no Vim e estou tentando entender e configurar sem monitoramento de carga. Eu vejo agora que a configuração está vindo vim-sensible. Ler o ReadMe no vim-sensible é muito útil. E eu aprendi (a partir de um screencast de peepcode) que posso fazer :verbose set undofile?e ver onde essa opção está definida. Acho que tenho esse direito.
kaplan
1
Tenho o Vim 7.3 e o desfazer persistente não está funcionando para mim (preciso set undofilefazer o desfazer persistente). Outras configurações interferem no novo recurso, por exemplo, nobackupou noswapfile?
Dennis
Acho que o instalador cream non-cream-vim também define isso ativado por padrão.
Josiah Yoder
1
Oh cara!! agora tenho que lembrar: set nobackup set noswapfile set noundofileem todo _vimrc se eu não quiser pegadas de cachorrinhos ?? !! Você pensaria que UM desses poderia estar desligado ou algo assim ...
ebyrob
12
Parece que o vim 8 (pelo menos 8.0.427) tem esse recurso ativado por padrão. YMMV, é claro ...
Chuck Wolber
3

Demorei um pouco para descobrir onde realmente colocar o :set noundofilecomando. Sou novo e só responderei dizendo que não fiz backups.

  1. Abra o vim.
  2. Digite no modo de comando :e $HOME/.vimrc
  3. Escrever :set noundofile
  4. Salvar e sair: :wq
Spiros Skouras
fonte
Funciona para o meu caso de uso, que é um pouco diferente: usar o Vim dentro do ConEmu no Windows. Obrigado!
Mário Meyrelles
Eu tenho undofiles por padrão no instalador do vim windows. Seu guia me ajudou, obrigado!
Cardin